2010-06-20 60 views
0

很新的提高和ASIO,需要帮助:boost :: asio握手通过http代理?

  1. 连接到代理 asio::ip::tcp::socket socket_;

  2. 发送CONNECT主持人:SSL服务器到代理 receive response 200

  3. asio::ssl::context ctx(io_service, asio::ssl::context::sslv23); sslsocket_(socket_,context)
  4. 尝试握手 sslsocket_.async_handshake(asio::ssl::stream_base::client, boost::bind(&client::handle_handshake, this, asio::placeholders::error));

  5. ,并得到asio.ssl错误 Wireshark: host sends FIN after 1st message of handshake

直接异步连接到SSL服务器正常工作,同样通过Proxifier

+0

什么是你的题? – Inverse 2010-06-22 06:15:50

回答

1

忘了提及在VMplayer中运行带有NAT网络的应用程序;桥接消除了初始握手的问题,但有时在重新连接后看到了相同的消息; 在握手过程中使用Sam链接中的方法得到“意外记录” - 谷歌对这个关于重新谈判的错误表示,但事实并非如此;挖掘OpenSSL的来源:新连接使用相同的BIO来读取和接收以前连接的应用程序数据 不知道如何重置SSL结构与asio,所以动态套接字分配与新|删除

1

你可能需要检查步骤OpenSSL的错误堆栈5,因为Boost.Asio不会将它映射到它使用的正常system_error代码中,所以这并不容易。最近,Guy Sirton在012邮件列表上发布了一个post,它描述了如何修改源代码来完成此操作。