summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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>)