summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2002-07-19 07:25:00 +0000
committerben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2002-07-19 07:25:00 +0000
commit7b7cfcdf6534883314fa50d28c03b87ffb214b49 (patch)
treebbf6b00f8aa88df84d7887c6216b8e8b028380e6
parent5f26349326655e37767adf4acb7963c8a7fc2695 (diff)
downloadrdiff-backup-7b7cfcdf6534883314fa50d28c03b87ffb214b49.tar.gz
Added socket support
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@169 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
-rw-r--r--rdiff-backup/rdiff_backup/connection.py2
-rw-r--r--rdiff-backup/rdiff_backup/rpath.py15
-rw-r--r--rdiff-backup/src/connection.py2
-rw-r--r--rdiff-backup/src/rpath.py15
4 files changed, 28 insertions, 6 deletions
diff --git a/rdiff-backup/rdiff_backup/connection.py b/rdiff-backup/rdiff_backup/connection.py
index 20dd3db..1506675 100644
--- a/rdiff-backup/rdiff_backup/connection.py
+++ b/rdiff-backup/rdiff_backup/connection.py
@@ -11,7 +11,7 @@
"""Support code for remote execution and data transfer"""
from __future__ import generators
-import types, os, tempfile, cPickle, shutil, traceback, pickle
+import types, os, tempfile, cPickle, shutil, traceback, pickle, socket
class ConnectionError(Exception): pass
diff --git a/rdiff-backup/rdiff_backup/rpath.py b/rdiff-backup/rdiff_backup/rpath.py
index 22e901e..6f9734f 100644
--- a/rdiff-backup/rdiff_backup/rpath.py
+++ b/rdiff-backup/rdiff_backup/rpath.py
@@ -16,7 +16,7 @@ remote systems transparent.
"""
-import os, stat, re, sys, shutil, gzip
+import os, stat, re, sys, shutil, gzip, socket
from static import *
@@ -75,7 +75,7 @@ class RPathStatic:
major, minor = rpin.getdevnums()
rpout.makedev("b", major, minor)
elif rpin.isfifo(): rpout.mkfifo()
- elif rpin.issock(): Log("Found socket, ignoring", 1)
+ elif rpin.issock(): rpout.mksock()
else: raise RPathException("File %s has unknown type" % rpin.path)
def copy_reg_file(rpin, rpout):
@@ -200,6 +200,11 @@ class RPathStatic:
try: return tuple(os.lstat(filename))
except os.error: return None
+ def make_socket(path):
+ """Make a local socket at the given path"""
+ s = socket.socket(socket.AF_UNIX)
+ s.bind(path)
+
MakeStatic(RPathStatic)
@@ -580,6 +585,12 @@ class RPath(RORPath):
self.setdata()
assert self.isfifo()
+ def mksock(self):
+ """Make a socket at self.path"""
+ self.conn.RPathStatic.make_socket(self.path)
+ self.setdata()
+ assert self.issock()
+
def touch(self):
"""Make sure file at self.path exists"""
Log("Touching " + self.path, 7)
diff --git a/rdiff-backup/src/connection.py b/rdiff-backup/src/connection.py
index 20dd3db..1506675 100644
--- a/rdiff-backup/src/connection.py
+++ b/rdiff-backup/src/connection.py
@@ -11,7 +11,7 @@
"""Support code for remote execution and data transfer"""
from __future__ import generators
-import types, os, tempfile, cPickle, shutil, traceback, pickle
+import types, os, tempfile, cPickle, shutil, traceback, pickle, socket
class ConnectionError(Exception): pass
diff --git a/rdiff-backup/src/rpath.py b/rdiff-backup/src/rpath.py
index 22e901e..6f9734f 100644
--- a/rdiff-backup/src/rpath.py
+++ b/rdiff-backup/src/rpath.py
@@ -16,7 +16,7 @@ remote systems transparent.
"""
-import os, stat, re, sys, shutil, gzip
+import os, stat, re, sys, shutil, gzip, socket
from static import *
@@ -75,7 +75,7 @@ class RPathStatic:
major, minor = rpin.getdevnums()
rpout.makedev("b", major, minor)
elif rpin.isfifo(): rpout.mkfifo()
- elif rpin.issock(): Log("Found socket, ignoring", 1)
+ elif rpin.issock(): rpout.mksock()
else: raise RPathException("File %s has unknown type" % rpin.path)
def copy_reg_file(rpin, rpout):
@@ -200,6 +200,11 @@ class RPathStatic:
try: return tuple(os.lstat(filename))
except os.error: return None
+ def make_socket(path):
+ """Make a local socket at the given path"""
+ s = socket.socket(socket.AF_UNIX)
+ s.bind(path)
+
MakeStatic(RPathStatic)
@@ -580,6 +585,12 @@ class RPath(RORPath):
self.setdata()
assert self.isfifo()
+ def mksock(self):
+ """Make a socket at self.path"""
+ self.conn.RPathStatic.make_socket(self.path)
+ self.setdata()
+ assert self.issock()
+
def touch(self):
"""Make sure file at self.path exists"""
Log("Touching " + self.path, 7)