diff options
author | Ezra Peisach <epeisach@mit.edu> | 2001-06-28 20:46:58 +0000 |
---|---|---|
committer | Ezra Peisach <epeisach@mit.edu> | 2001-06-28 20:46:58 +0000 |
commit | ab9f9a4a46e93259281d198a9fa9420886acd895 (patch) | |
tree | 7bcc54a36ed419869208067efe82fd1084defeea /src/lib/rpc/svc.h | |
parent | 1af8e1107c28fd2ca3ab55486d0e0061509ec566 (diff) | |
download | krb5-ab9f9a4a46e93259281d198a9fa9420886acd895.tar.gz krb5-ab9f9a4a46e93259281d198a9fa9420886acd895.tar.xz krb5-ab9f9a4a46e93259281d198a9fa9420886acd895.zip |
* auth.h: Provide full prototype for xdr_des_block
* auth_gssapi.h: Complete prototypes for
_svcauth_gssapi_unset_names().
* clnt.h: Prototype dispatch functions and all functions.
* clnt_perror.c: Prototype static auth_errmsg().
* clnt_raw.h clnt_tcp.c, clnt_udp.c: Provide prototypes to static
functions and match dispatch table prototypes. control function
takes void * instead of caddr_t.
* pmap_rmt.c: Move prototype for resultproc_t to pmap_clnt.h.
* rpc.h: get_myaddress returns int. Add prototypes for callrpc and
getrpcport.
* rpc_commondata.c (rpc_createerr): When initializing rpc_creaerr
use RPC_SUCCESS instead of 0.
* get_myaddress.c, rpc_dtablesize.c: Include gssrpc/rpc.h for
prototype.
* pmap_clnt.h, pmap_prot.h, pmap_rmt.h, rpc_msg.h: Full prototypes
for all functions.
* svc.c: Provide full prototype for static function.
* svc.h: Prototypes for dispatch functions added. Flushed out
prototypes for all functions missing prototypes. Added prototype
for svcfd_create.
* svc_auth.c: Prototypes for all functions referenced.
* svc_auth.h: Prototype dispatch functions to svc_auth_ops.
* svc_auth_any.c: Replace use of authany_wrap() with a new local
function that matches svc_auth_ops dispatch table.
* svc_simple.c: Provide prototype for static function
universal. Fill in missing types of parameters to
gssrpc_registerrpc.
* svc_raw.c svc_tcp.c, svc_udp.c: Provide prototypes for static
functions and match prototypes in dispatch table. Change getargs
and freeargs argument to void * from caddr_t.
* xdr.c (xdr_void): Function to match prototype of arguments given.
* xdr.h: Provide full prototypes for xdr_ops dispatch table and
xdr_void().
* svc_auth_gssapi.c, xdr_alloc.c, xdr_mem.c, xdr_rec.c,
xdr_stdio.c: Provide protypes for static functions and match
dispatch tables.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13528 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/rpc/svc.h')
-rw-r--r-- | src/lib/rpc/svc.h | 82 |
1 files changed, 56 insertions, 26 deletions
diff --git a/src/lib/rpc/svc.h b/src/lib/rpc/svc.h index 7472d2d7e8..189edf32ac 100644 --- a/src/lib/rpc/svc.h +++ b/src/lib/rpc/svc.h @@ -68,16 +68,25 @@ enum xprt_stat { /* * Server side transport handle */ -typedef struct { +typedef struct __rpc_svcxprt { int xp_sock; unsigned short xp_port; /* associated port number */ struct xp_ops { - bool_t (*xp_recv)(); /* receive incomming requests */ - enum xprt_stat (*xp_stat)(); /* get transport status */ - bool_t (*xp_getargs)(); /* get arguments */ - bool_t (*xp_reply)(); /* send reply */ - bool_t (*xp_freeargs)();/* free mem allocated for args */ - void (*xp_destroy)(); /* destroy this struct */ + /* receive incomming requests */ + bool_t (*xp_recv)(struct __rpc_svcxprt *, struct rpc_msg *); + /* get transport status */ + enum xprt_stat (*xp_stat)(struct __rpc_svcxprt *); + /* get arguments */ + bool_t (*xp_getargs)(struct __rpc_svcxprt *, xdrproc_t, + void *); + /* send reply */ + bool_t (*xp_reply)(struct __rpc_svcxprt *, + struct rpc_msg *); + /* free mem allocated for args */ + bool_t (*xp_freeargs)(struct __rpc_svcxprt *, xdrproc_t, + void *); + /* destroy this struct */ + void (*xp_destroy)(struct __rpc_svcxprt *); } *xp_ops; int xp_addrlen; /* length of remote address */ struct sockaddr_in xp_raddr; /* remote address */ @@ -173,9 +182,18 @@ struct svc_req { * rpc_u_int32 vers; * void (*dispatch)(); * int protocol; like TCP or UDP, zero means do not register + * + * registerrpc(prog, vers, proc, routine, inproc, outproc) + * returns 0 upon success, -1 if error. */ #define svc_register gssrpc_svc_register -extern bool_t svc_register(); +extern bool_t svc_register(SVCXPRT *, rpc_u_int32, rpc_u_int32, + void (*)(struct svc_req *, SVCXPRT *), int); + +#define registerrpc gssrpc_registerrpc +extern int registerrpc(rpc_u_int32, rpc_u_int32, rpc_u_int32, + char *(*)(void *), + xdrproc_t, xdrproc_t); /* * Service un-registration @@ -185,7 +203,7 @@ extern bool_t svc_register(); * rpc_u_int32 vers; */ #define svc_unregister gssrpc_svc_unregister -extern void svc_unregister(); +extern void svc_unregister(rpc_u_int32, rpc_u_int32); /* * Transport registration. @@ -194,7 +212,7 @@ extern void svc_unregister(); * SVCXPRT *xprt; */ #define xprt_register gssrpc_xprt_register -extern void xprt_register(); +extern void xprt_register(SVCXPRT *); /* * Transport un-register @@ -203,7 +221,7 @@ extern void xprt_register(); * SVCXPRT *xprt; */ #define xprt_unregister gssrpc_xprt_unregister -extern void xprt_unregister(); +extern void xprt_unregister(SVCXPRT *); @@ -244,14 +262,14 @@ extern void xprt_unregister(); #define svcerr_noprog gssrpc_svcerr_noprog #define svcerr_systemerr gssrpc_svcerr_systemerr -extern bool_t svc_sendreply(); -extern void svcerr_decode(); -extern void svcerr_weakauth(); -extern void svcerr_noproc(); -extern void svcerr_progvers(); -extern void svcerr_auth(); -extern void svcerr_noprog(); -extern void svcerr_systemerr(); +extern bool_t svc_sendreply(SVCXPRT *, xdrproc_t, caddr_t); +extern void svcerr_decode(SVCXPRT *); +extern void svcerr_weakauth(SVCXPRT *); +extern void svcerr_noproc(SVCXPRT *); +extern void svcerr_progvers(SVCXPRT *, rpc_u_int32, rpc_u_int32); +extern void svcerr_auth(SVCXPRT *, enum auth_stat); +extern void svcerr_noprog(SVCXPRT *); +extern void svcerr_systemerr(SVCXPRT *); /* * Lowest level dispatching -OR- who owns this process anyway. @@ -288,9 +306,13 @@ extern void rpctest_service(); #define svc_getreqset gssrpc_svc_getreqset #define svc_run gssrpc_svc_run -extern void svc_getreq(); -extern void svc_getreqset(); /* takes fdset instead of int */ -extern void svc_run(); /* never returns */ +extern void svc_getreq(int); +#ifdef FD_SETSIZE +extern void svc_getreqset(fd_set *);/* takes fdset instead of int */ +#else +extern void svc_getreqset(int *); +#endif +extern void svc_run(void); /* never returns */ /* * Socket to use on svcxxx_create call to get default socket @@ -305,20 +327,28 @@ extern void svc_run(); /* never returns */ * Memory based rpc for testing and timing. */ #define svcraw_create gssrpc_svcraw_create -extern SVCXPRT *svcraw_create(); +extern SVCXPRT *svcraw_create(void); /* * Udp based rpc. */ #define svcudp_create gssrpc_svcudp_create #define svcudp_bufcreate gssrpc_svcudp_bufcreate -extern SVCXPRT *svcudp_create(); -extern SVCXPRT *svcudp_bufcreate(); +extern SVCXPRT *svcudp_create(int); +extern SVCXPRT *svcudp_bufcreate(int, unsigned int, unsigned int); /* * Tcp based rpc. */ #define svctcp_create gssrpc_svctcp_create -extern SVCXPRT *svctcp_create(); +extern SVCXPRT *svctcp_create(int, unsigned int, unsigned int); + +/* + * Like svtcp_create(), except the routine takes any *open* UNIX file + * descriptor as its first input. + */ +#define svcfd_create gssrpc_svcfd_create +extern SVCXPRT *svcfd_create(int, u_int, u_int); #endif /* !__SVC_HEADER__ */ + |