From: Nick Mathewson Date: Thu, 24 Mar 2005 01:11:28 +0000 (+0000) Subject: Fix SOCKS5 bug: Set replylen to 0 after sending hanshake back X-Git-Tag: tor-0.1.0.1-rc~53 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8e8915f3ca2e98e16abb62c7a32f86e4af6892d3;p=thirdparty%2Ftor.git Fix SOCKS5 bug: Set replylen to 0 after sending hanshake back svn:r3850 --- diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 12b4cb1b9b..019cdca023 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -840,6 +840,7 @@ static int connection_ap_handshake_process_socks(connection_t *conn) { if (sockshere == 0) { if (socks->replylen) { connection_write_to_buf(socks->reply, socks->replylen, conn); + socks->replylen = 0; /* zero it out so we can do another round of negotiation */ } else { log_fn(LOG_DEBUG,"socks handshake not all here yet."); } @@ -1238,8 +1239,7 @@ void connection_ap_handshake_socks_reply(connection_t *conn, char *reply, buf[1] = (status==SOCKS5_SUCCEEDED ? SOCKS4_GRANTED : SOCKS4_REJECT); /* leave version, destport, destip zero */ connection_write_to_buf(buf, SOCKS4_NETWORK_LEN, conn); - } - if (conn->socks_request->socks_version == 5) { + } else if (conn->socks_request->socks_version == 5) { buf[0] = 5; /* version 5 */ buf[1] = (char)status; buf[2] = 0;