From 4284606cbc9fd3fd2e7f9b25bd8590214edbec80 Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Sun, 20 Jul 2014 19:46:15 +0000 Subject: [PATCH] merged SOCKS4 fix into trunk --- ChangeLog | 1 + src/socks5_stream.cpp | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index 143bc841e..316cb687e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -89,6 +89,7 @@ * fix uTP edge case where udp socket buffer fills up * fix nagle implementation in uTP + * SOCKS4 fix for trying to connect over IPv6 * fix saving resume data when removing all trackers * fix bug in udp_socket when changing socks5 proxy quickly diff --git a/src/socks5_stream.cpp b/src/socks5_stream.cpp index ea3aef15f..3826ef0e6 100644 --- a/src/socks5_stream.cpp +++ b/src/socks5_stream.cpp @@ -293,6 +293,14 @@ namespace libtorrent } else if (m_version == 4) { + // SOCKS4 only supports IPv4 + if (!m_remote_endpoint.address().is_v4()) + { + (*h)(error_code(boost::asio::error::address_family_not_supported)); + error_code ec; + close(ec); + return; + } m_buffer.resize(m_user.size() + 9); char* p = &m_buffer[0]; write_uint8(4, p); // SOCKS VERSION 4