diff options
author | rsc <devnull@localhost> | 2005-05-19 14:39:10 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2005-05-19 14:39:10 +0000 |
commit | 4c06b8eec1a1d71f67561d4fa9860850795c56aa (patch) | |
tree | a05deac604e8554498945a9f32deb524acfe95ec /src/libsunrpc/rpc.c | |
parent | f92a2ceba411689890e6f8aab81a03f30b802b10 (diff) | |
download | plan9port-4c06b8eec1a1d71f67561d4fa9860850795c56aa.tar.gz plan9port-4c06b8eec1a1d71f67561d4fa9860850795c56aa.tar.bz2 plan9port-4c06b8eec1a1d71f67561d4fa9860850795c56aa.zip |
fixes for vnfs
Diffstat (limited to 'src/libsunrpc/rpc.c')
-rw-r--r-- | src/libsunrpc/rpc.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/libsunrpc/rpc.c b/src/libsunrpc/rpc.c index 43835934..837ead21 100644 --- a/src/libsunrpc/rpc.c +++ b/src/libsunrpc/rpc.c @@ -68,12 +68,17 @@ sunrpcpack(uchar *a, uchar *ea, uchar **pa, SunRpc *rpc) || sunauthinfopack(a, ea, &a, &rpc->verf) < 0) goto Err; break; + case SunAuthError: + if(sunuint32pack(a, ea, &a, (x=MsgDenied, &x)) < 0 + || sunuint32pack(a, ea, &a, (x=MsgAuthError, &x)) < 0) + goto Err; + break; default: if(sunuint32pack(a, ea, &a, (x=MsgDenied, &x)) < 0) goto Err; break; } - + switch(rpc->status){ case SunSuccess: if(sunuint32pack(a, ea, &a, (x=MsgSuccess, &x)) < 0 @@ -90,6 +95,7 @@ sunrpcpack(uchar *a, uchar *ea, uchar **pa, SunRpc *rpc) default: if(sunuint32pack(a, ea, &a, (x=rpc->status&0xFFFF, &x)) < 0) goto Err; + break; } } @@ -119,6 +125,9 @@ sunrpcsize(SunRpc *rpc) case SunAcceptError: a += 4+sunauthinfosize(&rpc->verf); break; + case SunAuthError: + a += 4+4; + break; default: a += 4; break; @@ -169,6 +178,7 @@ sunrpcunpack(uchar *a, uchar *ea, uchar **pa, SunRpc *rpc) rpc->iscall = 0; if(sunuint32unpack(a, ea, &a, &x) < 0) goto Err; +fprint(2, "x %x\n", x); switch(x){ default: goto Err; @@ -200,6 +210,7 @@ sunrpcunpack(uchar *a, uchar *ea, uchar **pa, SunRpc *rpc) case MsgDenied: if(sunuint32unpack(a, ea, &a, &x) < 0) goto Err; +fprint(2, "xx %ux\n", x); switch(x){ default: goto Err; |