2010-06-20 4 views
0

assez nouveau pour stimuler et asio, ont besoin d'aide:boost :: handshake asio via un proxy http?

  1. connecter à proxy asio::ip::tcp::socket socket_;

  2. envoyer hôte CONNECT: serveur ssl au proxy receive response 200

  3. asio::ssl::context ctx(io_service, asio::ssl::context::sslv23); sslsocket_(socket_,context)
  4. essayer poignée de main sslsocket_.async_handshake(asio::ssl::stream_base::client, boost::bind(&client::handle_handshake, this, asio::placeholders::error));

  5. et obtenir asio.ssl erreur Wireshark: host sends FIN after 1st message of handshake

Connexion directe async au serveur ssl fonctionne très bien, même par Proxifier

+0

question? – Inverse

Répondre

1

J'ai oublié de mentionner que l'application était en cours d'exécution dans VMplayer avec le réseau NAT; ponté enlevé le problème avec la poignée de main initiale, mais parfois après reconnecter vu le même message; en utilisant la méthode dans le lien de Sam a obtenu à "l'enregistrement inattendu" pendant la poignée de main - google a dit sur cette erreur au sujet des renégociations mais ce n'était pas le cas; creuser dans les sources d'OpenSSL: la nouvelle connexion a utilisé le même BIO pour lire et recevoir les données d'application de la connexion précédente Je ne sais pas comment réinitialiser la structure SSL avec asio, donc l'allocation dynamique des sockets a été supprimée

1

Vous aurez probablement besoin d'examiner la pile d'erreurs OpenSSL à l'étape 5, ce qui n'est pas très facile puisque Boost.Asio ne le mappe pas dans les codes system_error normaux qu'il utilise. Il y avait un post par Guy Sirton récemment sur la liste de diffusion d'asio décrivant comment modifier la source pour accomplir ceci.

Questions connexes