在父和chid之间共享BIO,同时避免关闭()

时间:2015-12-05 14:56:53

标签: linux sockets openssl

我正在使用OpenSSL BIO _...函数来创建一个安全与否的连接。基本工作正常,无论连接是否加密(即我可以使用BIO_read()BIO_write()函数进行通信,正如预期的那样。)

但是,当我想创建一个孩子时,习惯上关闭我们不会在父母或孩子身上使用的套接字。我可以通过使用SOCK_CLOEXEC标记套接字来解决子问题。但是,如果我想反过来,请在子项中保持套接字打开并在我遇到问题的父项中关闭套接字:BIO_free_all()函数在shutdown(s, SHUT_RDWR)之前调用close(s)。之后的结果是套接字在子进程中也是死的(有效地,关闭...)。

我的问题是:有没有办法通过避免shutdown()调用来正确地在父母和孩子之间共享OpenSSL BIO接口?

如果不在BIO界面本身,我总是可以在调用BIO_free_all()之前关闭文件描述符,但这听起来像是一个丑陋的黑客!

0 个答案:

没有答案