Em qui 20 fev 2014, às 06:21:44, Sarajärvi Tony escreveu: > QDEBUG : tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL) [QSocks5] sending > "size: 33 data: { 5 1 0 3 26 113 116 45 116 101 115 116 45 115 101 114 118 > 101 114 46 113 116 45 116 101 115 116 45 110 101 116 0 143 }"
SOCKS 5 Command: CONNECT address type: 3 (domain name) length: 26 qt-test-server.qt-test-net port: 143 > tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL) [QSocks5] "size: 148 > data: { 5 0 0 1 10 212 1 1 215 203 42 32 79 75 32 91 67 65 80 65 66 73 76 > 73 84 89 32 73 77 65 80 52 114 101 118 49 32 76 73 84 69 82 65 76 43 32 73 > 68 32 69 78 65 66 76 69 32 83 84 65 82 84 84 76 83 32 76 79 71 73 78 68 73 > 83 65 66 76 69 68 93 32 100 101 118 45 113 116 45 116 101 115 116 45 115 > 101 114 118 101 114 32 67 121 114 117 115 32 73 77 65 80 32 118 50 46 52 46 > 49 50 45 68 101 98 105 97 110 45 50 46 52 46 49 50 45 50 32 115 101 114 118 > 101 114 32 114 101 97 100 121 13 10 }" SOCKS 5 Reply: success address type: 1 (IPv4) address: 10.212.1.1 port: 55243 The rest (starting at "42") is the IMAP handshake: * OK ..... So we know that we connected just fine here. > QDEBUG : > tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL) [QSocks5] got > [ QHostAddress( "10.212.1.1" ) : 55243 ] As I said. > QDEBUG : > tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL) > QSocks5SocketEngine(0x99e730) queueing connectionNotification And here the engine is saying that it will tell QTcpSocket that it connected fine, as expected. > QDEBUG : > tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL) > QSocks5SocketEngine(0x99e730) _q_controlSocketReadNotification bytes > available after parsing: 138 We had 148 and the SOCKS5 reply was 10 bytes, so this is also correct. > QDEBUG : > tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL) > QSocks5SocketEngine(0x99e730) _q_controlSocketReadNotification more bytes > available, calling _q_controlSocketReadNotification() again , read > notifications enabled? false [...] > QDEBUG : > tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL) > QSocks5SocketEngine(0x99e730) _q_controlSocketReadNotification connected > QDEBUG : tst_QTcpSocket::blockingIMAP(WithSocks5Proxy SSL) [QSocks5] "size: > 138 data: { 42 32 79 75 32 91 67 65 80 65 66 73 76 73 84 89 32 73 77 65 80 > 52 114 101 118 49 32 76 73 84 69 82 65 76 43 32 73 68 32 69 78 65 66 76 69 > 32 83 84 65 82 84 84 76 83 32 76 79 71 73 78 68 73 83 65 66 76 69 68 93 32 > 100 101 118 45 113 116 45 116 101 115 116 45 115 101 114 118 101 114 32 67 > 121 114 117 115 32 73 77 65 80 32 118 50 46 52 46 49 50 45 68 101 98 105 97 > 110 45 50 46 52 46 49 50 45 50 32 115 101 114 118 101 114 32 114 101 97 100 > 121 13 10 }" Uh... that's the issue. The bytes here start with "* OK " and the length is 138, which is what was left from the previous parsing. It's not that the SOCKS server sent two replies. This is a genuine bug in our socket engine: the TCP packet contained the initial handshake from the server and the socket engine got confused. It tried to parse the IMAP handshake as another SOCKS5 reply. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development