From 0699e2e3a10aa99eefe2509c9d9d0883b5d027b1 Mon Sep 17 00:00:00 2001
From: "Alex V. Myltsev" <avm@altlinux.org>
Date: Sat, 2 Jan 2010 22:47:36 +0100
Subject: [PATCH] catch "address family not supported" errors when sending
 files. Fixes #5327

---
 src/common/socks5.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/common/socks5.py b/src/common/socks5.py
index d6e8b9707e..63c37f2f6a 100644
--- a/src/common/socks5.py
+++ b/src/common/socks5.py
@@ -860,8 +860,14 @@ class Socks5Listener(IdleObject):
 
 	def bind(self):
 		for ai in self.ais:
-			#try the different possibilities (ipv6, ipv4, etc.)
-			self._serv = socket.socket(*ai[:3])
+			# try the different possibilities (ipv6, ipv4, etc.)
+			try:
+				self._serv = socket.socket(*ai[:3])
+			except socket.error, e:
+				if e.errno == EAFNOSUPPORT:
+					self.ai = None
+					continue
+				raise
 			self._serv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
 			self._serv.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
 			self._serv.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
-- 
GitLab