diff options
| author | rsc <devnull@localhost> | 2006-05-04 18:02:48 +0000 |
|---|---|---|
| committer | rsc <devnull@localhost> | 2006-05-04 18:02:48 +0000 |
| commit | 886a6f6c535f081e5d845db7ba79b16f2b68ef97 (patch) | |
| tree | b0c5dea37fda1f3b8e833b12196f2c898e775847 /src/libsunrpc/server.c | |
| parent | e77222a4ecdf427c2eed2eb44251b8841ef81b3c (diff) | |
| download | plan9port-886a6f6c535f081e5d845db7ba79b16f2b68ef97.tar.gz plan9port-886a6f6c535f081e5d845db7ba79b16f2b68ef97.zip | |
rpc fixes (vandebo)
Diffstat (limited to 'src/libsunrpc/server.c')
| -rw-r--r-- | src/libsunrpc/server.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/libsunrpc/server.c b/src/libsunrpc/server.c index 81358587..43b0f773 100644 --- a/src/libsunrpc/server.c +++ b/src/libsunrpc/server.c @@ -144,11 +144,12 @@ if(srv->chatty) fprint(2, "sun msg %p count %d\n", m, m->count); static SunProg* sunfindprog(SunSrv *srv, SunMsg *m, SunRpc *rpc, Channel **pc) { - int i, vlo, vhi; + int i, vlo, vhi, any; SunProg *pg; - vlo = 0x7fffffff; - vhi = -1; + vlo = 0; + vhi = 0; + any = 0; for(i=0; i<srv->nprog; i++){ pg = srv->prog[i]; @@ -159,10 +160,15 @@ sunfindprog(SunSrv *srv, SunMsg *m, SunRpc *rpc, Channel **pc) return pg; } /* right program, wrong version: record range */ - if(pg->vers < vlo) + if(!any++){ vlo = pg->vers; - if(pg->vers > vhi) vhi = pg->vers; + }else{ + if(pg->vers < vlo) + vlo = pg->vers; + if(pg->vers > vhi) + vhi = pg->vers; + } } if(vhi == -1){ if(srv->chatty) |
