Added compatibility hacks for Python 0.9.6.

This commit is contained in:
Guido van Rossum 1992-12-17 17:31:58 +00:00
parent 3346b6ad49
commit a585444f7b
1 changed files with 15 additions and 4 deletions

View File

@ -127,8 +127,13 @@ def make_auth_unix(seed, host, uid, gid, groups):
return p.get_buf() return p.get_buf()
def make_auth_unix_default(): def make_auth_unix_default():
return make_auth_unix(0, socket.gethostname(), \ try:
os.getuid(), os.getgid(), []) 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 # Common base class for clients
@ -259,7 +264,11 @@ class RawUDPClient(Client):
p.pack_callheader(xid, self.prog, self.vers, proc, cred, verf) p.pack_callheader(xid, self.prog, self.vers, proc, cred, verf)
def do_call(self, *rest): 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: if len(rest) == 0:
bufsize = 8192 bufsize = 8192
elif len(rest) > 1: elif len(rest) > 1:
@ -271,7 +280,9 @@ class RawUDPClient(Client):
count = 5 count = 5
self.sock.send(call) self.sock.send(call)
while 1: 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: if self.sock not in r:
count = count - 1 count = count - 1
if count < 0: raise RuntimeError, 'timeout' if count < 0: raise RuntimeError, 'timeout'