summaryrefslogtreecommitdiffstats
path: root/Demo/rpc/mountclient.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1992-12-15 20:53:17 (GMT)
committerGuido van Rossum <guido@python.org>1992-12-15 20:53:17 (GMT)
commit20f9960427efed057106236ebafd44aa4fed05eb (patch)
treee164b69ec92a08897fa7afcd56f6819e3cea0336 /Demo/rpc/mountclient.py
parent749d0bbe6b0cdf377cf8afcf546288ee14c26782 (diff)
downloadcpython-20f9960427efed057106236ebafd44aa4fed05eb.zip
cpython-20f9960427efed057106236ebafd44aa4fed05eb.tar.gz
cpython-20f9960427efed057106236ebafd44aa4fed05eb.tar.bz2
Add explicit auth call
Diffstat (limited to 'Demo/rpc/mountclient.py')
-rw-r--r--Demo/rpc/mountclient.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/Demo/rpc/mountclient.py b/Demo/rpc/mountclient.py
index 021de8c..a0de94b 100644
--- a/Demo/rpc/mountclient.py
+++ b/Demo/rpc/mountclient.py
@@ -8,6 +8,7 @@
# version of a protocol, use multiple inheritance as shown below.
+import rpc
from rpc import Packer, Unpacker, TCPClient, UDPClient
MOUNTPROG = 100005
@@ -76,6 +77,18 @@ class PartialMountClient:
self.packer = MountPacker().init()
self.unpacker = MountUnpacker().init('')
+ # This function is called to gobble up a suitable
+ # authentication object for a call to procedure 'proc'.
+ # (Experiments suggest that for Mnt/Unmnt, Unix authentication
+ # is necessary, while the other calls require no
+ # authentication.)
+ def mkcred(self, proc):
+ if proc not in (1, 3, 4): # not Mnt/Unmnt/Unmntall
+ return rpc.AUTH_NULL, ''
+ if self.cred == None:
+ self.cred = rpc.AUTH_UNIX, rpc.make_auth_unix_default()
+ return self.cred
+
# The methods Mnt, Dump etc. each implement one Remote
# Procedure Call. Their general structure is
# self.start_call(<procedure-number>)