From 6b026afdf954350ef89726df55edbf864fda00ee815c802d9e695cc88088b3a3 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Fri, 26 Apr 2013 09:17:39 +0000 Subject: [PATCH] - Add python-memcached-ipv6-and-or.patch: Add IPv6 support and fix hostData port return value OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-python-memcached?expand=0&rev=8 --- python-memcached-ipv6-and-or.patch | 39 ++++++++++++++++++++++++++++++ python-python-memcached.changes | 6 +++++ python-python-memcached.spec | 2 ++ 3 files changed, 47 insertions(+) create mode 100644 python-memcached-ipv6-and-or.patch diff --git a/python-memcached-ipv6-and-or.patch b/python-memcached-ipv6-and-or.patch new file mode 100644 index 0000000..a6b079f --- /dev/null +++ b/python-memcached-ipv6-and-or.patch @@ -0,0 +1,39 @@ +diff -ruN a/memcache.py b/memcache.py +--- a/memcache.py 2011-11-28 02:17:32.000000000 +0100 ++++ b/memcache.py 2013-04-26 11:18:47.765452711 +0200 +@@ -1042,6 +1042,9 @@ + # parse the connection string + m = re.match(r'^(?Punix):(?P.*)$', host) + if not m: ++ m = re.match(r'^(?Pinet6):' ++ r'\[(?P[^\[\]]+)\](:(?P[0-9]+))?$', host) ++ if not m: + m = re.match(r'^(?Pinet):' + r'(?P[^:]+)(:(?P[0-9]+))?$', host) + if not m: m = re.match(r'^(?P[^:]+)(:(?P[0-9]+))?$', host) +@@ -1052,10 +1055,15 @@ + if hostData.get('proto') == 'unix': + self.family = socket.AF_UNIX + self.address = hostData['path'] ++ elif hostData.get('proto') == 'inet6': ++ self.family = socket.AF_INET6 ++ self.ip = hostData['host'] ++ self.port = int(hostData.get('port') or 11211) ++ self.address = ( self.ip, self.port ) + else: + self.family = socket.AF_INET + self.ip = hostData['host'] +- self.port = int(hostData.get('port', 11211)) ++ self.port = int(hostData.get('port') or 11211) + self.address = ( self.ip, self.port ) + + self.deaduntil = 0 +@@ -1158,6 +1166,8 @@ + + if self.family == socket.AF_INET: + return "inet:%s:%d%s" % (self.address[0], self.address[1], d) ++ elif self.family == socket.AF_INET6: ++ return "inet6:[%s]:%d%s" % (self.address[0], self.address[1], d) + else: + return "unix:%s%s" % (self.address, d) + diff --git a/python-python-memcached.changes b/python-python-memcached.changes index f6aab4b..4cb5d2f 100644 --- a/python-python-memcached.changes +++ b/python-python-memcached.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Apr 26 09:20:00 UTC 2013 - speilicke@suse.com + +- Add python-memcached-ipv6-and-or.patch: Add IPv6 support and fix + hostData port return value + ------------------------------------------------------------------- Fri Apr 26 09:14:11 UTC 2013 - speilicke@suse.com diff --git a/python-python-memcached.spec b/python-python-memcached.spec index b8397c9..f6c0ee6 100644 --- a/python-python-memcached.spec +++ b/python-python-memcached.spec @@ -24,6 +24,7 @@ Summary: Pure python memcached client License: Python-2.0 Group: Development/Languages/Python Source: http://pypi.python.org/packages/source/p/python-memcached/python-memcached-%{version}.tar.gz +Patch0: python-memcached-ipv6-and-or.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: python-devel BuildRequires: python-distribute @@ -46,6 +47,7 @@ for more information. %prep %setup -q -n python-memcached-%{version} +%patch0 -p1 %build python setup.py build