From: Rob Browning Date: Tue, 8 Oct 2013 16:18:00 +0000 (-0500) Subject: Fall back from mknod() to socket()/bind() on EPERM for SOCK_STREAM. X-Git-Tag: 0.25-rc4~56 X-Git-Url: https://arthur.barton.de/gitweb/?a=commitdiff_plain;h=c3f7f6df16c889fc60d29ef71aef2319cac026b0;p=bup.git Fall back from mknod() to socket()/bind() on EPERM for SOCK_STREAM. Apparently OS X is throwing EPERM for mknod(... SOCK_STREAM), and the current OS X manpage does state that mknod() requires superuser privileges. Thanks to Zoran Zaric for the report. Signed-off-by: Rob Browning --- diff --git a/lib/bup/metadata.py b/lib/bup/metadata.py index d1806b5..742d1d9 100644 --- a/lib/bup/metadata.py +++ b/lib/bup/metadata.py @@ -322,7 +322,7 @@ class Metadata: try: os.mknod(path, 0600 | stat.S_IFSOCK) except OSError, e: - if e.errno == errno.EINVAL: + if e.errno in (errno.EINVAL, errno.EPERM): s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) s.bind(path) else: