X7ROOT File Manager
Current Path:
/lib64/python2.7/Demo/pdist
lib64
/
python2.7
/
Demo
/
pdist
/
??
..
??
FSProxy.py
(7.64 KB)
??
FSProxy.pyc
(12.5 KB)
??
FSProxy.pyo
(12.5 KB)
??
RCSProxy.py
(4.61 KB)
??
RCSProxy.pyc
(7.57 KB)
??
RCSProxy.pyo
(7.57 KB)
??
README
(4.16 KB)
??
client.py
(4.6 KB)
??
client.pyc
(6.57 KB)
??
client.pyo
(6.57 KB)
??
cmdfw.py
(4.53 KB)
??
cmdfw.pyc
(5.12 KB)
??
cmdfw.pyo
(5.12 KB)
??
cmptree.py
(5.64 KB)
??
cmptree.pyc
(5.98 KB)
??
cmptree.pyo
(5.98 KB)
??
cvslib.py
(9.94 KB)
??
cvslib.pyc
(12.83 KB)
??
cvslib.pyo
(12.83 KB)
??
cvslock.py
(6.61 KB)
??
cvslock.pyc
(8.36 KB)
??
cvslock.pyo
(8.36 KB)
??
mac.py
(352 B)
??
mac.pyc
(598 B)
??
mac.pyo
(598 B)
??
makechangelog.py
(2.92 KB)
??
makechangelog.pyc
(3.05 KB)
??
makechangelog.pyo
(3.05 KB)
??
rcsbump
(745 B)
??
rcsclient.py
(1.76 KB)
??
rcsclient.pyc
(2.05 KB)
??
rcsclient.pyo
(2.05 KB)
??
rcslib.py
(10.08 KB)
??
rcslib.pyc
(11.28 KB)
??
rcslib.pyo
(11.28 KB)
??
rcvs
(117 B)
??
rcvs.py
(13.32 KB)
??
rcvs.pyc
(14.08 KB)
??
rcvs.pyo
(14.08 KB)
??
rrcs
(117 B)
??
rrcs.py
(3.9 KB)
??
rrcs.pyc
(5.5 KB)
??
rrcs.pyo
(5.5 KB)
??
security.py
(1.07 KB)
??
security.pyc
(1.64 KB)
??
security.pyo
(1.64 KB)
??
server.py
(4.47 KB)
??
server.pyc
(5.83 KB)
??
server.pyo
(5.83 KB)
??
sumtree.py
(518 B)
??
sumtree.pyc
(903 B)
??
sumtree.pyo
(903 B)
Editing: client.py
"""RPC Client module.""" import sys import socket import pickle import __builtin__ import os # Default verbosity (0 = silent, 1 = print connections, 2 = print requests too) VERBOSE = 1 class Client: """RPC Client class. No need to derive a class -- it's fully generic.""" def __init__(self, address, verbose = VERBOSE): self._pre_init(address, verbose) self._post_init() def _pre_init(self, address, verbose = VERBOSE): if type(address) == type(0): address = ('', address) self._address = address self._verbose = verbose if self._verbose: print "Connecting to %s ..." % repr(address) self._socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._socket.connect(address) if self._verbose: print "Connected." self._lastid = 0 # Last id for which a reply has been received self._nextid = 1 # Id of next request self._replies = {} # Unprocessed replies self._rf = self._socket.makefile('r') self._wf = self._socket.makefile('w') def _post_init(self): self._methods = self._call('.methods') def __del__(self): self._close() def _close(self): if self._rf: self._rf.close() self._rf = None if self._wf: self._wf.close() self._wf = None if self._socket: self._socket.close() self._socket = None def __getattr__(self, name): if name in self._methods: method = _stub(self, name) setattr(self, name, method) # XXX circular reference return method raise AttributeError, name def _setverbose(self, verbose): self._verbose = verbose def _call(self, name, *args): return self._vcall(name, args) def _vcall(self, name, args): return self._recv(self._vsend(name, args)) def _send(self, name, *args): return self._vsend(name, args) def _send_noreply(self, name, *args): return self._vsend(name, args, 0) def _vsend_noreply(self, name, args): return self._vsend(name, args, 0) def _vsend(self, name, args, wantreply = 1): id = self._nextid self._nextid = id+1 if not wantreply: id = -id request = (name, args, id) if self._verbose > 1: print "sending request: %s" % repr(request) wp = pickle.Pickler(self._wf) wp.dump(request) return id def _recv(self, id): exception, value, rid = self._vrecv(id) if rid != id: raise RuntimeError, "request/reply id mismatch: %d/%d" % (id, rid) if exception is None: return value x = exception if hasattr(__builtin__, exception): x = getattr(__builtin__, exception) elif exception in ('posix.error', 'mac.error'): x = os.error if x == exception: exception = x raise exception, value def _vrecv(self, id): self._flush() if self._replies.has_key(id): if self._verbose > 1: print "retrieving previous reply, id = %d" % id reply = self._replies[id] del self._replies[id] return reply aid = abs(id) while 1: if self._verbose > 1: print "waiting for reply, id = %d" % id rp = pickle.Unpickler(self._rf) reply = rp.load() del rp if self._verbose > 1: print "got reply: %s" % repr(reply) rid = reply[2] arid = abs(rid) if arid == aid: if self._verbose > 1: print "got it" return reply self._replies[rid] = reply if arid > aid: if self._verbose > 1: print "got higher id, assume all ok" return (None, None, id) def _flush(self): self._wf.flush() from security import Security class SecureClient(Client, Security): def __init__(self, *args): import string apply(self._pre_init, args) Security.__init__(self) self._wf.flush() line = self._rf.readline() challenge = string.atoi(string.strip(line)) response = self._encode_challenge(challenge) line = repr(long(response)) if line[-1] in 'Ll': line = line[:-1] self._wf.write(line + '\n') self._wf.flush() self._post_init() class _stub: """Helper class for Client -- each instance serves as a method of the client.""" def __init__(self, client, name): self._client = client self._name = name def __call__(self, *args): return self._client._vcall(self._name, args)
Upload File
Create Folder