summaryrefslogtreecommitdiff
path: root/bin/tiny_socket.py
diff options
context:
space:
mode:
Diffstat (limited to 'bin/tiny_socket.py')
-rw-r--r--bin/tiny_socket.py112
1 files changed, 56 insertions, 56 deletions
diff --git a/bin/tiny_socket.py b/bin/tiny_socket.py
index ef575714c7d..843565406c7 100644
--- a/bin/tiny_socket.py
+++ b/bin/tiny_socket.py
@@ -30,61 +30,61 @@ import cPickle
import marshal
class Myexception(Exception):
- def __init__(self, faultCode, faultString):
- self.faultCode = faultCode
- self.faultString = faultString
- self.args = (faultCode, faultString)
+ def __init__(self, faultCode, faultString):
+ self.faultCode = faultCode
+ self.faultString = faultString
+ self.args = (faultCode, faultString)
class mysocket:
- def __init__(self, sock=None):
- if sock is None:
- self.sock = socket.socket(
- socket.AF_INET, socket.SOCK_STREAM)
- else:
- self.sock = sock
- self.sock.settimeout(120)
- def connect(self, host, port=False):
- if not port:
- protocol, buf = host.split('//')
- host, port = buf.split(':')
- self.sock.connect((host, int(port)))
- def disconnect(self):
- self.sock.shutdown(socket.SHUT_RDWR)
- self.sock.close()
- def mysend(self, msg, exception=False, traceback=None):
- msg = cPickle.dumps([msg,traceback])
- size = len(msg)
- self.sock.send('%8d' % size)
- self.sock.send(exception and "1" or "0")
- totalsent = 0
- while totalsent < size:
- sent = self.sock.send(msg[totalsent:])
- if sent == 0:
- raise RuntimeError, "socket connection broken"
- totalsent = totalsent + sent
- def myreceive(self):
- buf=''
- while len(buf) < 8:
- chunk = self.sock.recv(8 - len(buf))
- if chunk == '':
- raise RuntimeError, "socket connection broken"
- buf += chunk
- size = int(buf)
- buf = self.sock.recv(1)
- if buf != "0":
- exception = buf
- else:
- exception = False
- msg = ''
- while len(msg) < size:
- chunk = self.sock.recv(size-len(msg))
- if chunk == '':
- raise RuntimeError, "socket connection broken"
- msg = msg + chunk
- res = cPickle.loads(msg)
- if isinstance(res[0],Exception):
- if exception:
- raise Myexception(str(res[0]), str(res[1]))
- raise res[0]
- else:
- return res[0]
+ def __init__(self, sock=None):
+ if sock is None:
+ self.sock = socket.socket(
+ socket.AF_INET, socket.SOCK_STREAM)
+ else:
+ self.sock = sock
+ self.sock.settimeout(120)
+ def connect(self, host, port=False):
+ if not port:
+ protocol, buf = host.split('//')
+ host, port = buf.split(':')
+ self.sock.connect((host, int(port)))
+ def disconnect(self):
+ self.sock.shutdown(socket.SHUT_RDWR)
+ self.sock.close()
+ def mysend(self, msg, exception=False, traceback=None):
+ msg = cPickle.dumps([msg,traceback])
+ size = len(msg)
+ self.sock.send('%8d' % size)
+ self.sock.send(exception and "1" or "0")
+ totalsent = 0
+ while totalsent < size:
+ sent = self.sock.send(msg[totalsent:])
+ if sent == 0:
+ raise RuntimeError, "socket connection broken"
+ totalsent = totalsent + sent
+ def myreceive(self):
+ buf=''
+ while len(buf) < 8:
+ chunk = self.sock.recv(8 - len(buf))
+ if chunk == '':
+ raise RuntimeError, "socket connection broken"
+ buf += chunk
+ size = int(buf)
+ buf = self.sock.recv(1)
+ if buf != "0":
+ exception = buf
+ else:
+ exception = False
+ msg = ''
+ while len(msg) < size:
+ chunk = self.sock.recv(size-len(msg))
+ if chunk == '':
+ raise RuntimeError, "socket connection broken"
+ msg = msg + chunk
+ res = cPickle.loads(msg)
+ if isinstance(res[0],Exception):
+ if exception:
+ raise Myexception(str(res[0]), str(res[1]))
+ raise res[0]
+ else:
+ return res[0]