diff options
author | Eric Andersen <andersen@codepoet.org> | 2000-10-09 20:06:30 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2000-10-09 20:06:30 +0000 |
commit | c1fe19d4c1db610692365472a90f4661e48449c1 (patch) | |
tree | d0b0219ffca3c4c4256f55c4aea4513e43d6aecd /libc/inet/rpc/svc.c | |
parent | 9efafb8bbc7408b04643dcd53825d971577b4d9d (diff) |
Bug ugly formatting update
Diffstat (limited to 'libc/inet/rpc/svc.c')
-rw-r--r-- | libc/inet/rpc/svc.c | 301 |
1 files changed, 144 insertions, 157 deletions
diff --git a/libc/inet/rpc/svc.c b/libc/inet/rpc/svc.c index 9d0092d8a..1ba12efd5 100644 --- a/libc/inet/rpc/svc.c +++ b/libc/inet/rpc/svc.c @@ -56,10 +56,10 @@ static SVCXPRT **xports; #define NOFILE 32 static SVCXPRT *xports[NOFILE]; -#endif /* def FD_SETSIZE */ +#endif /* def FD_SETSIZE */ #define NULL_SVC ((struct svc_callout *)0) -#define RQCRED_SIZE 400 /* this size is excessive */ +#define RQCRED_SIZE 400 /* this size is excessive */ /* * The services list @@ -69,9 +69,9 @@ static SVCXPRT *xports[NOFILE]; */ static struct svc_callout { struct svc_callout *sc_next; - u_long sc_prog; - u_long sc_vers; - void (*sc_dispatch)(); + u_long sc_prog; + u_long sc_vers; + void (*sc_dispatch) (); } *svc_head; static struct svc_callout *svc_find(); @@ -81,9 +81,8 @@ static struct svc_callout *svc_find(); /* * Activate a transport handle. */ -void -xprt_register(xprt) - SVCXPRT *xprt; +void xprt_register(xprt) +SVCXPRT *xprt; { register int sock = xprt->xp_sock; @@ -101,30 +100,29 @@ xprt_register(xprt) xports[sock] = xprt; svc_fds |= (1 << sock); } -#endif /* def FD_SETSIZE */ +#endif /* def FD_SETSIZE */ } /* * De-activate a transport handle. */ -void -xprt_unregister(xprt) - SVCXPRT *xprt; -{ +void xprt_unregister(xprt) +SVCXPRT *xprt; +{ register int sock = xprt->xp_sock; #ifdef FD_SETSIZE if ((sock < _rpc_dtablesize()) && (xports[sock] == xprt)) { - xports[sock] = (SVCXPRT *)0; + xports[sock] = (SVCXPRT *) 0; FD_CLR(sock, &svc_fdset); } #else if ((sock < NOFILE) && (xports[sock] == xprt)) { - xports[sock] = (SVCXPRT *)0; + xports[sock] = (SVCXPRT *) 0; svc_fds &= ~(1 << sock); } -#endif /* def FD_SETSIZE */ +#endif /* def FD_SETSIZE */ } @@ -135,24 +133,24 @@ xprt_unregister(xprt) * The dispatch routine will be called when a rpc request for this * program number comes in. */ -bool_t -svc_register(xprt, prog, vers, dispatch, protocol) - SVCXPRT *xprt; - u_long prog; - u_long vers; - void (*dispatch)(); - int protocol; +bool_t svc_register(xprt, prog, vers, dispatch, protocol) +SVCXPRT *xprt; +u_long prog; +u_long vers; +void (*dispatch) (); +int protocol; { struct svc_callout *prev; register struct svc_callout *s; if ((s = svc_find(prog, vers, &prev)) != NULL_SVC) { if (s->sc_dispatch == dispatch) - goto pmap_it; /* he is registering another xptr */ + goto pmap_it; /* he is registering another xptr */ return (FALSE); } - s = (struct svc_callout *)mem_alloc(sizeof(struct svc_callout)); - if (s == (struct svc_callout *)0) { + s = (struct svc_callout *) mem_alloc(sizeof(struct svc_callout)); + + if (s == (struct svc_callout *) 0) { return (FALSE); } s->sc_prog = prog; @@ -160,7 +158,7 @@ svc_register(xprt, prog, vers, dispatch, protocol) s->sc_dispatch = dispatch; s->sc_next = svc_head; svc_head = s; -pmap_it: + pmap_it: /* now register the information with the local binder service */ if (protocol) { return (pmap_set(prog, vers, protocol, xprt->xp_port)); @@ -171,10 +169,9 @@ pmap_it: /* * Remove a service program from the callout list. */ -void -svc_unregister(prog, vers) - u_long prog; - u_long vers; +void svc_unregister(prog, vers) +u_long prog; +u_long vers; { struct svc_callout *prev; register struct svc_callout *s; @@ -188,19 +185,19 @@ svc_unregister(prog, vers) } s->sc_next = NULL_SVC; mem_free((char *) s, (u_int) sizeof(struct svc_callout)); + /* now unregister the information with the local binder service */ - (void)pmap_unset(prog, vers); + (void) pmap_unset(prog, vers); } /* * Search the callout list for a program number, return the callout * struct. */ -static struct svc_callout * -svc_find(prog, vers, prev) - u_long prog; - u_long vers; - struct svc_callout **prev; +static struct svc_callout *svc_find(prog, vers, prev) +u_long prog; +u_long vers; +struct svc_callout **prev; { register struct svc_callout *s, *p; @@ -210,7 +207,7 @@ svc_find(prog, vers, prev) goto done; p = s; } -done: + done: *prev = p; return (s); } @@ -220,29 +217,27 @@ done: /* * Send a reply to an rpc request */ -bool_t -svc_sendreply(xprt, xdr_results, xdr_location) - register SVCXPRT *xprt; - xdrproc_t xdr_results; - caddr_t xdr_location; +bool_t svc_sendreply(xprt, xdr_results, xdr_location) +register SVCXPRT *xprt; +xdrproc_t xdr_results; +caddr_t xdr_location; { - struct rpc_msg rply; + struct rpc_msg rply; - rply.rm_direction = REPLY; - rply.rm_reply.rp_stat = MSG_ACCEPTED; - rply.acpted_rply.ar_verf = xprt->xp_verf; + rply.rm_direction = REPLY; + rply.rm_reply.rp_stat = MSG_ACCEPTED; + rply.acpted_rply.ar_verf = xprt->xp_verf; rply.acpted_rply.ar_stat = SUCCESS; rply.acpted_rply.ar_results.where = xdr_location; rply.acpted_rply.ar_results.proc = xdr_results; - return (SVC_REPLY(xprt, &rply)); + return (SVC_REPLY(xprt, &rply)); } /* * No procedure error reply */ -void -svcerr_noproc(xprt) - register SVCXPRT *xprt; +void svcerr_noproc(xprt) +register SVCXPRT *xprt; { struct rpc_msg rply; @@ -256,42 +251,39 @@ svcerr_noproc(xprt) /* * Can't decode args error reply */ -void -svcerr_decode(xprt) - register SVCXPRT *xprt; +void svcerr_decode(xprt) +register SVCXPRT *xprt; { - struct rpc_msg rply; + struct rpc_msg rply; - rply.rm_direction = REPLY; - rply.rm_reply.rp_stat = MSG_ACCEPTED; + rply.rm_direction = REPLY; + rply.rm_reply.rp_stat = MSG_ACCEPTED; rply.acpted_rply.ar_verf = xprt->xp_verf; rply.acpted_rply.ar_stat = GARBAGE_ARGS; - SVC_REPLY(xprt, &rply); + SVC_REPLY(xprt, &rply); } /* * Some system error */ -void -svcerr_systemerr(xprt) - register SVCXPRT *xprt; +void svcerr_systemerr(xprt) +register SVCXPRT *xprt; { - struct rpc_msg rply; + struct rpc_msg rply; - rply.rm_direction = REPLY; - rply.rm_reply.rp_stat = MSG_ACCEPTED; + rply.rm_direction = REPLY; + rply.rm_reply.rp_stat = MSG_ACCEPTED; rply.acpted_rply.ar_verf = xprt->xp_verf; rply.acpted_rply.ar_stat = SYSTEM_ERR; - SVC_REPLY(xprt, &rply); + SVC_REPLY(xprt, &rply); } /* * Authentication error reply */ -void -svcerr_auth(xprt, why) - SVCXPRT *xprt; - enum auth_stat why; +void svcerr_auth(xprt, why) +SVCXPRT *xprt; +enum auth_stat why; { struct rpc_msg rply; @@ -305,9 +297,8 @@ svcerr_auth(xprt, why) /* * Auth too weak error reply */ -void -svcerr_weakauth(xprt) - SVCXPRT *xprt; +void svcerr_weakauth(xprt) +SVCXPRT *xprt; { svcerr_auth(xprt, AUTH_TOOWEAK); @@ -316,15 +307,14 @@ svcerr_weakauth(xprt) /* * Program unavailable error reply */ -void -svcerr_noprog(xprt) - register SVCXPRT *xprt; +void svcerr_noprog(xprt) +register SVCXPRT *xprt; { - struct rpc_msg rply; + struct rpc_msg rply; - rply.rm_direction = REPLY; - rply.rm_reply.rp_stat = MSG_ACCEPTED; - rply.acpted_rply.ar_verf = xprt->xp_verf; + rply.rm_direction = REPLY; + rply.rm_reply.rp_stat = MSG_ACCEPTED; + rply.acpted_rply.ar_verf = xprt->xp_verf; rply.acpted_rply.ar_stat = PROG_UNAVAIL; SVC_REPLY(xprt, &rply); } @@ -332,11 +322,10 @@ svcerr_noprog(xprt) /* * Program version mismatch error reply */ -void -svcerr_progvers(xprt, low_vers, high_vers) - register SVCXPRT *xprt; - u_long low_vers; - u_long high_vers; +void svcerr_progvers(xprt, low_vers, high_vers) +register SVCXPRT *xprt; +u_long low_vers; +u_long high_vers; { struct rpc_msg rply; @@ -367,9 +356,8 @@ svcerr_progvers(xprt, low_vers, high_vers) * is mallocated in kernel land. */ -void -svc_getreq(rdfds) - int rdfds; +void svc_getreq(rdfds) +int rdfds; { #ifdef FD_SETSIZE fd_set readfds; @@ -386,19 +374,18 @@ svc_getreq(rdfds) int readfds = rdfds & svc_fds; svc_getreqset(&readfds); -#endif /* def FD_SETSIZE */ +#endif /* def FD_SETSIZE */ } -void -svc_getreqset(readfds) +void svc_getreqset(readfds) #ifdef FD_SETSIZE - fd_set *readfds; +fd_set *readfds; { #else - int *readfds; +int *readfds; { - int readfds_local = *readfds; -#endif /* def FD_SETSIZE */ + int readfds_local = *readfds; +#endif /* def FD_SETSIZE */ enum xprt_stat stat; struct rpc_msg msg; int prog_found; @@ -411,82 +398,82 @@ svc_getreqset(readfds) register u_long *maskp; register int setsize; register int sock; - char cred_area[2*MAX_AUTH_BYTES + RQCRED_SIZE]; + char cred_area[2 * MAX_AUTH_BYTES + RQCRED_SIZE]; + msg.rm_call.cb_cred.oa_base = cred_area; msg.rm_call.cb_verf.oa_base = &(cred_area[MAX_AUTH_BYTES]); - r.rq_clntcred = &(cred_area[2*MAX_AUTH_BYTES]); + r.rq_clntcred = &(cred_area[2 * MAX_AUTH_BYTES]); #ifdef FD_SETSIZE - setsize = _rpc_dtablesize(); + setsize = _rpc_dtablesize(); #ifdef __linux__ /*#define NFDBITS 32*/ - maskp = (u_long *)readfds; + maskp = (u_long *) readfds; #else - maskp = (u_long *)readfds->fds_bits; + maskp = (u_long *) readfds->fds_bits; #endif for (sock = 0; sock < setsize; sock += NFDBITS) { - for (mask = *maskp++; bit = ffs(mask); mask ^= (1 << (bit - 1))) { - /* sock has input waiting */ - xprt = xports[sock + bit - 1]; + for (mask = *maskp++; bit = ffs(mask); mask ^= (1 << (bit - 1))) { + /* sock has input waiting */ + xprt = xports[sock + bit - 1]; #else for (sock = 0; readfds_local != 0; sock++, readfds_local >>= 1) { - if ((readfds_local & 1) != 0) { - /* sock has input waiting */ - xprt = xports[sock]; -#endif /* def FD_SETSIZE */ - /* now receive msgs from xprtprt (support batch calls) */ - do { - if (SVC_RECV(xprt, &msg)) { - - /* now find the exported program and call it */ - register struct svc_callout *s; - enum auth_stat why; - - r.rq_xprt = xprt; - r.rq_prog = msg.rm_call.cb_prog; - r.rq_vers = msg.rm_call.cb_vers; - r.rq_proc = msg.rm_call.cb_proc; - r.rq_cred = msg.rm_call.cb_cred; - /* first authenticate the message */ - if ((why= _authenticate(&r, &msg)) != AUTH_OK) { - svcerr_auth(xprt, why); - goto call_done; + if ((readfds_local & 1) != 0) { + /* sock has input waiting */ + xprt = xports[sock]; +#endif /* def FD_SETSIZE */ + /* now receive msgs from xprtprt (support batch calls) */ + do { + if (SVC_RECV(xprt, &msg)) { + + /* now find the exported program and call it */ + register struct svc_callout *s; + enum auth_stat why; + + r.rq_xprt = xprt; + r.rq_prog = msg.rm_call.cb_prog; + r.rq_vers = msg.rm_call.cb_vers; + r.rq_proc = msg.rm_call.cb_proc; + r.rq_cred = msg.rm_call.cb_cred; + /* first authenticate the message */ + if ((why = _authenticate(&r, &msg)) != AUTH_OK) { + svcerr_auth(xprt, why); + goto call_done; + } + /* now match message with a registered service */ + prog_found = FALSE; + low_vers = 0 - 1; + high_vers = 0; + for (s = svc_head; s != NULL_SVC; s = s->sc_next) { + if (s->sc_prog == r.rq_prog) { + if (s->sc_vers == r.rq_vers) { + (*s->sc_dispatch) (&r, xprt); + goto call_done; + } /* found correct version */ + prog_found = TRUE; + if (s->sc_vers < low_vers) + low_vers = s->sc_vers; + if (s->sc_vers > high_vers) + high_vers = s->sc_vers; + } /* found correct program */ + } + /* + * if we got here, the program or version + * is not served ... + */ + if (prog_found) + svcerr_progvers(xprt, low_vers, high_vers); + else + svcerr_noprog(xprt); + /* Fall through to ... */ } - /* now match message with a registered service*/ - prog_found = FALSE; - low_vers = 0 - 1; - high_vers = 0; - for (s = svc_head; s != NULL_SVC; s = s->sc_next) { - if (s->sc_prog == r.rq_prog) { - if (s->sc_vers == r.rq_vers) { - (*s->sc_dispatch)(&r, xprt); - goto call_done; - } /* found correct version */ - prog_found = TRUE; - if (s->sc_vers < low_vers) - low_vers = s->sc_vers; - if (s->sc_vers > high_vers) - high_vers = s->sc_vers; - } /* found correct program */ + call_done: + if ((stat = SVC_STAT(xprt)) == XPRT_DIED) { + SVC_DESTROY(xprt); + break; } - /* - * if we got here, the program or version - * is not served ... - */ - if (prog_found) - svcerr_progvers(xprt, - low_vers, high_vers); - else - svcerr_noprog(xprt); - /* Fall through to ... */ - } - call_done: - if ((stat = SVC_STAT(xprt)) == XPRT_DIED){ - SVC_DESTROY(xprt); - break; - } - } while (stat == XPRT_MOREREQS); - } + } while (stat == XPRT_MOREREQS); + } } } |