我的测试程序运行良好。我可以创建一个客户端和一个服务器并将它们相互运行。我可以设置我的 KRB5_CONFIG 环境变量并使用本地配置进行测试。
出于某种原因,当我将代码放在我们的生产软件中时,它失败了。即使我将 main() 函数剥离为仅使用硬编码名称调用 gss_import_name() ,我最终也会收到消息“无法打开配置文件”。
如果我运行 truss,那么我会看到很多 Oracle 正在运行。它尝试打开许多不同的 Oracle 跟踪文件。它也试图打开
/krb5/krb.conf
而不是我指定的文件。
就好像 Oracle 给了我们错误的 gss,或者我们庞大而复杂的构建系统中的其他选项。我注意到 -L/usr/lib/sparcv9 虽然这是在我的 -lgss 之后,如果这很重要的话(因为我经常在 C 中工作太久了!)。该目录中的 libgss.so.1 比 /usr/lib 中的大 - 尽管将该选项放入我的测试程序的链接命令中并不会破坏它。
有什么帮助吗?
谢谢 - 理查德