boost :: asio рукопожатие через http прокси? - PullRequest
0 голосов
/ 20 июня 2010

Совершенно новый для boost и asio, нужна помощь:

  1. подключиться к прокси asio::ip::tcp::socket socket_;

  2. отправка CONNECT host: ssl server на прокси 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

Ответы [ 2 ]

1 голос
/ 31 октября 2010

Забыл упомянуть, что в VMplayer было запущено приложение с сетью NAT;bridged удалил проблему с первоначальным рукопожатием, но иногда после повторного подключения видел то же сообщение;использование метода в ссылке Сэма дало «неожиданную запись» во время рукопожатия - Google сказал об этой ошибке о повторных переговорах, но это было не так;копание в источниках OpenSSL: новое соединение использовало тот же BIO для чтения и получения данных приложения от предыдущего соединения. Не знаю, как сбросить структуру SSL с помощью asio, поэтому сделал динамическое распределение сокетов с новым | delete

1 голос
/ 28 июня 2010

Вероятно, вам потребуется изучить стек ошибок OpenSSL на шаге 5, что не очень легко, так как Boost.Asio не отображает его в обычные коды system_error, которые он использует.Недавно в списке рассылки asio было опубликовано сообщение Гая Сиртона, описывающее, как изменить источник для достижения этой цели.

...