From a1f80e32f200996ac50cfffa8a074869fdfa7b55 Mon Sep 17 00:00:00 2001 From: Rob Browning Date: Tue, 31 May 2011 19:49:26 -0500 Subject: [PATCH] Add meta support for restoring filesystem sockets. Signed-off-by: Rob Browning --- lib/bup/metadata.py | 3 +++ t/mksock | 6 ++++++ t/test-meta.sh | 2 ++ 3 files changed, 11 insertions(+) create mode 100755 t/mksock diff --git a/lib/bup/metadata.py b/lib/bup/metadata.py index 948e48a..b3884a4 100644 --- a/lib/bup/metadata.py +++ b/lib/bup/metadata.py @@ -243,6 +243,7 @@ class Metadata: or stat.S_ISCHR(self.mode) \ or stat.S_ISBLK(self.mode) \ or stat.S_ISFIFO(self.mode) \ + or stat.S_ISSOCK(self.mode) \ or stat.S_ISLNK(self.mode) def _create_via_common_rec(self, path, create_symlinks=True): @@ -282,6 +283,8 @@ class Metadata: elif stat.S_ISFIFO(self.mode): assert(self._recognized_file_type()) os.mknod(path, 0600 | stat.S_IFIFO) + elif stat.S_ISSOCK(self.mode): + os.mknod(path, 0600 | stat.S_IFSOCK) elif stat.S_ISLNK(self.mode): assert(self._recognized_file_type()) if self.symlink_target and create_symlinks: diff --git a/t/mksock b/t/mksock new file mode 100755 index 0000000..ee2dbfe --- /dev/null +++ b/t/mksock @@ -0,0 +1,6 @@ +#!/usr/bin/env python + +import socket, sys + +s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM, 0) +s.bind(sys.argv[1]) diff --git a/t/test-meta.sh b/t/test-meta.sh index 032d158..9227808 100755 --- a/t/test-meta.sh +++ b/t/test-meta.sh @@ -78,10 +78,12 @@ force-delete "$TOP/bupmeta.tmp" # Create a test tree. ( + set -e rm -rf "$TOP/bupmeta.tmp/src" mkdir -p "$TOP/bupmeta.tmp/src" #cp -a Documentation cmd lib t "$TOP/bupmeta.tmp"/src cp -pPR Documentation cmd lib t "$TOP/bupmeta.tmp"/src + t/mksock "$TOP/bupmeta.tmp/src/test-socket" || true ) || WVFAIL # Use the test tree to check bup meta. -- 2.39.2