这可能是一个很大的脂肪'no',但是我有一个3层的当前套接字体系结构。第1层除了设置必要的步骤以成为一台香草插座服务器,然后坐在循环中永远呼叫Accept()。当Accept()成功地返回,现在通过SendMsg()将现在开放的套接字传递到一个tier-2程序池,这些程序抓住了插座,开始阅读内容并将内容保存在临时文件中。然后,该层-2程序读取初始数据,并确定应调用哪个处理程序(tier-3)程序来处理套接字上的响应数据以处理数据。目前,tier-2通过Spawnp()将仍然开放的插座传递到层3处理程序程序。tier-3程序(大约20个不同的程序)处理数据,并将响应回到Internet上某个地方的原始源。我希望使用GSK将我的香草插座系统调整为SSL,因此我需要一些方法将GSK会话句柄或 Something 传递给我的TIER-3程序,但到目前为止一直没有成功。该层3程序是发送响应后最终在插座上执行任何最终关闭()的程序。
我可以提供某种图形图来显示有关各方,但是我在这里是新手,不知道这是否会起作用。
无论如何,我想在SSL中使用当前的代码和Shoehorn。目前,我在V7R1机器上使用GSK。通过我目前的设计,我将通过插座,喜欢它没什么大不了的,因为事实并非如此。但是,似乎我无法使用SSL做到这一点,因为它在常规TCP之上具有自己的API/协议。我迷路了。如果您不做HTTPS,那么SSL的宝贵信息很少,如果您在400上进行C ,那么
当然更少。我的基本问题是如何将一个开放的SSL插座从一个过程传递到另一个过程?可能?
as/400的GSK信息http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=/apis/GSK_SECURE_SOC_SOC_MISC.HTM
跨进程传递文件描述符很容易,因为内核可以处理管理文件描述符,并且具有内置机制可以在过程之间传递它们。SSL和GSKIT是位于内核上方的应用级库,对其使用不了解,因此您必须找到某种方法将这些信息传递给您的流程。
看起来会话手柄只是指向堆中的一些存储的指针。由于单级商店的设计,您可以通过共享内存(memmap,shmget/shmat,...)复制它们。您只需要确保打开GSK环境的过程不会消失,否则激活组将被清理,这些指针将变得无效。如果要让多个线程访问共享数据结构,则可能还需要在它们周围放置一个或其他锁定原始锁定。
请注意,我没有尝试过,所以这只是我的理论。