我正在尝试将 SSL 功能添加到我现有的 TCP 回显客户端-服务器应用程序中。
早些时候,在我的简单服务器中,我为每个传入的客户端连接生成了一个新的子节点。对于这个孩子,我将 conn-fd (char*) 作为命令行参数传递。(如下图)
execl("./simple_server_instance", conn_fd, NULL);
现在,对于我的安全服务器,我需要传递一个 CYASSL 对象(一个有效的结构)而不是 conn_fd。(如下图)
ssl = CyaSSL_new(ctx);
CyaSSL_set_fd(ssl, connfd);
这里的“ssl”是需要传递给子进程的对象。我尝试了以下方法来实现它,但没有成功。有没有简单的替代方案,还是我应该采用序列化方式?
将 ssl 对象类型转换为 char*
创建一个缓冲区并对整个结构进行 memcpy。(如下图)
unsigned char sslobjbuf[sizeof(ssl)]; memcpy(&sslobjbuf, ssl, sizeof(ssl)); execl("./secure_server_instance", "hello", "25", sslobjbuf, NULL );
sdsd