diff options
-rw-r--r-- | Demo/rpc/rpc.py | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/Demo/rpc/rpc.py b/Demo/rpc/rpc.py index 4fbc795..71a2c1f 100644 --- a/Demo/rpc/rpc.py +++ b/Demo/rpc/rpc.py @@ -127,8 +127,13 @@ def make_auth_unix(seed, host, uid, gid, groups): return p.get_buf() def make_auth_unix_default(): - return make_auth_unix(0, socket.gethostname(), \ - os.getuid(), os.getgid(), []) + try: + from os import getuid, getgid + uid = getuid() + gid = getgid() + except ImportError: + uid = gid = 0 + return make_auth_unix(0, socket.gethostname(), uid, gid, []) # Common base class for clients @@ -259,7 +264,11 @@ class RawUDPClient(Client): p.pack_callheader(xid, self.prog, self.vers, proc, cred, verf) def do_call(self, *rest): - from select import select + try: + from select import select + except ImportError: + print 'WARNING: select not found, RPC may hang' + select = None if len(rest) == 0: bufsize = 8192 elif len(rest) > 1: @@ -271,7 +280,9 @@ class RawUDPClient(Client): count = 5 self.sock.send(call) while 1: - r, w, x = select([self.sock], [], [], timeout) + r, w, x = [self.sock], [], [] + if select: + r, w, x = select(r, w, x, timeout) if self.sock not in r: count = count - 1 if count < 0: raise RuntimeError, 'timeout' |