| auth.h | | auth.h | |
| | | | |
| skipping to change at line 51 | | skipping to change at line 51 | |
| * The data structures are completely opaque to the client. The client | | * The data structures are completely opaque to the client. The client | |
| * is required to pass an AUTH * to routines that create rpc | | * is required to pass an AUTH * to routines that create rpc | |
| * "sessions". | | * "sessions". | |
| */ | | */ | |
| | | | |
| #ifndef _TIRPC_AUTH_H | | #ifndef _TIRPC_AUTH_H | |
| #define _TIRPC_AUTH_H | | #define _TIRPC_AUTH_H | |
| | | | |
| #include <rpc/xdr.h> | | #include <rpc/xdr.h> | |
| #include <rpc/clnt_stat.h> | | #include <rpc/clnt_stat.h> | |
|
| #include <sys/cdefs.h> | | | |
| #include <sys/socket.h> | | #include <sys/socket.h> | |
| #include <sys/types.h> | | #include <sys/types.h> | |
| | | | |
| #define MAX_AUTH_BYTES 400 | | #define MAX_AUTH_BYTES 400 | |
| #define MAXNETNAMELEN 255 /* maximum length of network user's name */ | | #define MAXNETNAMELEN 255 /* maximum length of network user's name */ | |
| | | | |
| /* | | /* | |
| * Client side authentication/security data | | * Client side authentication/security data | |
| */ | | */ | |
| | | | |
| | | | |
| skipping to change at line 165 | | skipping to change at line 164 | |
| typedef u_int32_t u_int32; /* 32-bit unsigned integers */ | | typedef u_int32_t u_int32; /* 32-bit unsigned integers */ | |
| | | | |
| union des_block { | | union des_block { | |
| struct { | | struct { | |
| u_int32_t high; | | u_int32_t high; | |
| u_int32_t low; | | u_int32_t low; | |
| } key; | | } key; | |
| char c[8]; | | char c[8]; | |
| }; | | }; | |
| typedef union des_block des_block; | | typedef union des_block des_block; | |
|
| __BEGIN_DECLS | | | |
| | | #ifdef HAVE_AUTHDES | |
| | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern bool_t xdr_des_block(XDR *, des_block *); | | extern bool_t xdr_des_block(XDR *, des_block *); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | #endif /* HAVE_AUTHDES */ | |
| | | | |
| /* | | /* | |
| * Authentication info. Opaque to client. | | * Authentication info. Opaque to client. | |
| */ | | */ | |
| struct opaque_auth { | | struct opaque_auth { | |
| enum_t oa_flavor; /* flavor of auth */ | | enum_t oa_flavor; /* flavor of auth */ | |
| caddr_t oa_base; /* address of more auth stuff */ | | caddr_t oa_base; /* address of more auth stuff */ | |
| u_int oa_length; /* not to exceed MAX_AUTH_BYTES */ | | u_int oa_length; /* not to exceed MAX_AUTH_BYTES */ | |
| }; | | }; | |
| | | | |
| | | | |
| skipping to change at line 274 | | skipping to change at line 280 | |
| ((*((auth)->ah_ops->ah_wrap))(auth, xdrs, \ | | ((*((auth)->ah_ops->ah_wrap))(auth, xdrs, \ | |
| xfunc, xwhere)) | | xfunc, xwhere)) | |
| | | | |
| #define AUTH_UNWRAP(auth, xdrs, xfunc, xwhere) \ | | #define AUTH_UNWRAP(auth, xdrs, xfunc, xwhere) \ | |
| ((*((auth)->ah_ops->ah_unwrap))(auth, xdrs, \ | | ((*((auth)->ah_ops->ah_unwrap))(auth, xdrs, \ | |
| xfunc, xwhere)) | | xfunc, xwhere)) | |
| #define auth_unwrap(auth, xdrs, xfunc, xwhere) \ | | #define auth_unwrap(auth, xdrs, xfunc, xwhere) \ | |
| ((*((auth)->ah_ops->ah_unwrap))(auth, xdrs, \ | | ((*((auth)->ah_ops->ah_unwrap))(auth, xdrs, \ | |
| xfunc, xwhere)) | | xfunc, xwhere)) | |
| | | | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern struct opaque_auth _null_auth; | | extern struct opaque_auth _null_auth; | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Any style authentication. These routines can be used by any | | * Any style authentication. These routines can be used by any | |
| * authentication style that does not use the wrap/unwrap functions. | | * authentication style that does not use the wrap/unwrap functions. | |
| */ | | */ | |
| int authany_wrap(void), authany_unwrap(void); | | int authany_wrap(void), authany_unwrap(void); | |
| | | | |
| /* | | /* | |
| * These are the various implementations of client side authenticators. | | * These are the various implementations of client side authenticators. | |
| */ | | */ | |
| | | | |
| /* | | /* | |
| * System style authentication | | * System style authentication | |
| * AUTH *authunix_create(machname, uid, gid, len, aup_gids) | | * AUTH *authunix_create(machname, uid, gid, len, aup_gids) | |
| * char *machname; | | * char *machname; | |
| * int uid; | | * int uid; | |
| * int gid; | | * int gid; | |
| * int len; | | * int len; | |
| * int *aup_gids; | | * int *aup_gids; | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern AUTH *authunix_create(char *, uid_t, uid_t, int, uid_t *); | | extern AUTH *authunix_create(char *, uid_t, uid_t, int, uid_t *); | |
| extern AUTH *authunix_create_default(void); /* takes no parameters */ | | extern AUTH *authunix_create_default(void); /* takes no parameters */ | |
| extern AUTH *authnone_create(void); /* takes no parameters */ | | extern AUTH *authnone_create(void); /* takes no parameters */ | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| | | #ifdef HAVE_AUTHDES | |
| /* | | /* | |
| * DES style authentication | | * DES style authentication | |
| * AUTH *authsecdes_create(servername, window, timehost, ckey) | | * AUTH *authsecdes_create(servername, window, timehost, ckey) | |
| * char *servername; - network name of server | | * char *servername; - network name of server | |
| * u_int window; - time to live | | * u_int window; - time to live | |
| * const char *timehost; - optional hostname to sync
with | | * const char *timehost; - optional hostname to sync
with | |
| * des_block *ckey; - optional conversation key to use | | * des_block *ckey; - optional conversation key to use | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern AUTH *authdes_create (char *, u_int, struct sockaddr *, des_block *)
; | | extern AUTH *authdes_create (char *, u_int, struct sockaddr *, des_block *)
; | |
| extern AUTH *authdes_seccreate (const char *, const u_int, const char *, | | extern AUTH *authdes_seccreate (const char *, const u_int, const char *, | |
| const des_block *); | | const des_block *); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | #endif /* HAVE_AUTHDES */ | |
| | | | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern bool_t xdr_opaque_auth (XDR *, struct opaque_auth *); | | extern bool_t xdr_opaque_auth (XDR *, struct opaque_auth *); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| #define authsys_create(c,i1,i2,i3,ip) authunix_create((c),(i1),(i2),(i3),(i
p)) | | #define authsys_create(c,i1,i2,i3,ip) authunix_create((c),(i1),(i2),(i3),(i
p)) | |
| #define authsys_create_default() authunix_create_default() | | #define authsys_create_default() authunix_create_default() | |
| | | | |
| /* | | /* | |
| * Netname manipulation routines. | | * Netname manipulation routines. | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern int getnetname(char *); | | extern int getnetname(char *); | |
| extern int host2netname(char *, const char *, const char *); | | extern int host2netname(char *, const char *, const char *); | |
| extern int user2netname(char *, const uid_t, const char *); | | extern int user2netname(char *, const uid_t, const char *); | |
| extern int netname2user(char *, uid_t *, gid_t *, int *, gid_t *); | | extern int netname2user(char *, uid_t *, gid_t *, int *, gid_t *); | |
| extern int netname2host(char *, char *, const int); | | extern int netname2host(char *, char *, const int); | |
|
| | | #ifdef HAVE_AUTHDES | |
| extern void passwd2des ( char *, char * ); | | extern void passwd2des ( char *, char * ); | |
|
| __END_DECLS | | #endif /* HAVE_AUTHDES */ | |
| | | #ifdef __cplusplus | |
| /* | | } | |
| * | | #endif | |
| * These routines interface to the keyserv daemon | | | |
| * | | | |
| */ | | | |
| __BEGIN_DECLS | | | |
| extern int key_decryptsession(const char *, des_block *); | | | |
| extern int key_encryptsession(const char *, des_block *); | | | |
| extern int key_gendes(des_block *); | | | |
| extern int key_setsecret(const char *); | | | |
| extern int key_secretkey_is_set(void); | | | |
| __END_DECLS | | | |
| | | | |
| /* | | | |
| * Publickey routines. | | | |
| */ | | | |
| __BEGIN_DECLS | | | |
| extern int getpublickey (const char *, char *); | | | |
| extern int getpublicandprivatekey (char *, char *); | | | |
| extern int getsecretkey (char *, char *, char *); | | | |
| __END_DECLS | | | |
| | | | |
| #ifdef KERBEROS | | #ifdef KERBEROS | |
| /* | | /* | |
| * Kerberos style authentication | | * Kerberos style authentication | |
| * AUTH *authkerb_seccreate(service, srv_inst, realm, window, timehost, sta
tus) | | * AUTH *authkerb_seccreate(service, srv_inst, realm, window, timehost, sta
tus) | |
| * const char *service; - service name | | * const char *service; - service name | |
| * const char *srv_inst; - server instance | | * const char *srv_inst; - server instance | |
| * const char *realm; - server realm | | * const char *realm; - server realm | |
| * const u_int window; - time to live | | * const u_int window; - time to live | |
| * const char *timehost; - optional hostname to sync
with | | * const char *timehost; - optional hostname to sync
with | |
| * int *status; - kerberos status returned | | * int *status; - kerberos status returned | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern AUTH *authkerb_seccreate(const char *, const char *, const char
*, | | extern AUTH *authkerb_seccreate(const char *, const char *, const char
*, | |
| const u_int, const char *, int *); | | const u_int, const char *, int *); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Map a kerberos credential into a unix cred. | | * Map a kerberos credential into a unix cred. | |
| * | | * | |
| * authkerb_getucred(rqst, uid, gid, grouplen, groups) | | * authkerb_getucred(rqst, uid, gid, grouplen, groups) | |
| * const struct svc_req *rqst; - request pointer | | * const struct svc_req *rqst; - request pointer | |
| * uid_t *uid; | | * uid_t *uid; | |
| * gid_t *gid; | | * gid_t *gid; | |
| * short *grouplen; | | * short *grouplen; | |
| * int *groups; | | * int *groups; | |
| * | | * | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern int authkerb_getucred(/* struct svc_req *, uid_t *, gid_t *, | | extern int authkerb_getucred(/* struct svc_req *, uid_t *, gid_t *, | |
| short *, int * */); | | short *, int * */); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| #endif /* KERBEROS */ | | #endif /* KERBEROS */ | |
| | | | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| struct svc_req; | | struct svc_req; | |
| struct rpc_msg; | | struct rpc_msg; | |
| enum auth_stat _svcauth_none (struct svc_req *, struct rpc_msg *); | | enum auth_stat _svcauth_none (struct svc_req *, struct rpc_msg *); | |
| enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *); | | enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *); | |
| enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *); | | enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *); | |
|
| __END_DECLS | | enum auth_stat _svcauth_gss (struct svc_req *, struct rpc_msg *, bool_t *); | |
| | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| #define AUTH_NONE 0 /* no authentication */ | | #define AUTH_NONE 0 /* no authentication */ | |
| #define AUTH_NULL 0 /* backward compatibility */ | | #define AUTH_NULL 0 /* backward compatibility */ | |
| #define AUTH_SYS 1 /* unix style (uid, gids) */ | | #define AUTH_SYS 1 /* unix style (uid, gids) */ | |
| #define AUTH_UNIX AUTH_SYS | | #define AUTH_UNIX AUTH_SYS | |
| #define AUTH_SHORT 2 /* short hand unix style */ | | #define AUTH_SHORT 2 /* short hand unix style */ | |
| #define AUTH_DH 3 /* for Diffie-Hellman mechan
ism */ | | #define AUTH_DH 3 /* for Diffie-Hellman mechan
ism */ | |
| #define AUTH_DES AUTH_DH /* for backward compatibility */ | | #define AUTH_DES AUTH_DH /* for backward compatibility */ | |
| #define AUTH_KERB 4 /* kerberos style */ | | #define AUTH_KERB 4 /* kerberos style */ | |
| #define RPCSEC_GSS 6 /* RPCSEC_GSS */ | | #define RPCSEC_GSS 6 /* RPCSEC_GSS */ | |
| | | | |
End of changes. 20 change blocks. |
| 41 lines changed or deleted | | 63 lines changed or added | |
|
| auth_gss.h | | auth_gss.h | |
| | | | |
| skipping to change at line 107 | | skipping to change at line 107 | |
| u_int gr_major; /* major status */ | | u_int gr_major; /* major status */ | |
| u_int gr_minor; /* minor status */ | | u_int gr_minor; /* minor status */ | |
| u_int gr_win; /* sequence window */ | | u_int gr_win; /* sequence window */ | |
| gss_buffer_desc gr_token; /* token */ | | gss_buffer_desc gr_token; /* token */ | |
| }; | | }; | |
| | | | |
| /* Maximum sequence number value. */ | | /* Maximum sequence number value. */ | |
| #define MAXSEQ 0x80000000 | | #define MAXSEQ 0x80000000 | |
| | | | |
| /* Prototypes. */ | | /* Prototypes. */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| bool_t xdr_rpc_gss_cred __P((XDR *xdrs, struct rpc_gss_cred *p)); | | extern "C" { | |
| bool_t xdr_rpc_gss_init_args __P((XDR *xdrs, gss_buffer_desc *p)); | | #endif | |
| bool_t xdr_rpc_gss_init_res __P((XDR *xdrs, struct rpc_gss_init_res *p)) | | bool_t xdr_rpc_gss_cred (XDR *xdrs, struct rpc_gss_cred *p); | |
| ; | | bool_t xdr_rpc_gss_init_args (XDR *xdrs, gss_buffer_desc *p); | |
| bool_t xdr_rpc_gss_data __P((XDR *xdrs, xdrproc_t xdr_func, | | bool_t xdr_rpc_gss_init_res (XDR *xdrs, struct rpc_gss_init_res *p); | |
| caddr_t xdr_ptr, gss_ctx_id_t ctx, | | bool_t xdr_rpc_gss_data (XDR *xdrs, xdrproc_t xdr_func, | |
| gss_qop_t qop, rpc_gss_svc_t svc, | | caddr_t xdr_ptr, gss_ctx_id_t ctx, | |
| u_int seq)); | | gss_qop_t qop, rpc_gss_svc_t svc, | |
| | | u_int seq); | |
| AUTH *authgss_create __P((CLIENT *, gss_name_t, | | | |
| struct rpc_gss_sec *)); | | AUTH *authgss_create (CLIENT *, gss_name_t, struct rpc_gss_sec *) | |
| AUTH *authgss_create_default __P((CLIENT *, char *, struct rpc_gss_sec *) | | ; | |
| ); | | AUTH *authgss_create_default (CLIENT *, char *, struct rpc_gss_sec *); | |
| bool_t authgss_service __P((AUTH *auth, int svc)); | | bool_t authgss_service (AUTH *auth, int svc); | |
| bool_t authgss_get_private_data __P((AUTH *auth, | | bool_t authgss_get_private_data (AUTH *auth, struct authgss_private_ | |
| struct authgss_private_data *)); | | data *); | |
| bool_t authgss_free_private_data __P((struct authgss_private_data *)); | | bool_t authgss_free_private_data (struct authgss_private_data *); | |
| | | | |
| void gss_log_debug __P((const char *fmt, ...)); | | void gss_log_debug (const char *fmt, ...); | |
| void gss_log_status __P((char *m, OM_uint32 major, | | void gss_log_status (char *m, OM_uint32 major, OM_uint32 minor); | |
| OM_uint32 minor)); | | void gss_log_hexdump (const u_char *buf, int len, int offset); | |
| void gss_log_hexdump __P((const u_char *buf, int len, int offset) | | | |
| ); | | #ifdef __cplusplus | |
| | | } | |
| __END_DECLS | | #endif | |
| | | | |
| #endif /* !_TIRPC_AUTH_GSS_H */ | | #endif /* !_TIRPC_AUTH_GSS_H */ | |
| | | | |
End of changes. 1 change blocks. |
| 26 lines changed or deleted | | 26 lines changed or added | |
|
| clnt.h | | clnt.h | |
| | | | |
| skipping to change at line 45 | | skipping to change at line 45 | |
| /* | | /* | |
| * clnt.h - Client side remote procedure call interface. | | * clnt.h - Client side remote procedure call interface. | |
| */ | | */ | |
| | | | |
| #ifndef _TIRPC_CLNT_H_ | | #ifndef _TIRPC_CLNT_H_ | |
| #define _TIRPC_CLNT_H_ | | #define _TIRPC_CLNT_H_ | |
| | | | |
| #include <rpc/clnt_stat.h> | | #include <rpc/clnt_stat.h> | |
| #include <rpc/auth.h> | | #include <rpc/auth.h> | |
| | | | |
|
| #include <sys/cdefs.h> | | | |
| #include <netconfig.h> | | #include <netconfig.h> | |
| #include <sys/un.h> | | #include <sys/un.h> | |
| | | | |
| /* | | /* | |
| * Well-known IPV6 RPC broadcast address. | | * Well-known IPV6 RPC broadcast address. | |
| */ | | */ | |
| #define RPCB_MULTICAST_ADDR "ff02::202" | | #define RPCB_MULTICAST_ADDR "ff02::202" | |
| | | | |
| /* | | /* | |
| * the following errors are in general unrecoverable. The caller | | * the following errors are in general unrecoverable. The caller | |
| | | | |
| skipping to change at line 266 | | skipping to change at line 265 | |
| /* | | /* | |
| * Below are the client handle creation routines for the various | | * Below are the client handle creation routines for the various | |
| * implementations of client side rpc. They can return NULL if a | | * implementations of client side rpc. They can return NULL if a | |
| * creation failure occurs. | | * creation failure occurs. | |
| */ | | */ | |
| | | | |
| /* | | /* | |
| * Generic client creation routine. Supported protocols are those that | | * Generic client creation routine. Supported protocols are those that | |
| * belong to the nettype namespace (/etc/netconfig). | | * belong to the nettype namespace (/etc/netconfig). | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern CLIENT *clnt_create(const char *, const rpcprog_t, const rpcvers_t, | | extern CLIENT *clnt_create(const char *, const rpcprog_t, const rpcvers_t, | |
| const char *); | | const char *); | |
| /* | | /* | |
| * | | * | |
| * const char *hostname; -- hostname | | * const char *hostname; -- hostname | |
| * const rpcprog_t prog; -- program number | | * const rpcprog_t prog; -- program number | |
| * const rpcvers_t vers; -- version number | | * const rpcvers_t vers; -- version number | |
| * const char *nettype; -- network type | | * const char *nettype; -- network type | |
| */ | | */ | |
| | | | |
| | | | |
| skipping to change at line 413 | | skipping to change at line 414 | |
| | | | |
| /* | | /* | |
| * Memory based rpc (for speed check and testing) | | * Memory based rpc (for speed check and testing) | |
| * CLIENT * | | * CLIENT * | |
| * clnt_raw_create(prog, vers) | | * clnt_raw_create(prog, vers) | |
| * u_long prog; | | * u_long prog; | |
| * u_long vers; | | * u_long vers; | |
| */ | | */ | |
| extern CLIENT *clnt_raw_create(rpcprog_t, rpcvers_t); | | extern CLIENT *clnt_raw_create(rpcprog_t, rpcvers_t); | |
| | | | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Print why creation failed | | * Print why creation failed | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern void clnt_pcreateerror(const char *); /* stderr */ | | extern void clnt_pcreateerror(const char *); /* stderr */ | |
| extern char *clnt_spcreateerror(const char *); /* string */ | | extern char *clnt_spcreateerror(const char *); /* string */ | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Like clnt_perror(), but is more verbose in its output | | * Like clnt_perror(), but is more verbose in its output | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern void clnt_perrno(enum clnt_stat); /* stderr */ | | extern void clnt_perrno(enum clnt_stat); /* stderr */ | |
| extern char *clnt_sperrno(enum clnt_stat); /* string */ | | extern char *clnt_sperrno(enum clnt_stat); /* string */ | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Print an English error message, given the client error code | | * Print an English error message, given the client error code | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern void clnt_perror(CLIENT *, const char *); /* stderr */ | | extern void clnt_perror(CLIENT *, const char *); /* stderr */ | |
| extern char *clnt_sperror(CLIENT *, const char *); /* string */ | | extern char *clnt_sperror(CLIENT *, const char *); /* string */ | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * If a creation fails, the following allows the user to figure out why. | | * If a creation fails, the following allows the user to figure out why. | |
| */ | | */ | |
| struct rpc_createerr { | | struct rpc_createerr { | |
| enum clnt_stat cf_stat; | | enum clnt_stat cf_stat; | |
| struct rpc_err cf_error; /* useful when cf_stat == RPC_PMAPFAILURE *
/ | | struct rpc_err cf_error; /* useful when cf_stat == RPC_PMAPFAILURE *
/ | |
| }; | | }; | |
| | | | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern struct rpc_createerr *__rpc_createerr(void); | | extern struct rpc_createerr *__rpc_createerr(void); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| #define get_rpc_createerr() (*(__rpc_createerr())) | | #define get_rpc_createerr() (*(__rpc_createerr())) | |
| #define rpc_createerr (*(__rpc_createerr())) | | #define rpc_createerr (*(__rpc_createerr())) | |
| | | | |
| /* | | /* | |
| * The simplified interface: | | * The simplified interface: | |
| * enum clnt_stat | | * enum clnt_stat | |
| * rpc_call(host, prognum, versnum, procnum, inproc, in, outproc, out, nett
ype) | | * rpc_call(host, prognum, versnum, procnum, inproc, in, outproc, out, nett
ype) | |
| * const char *host; | | * const char *host; | |
| * const rpcprog_t prognum; | | * const rpcprog_t prognum; | |
| * const rpcvers_t versnum; | | * const rpcvers_t versnum; | |
| * const rpcproc_t procnum; | | * const rpcproc_t procnum; | |
| * const xdrproc_t inproc, outproc; | | * const xdrproc_t inproc, outproc; | |
| * const char *in; | | * const char *in; | |
| * char *out; | | * char *out; | |
| * const char *nettype; | | * const char *nettype; | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern enum clnt_stat rpc_call(const char *, const rpcprog_t, | | extern enum clnt_stat rpc_call(const char *, const rpcprog_t, | |
| const rpcvers_t, const rpcproc_t, | | const rpcvers_t, const rpcproc_t, | |
| const xdrproc_t, const char *, | | const xdrproc_t, const char *, | |
| const xdrproc_t, char *, const char *); | | const xdrproc_t, char *, const char *); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * RPC broadcast interface | | * RPC broadcast interface | |
| * The call is broadcasted to all locally connected nets. | | * The call is broadcasted to all locally connected nets. | |
| * | | * | |
| * extern enum clnt_stat | | * extern enum clnt_stat | |
| * rpc_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, | | * rpc_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, | |
| * eachresult, nettype) | | * eachresult, nettype) | |
| * const rpcprog_t prog; -- program number | | * const rpcprog_t prog; -- program number | |
| * const rpcvers_t vers; -- version number | | * const rpcvers_t vers; -- version number | |
| | | | |
| skipping to change at line 519 | | skipping to change at line 542 | |
| * const xdrproc_t xresults; -- xdr routine for results | | * const xdrproc_t xresults; -- xdr routine for results | |
| * caddr_t resultsp; -- pointer to results | | * caddr_t resultsp; -- pointer to results | |
| * const resultproc_t eachresult; -- call with each result | | * const resultproc_t eachresult; -- call with each result | |
| * const int inittime; -- how long to wait initiall
y | | * const int inittime; -- how long to wait initiall
y | |
| * const int waittime; -- maximum time to wait | | * const int waittime; -- maximum time to wait | |
| * const char *nettype; -- Transport type | | * const char *nettype; -- Transport type | |
| */ | | */ | |
| | | | |
| typedef bool_t (*resultproc_t)(caddr_t, ...); | | typedef bool_t (*resultproc_t)(caddr_t, ...); | |
| | | | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern enum clnt_stat rpc_broadcast(const rpcprog_t, const rpcvers_t, | | extern enum clnt_stat rpc_broadcast(const rpcprog_t, const rpcvers_t, | |
| const rpcproc_t, const xdrproc_t, | | const rpcproc_t, const xdrproc_t, | |
| caddr_t, const xdrproc_t, caddr_t, | | caddr_t, const xdrproc_t, caddr_t, | |
| const resultproc_t, const char *); | | const resultproc_t, const char *); | |
| extern enum clnt_stat rpc_broadcast_exp(const rpcprog_t, const rpcvers_t, | | extern enum clnt_stat rpc_broadcast_exp(const rpcprog_t, const rpcvers_t, | |
| const rpcproc_t, const xdrproc_t, | | const rpcproc_t, const xdrproc_t, | |
| caddr_t, const xdrproc_t, caddr_t, | | caddr_t, const xdrproc_t, caddr_t, | |
| const resultproc_t, const int, | | const resultproc_t, const int, | |
| const int, const char *); | | const int, const char *); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* For backward compatibility */ | | /* For backward compatibility */ | |
| #include <rpc/clnt_soc.h> | | #include <rpc/clnt_soc.h> | |
| | | | |
| #endif /* !_TIRPC_CLNT_H_ */ | | #endif /* !_TIRPC_CLNT_H_ */ | |
| | | | |
End of changes. 15 change blocks. |
| 15 lines changed or deleted | | 42 lines changed or added | |
|
| clnt_soc.h | | clnt_soc.h | |
| | | | |
| skipping to change at line 49 | | skipping to change at line 49 | |
| #ifndef _RPC_CLNT_SOC_H | | #ifndef _RPC_CLNT_SOC_H | |
| #define _RPC_CLNT_SOC_H | | #define _RPC_CLNT_SOC_H | |
| | | | |
| /* derived from clnt_soc.h 1.3 88/12/17 SMI */ | | /* derived from clnt_soc.h 1.3 88/12/17 SMI */ | |
| | | | |
| /* | | /* | |
| * All the following declarations are only for backward compatibility | | * All the following declarations are only for backward compatibility | |
| * with TS-RPC. | | * with TS-RPC. | |
| */ | | */ | |
| | | | |
|
| #include <sys/cdefs.h> | | | |
| | | | |
| #define UDPMSGSIZE 8800 /* rpc imposed limit on udp msg size */ | | #define UDPMSGSIZE 8800 /* rpc imposed limit on udp msg size */ | |
| | | | |
| /* | | /* | |
| * TCP based rpc | | * TCP based rpc | |
| * CLIENT * | | * CLIENT * | |
| * clnttcp_create(raddr, prog, vers, sockp, sendsz, recvsz) | | * clnttcp_create(raddr, prog, vers, sockp, sendsz, recvsz) | |
| * struct sockaddr_in *raddr; | | * struct sockaddr_in *raddr; | |
| * u_long prog; | | * u_long prog; | |
| * u_long version; | | * u_long version; | |
| * register int *sockp; | | * register int *sockp; | |
| * u_int sendsz; | | * u_int sendsz; | |
| * u_int recvsz; | | * u_int recvsz; | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern CLIENT *clnttcp_create(struct sockaddr_in *, u_long, u_long, int *, | | extern CLIENT *clnttcp_create(struct sockaddr_in *, u_long, u_long, int *, | |
| u_int, u_int); | | u_int, u_int); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Raw (memory) rpc. | | * Raw (memory) rpc. | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern CLIENT *clntraw_create(u_long, u_long); | | extern CLIENT *clntraw_create(u_long, u_long); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| IPv6 socket version | | IPv6 socket version | |
| */ | | */ | |
| #ifdef INET6 | | #ifdef INET6 | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern CLIENT *clnttcp6_create(struct sockaddr_in6 *, u_long, u_long, int *
, | | extern CLIENT *clnttcp6_create(struct sockaddr_in6 *, u_long, u_long, int *
, | |
| u_int, u_int); | | u_int, u_int); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| #endif | | #endif | |
| | | | |
| /* | | /* | |
| * UDP based rpc. | | * UDP based rpc. | |
| * CLIENT * | | * CLIENT * | |
| * clntudp_create(raddr, program, version, wait, sockp) | | * clntudp_create(raddr, program, version, wait, sockp) | |
| * struct sockaddr_in *raddr; | | * struct sockaddr_in *raddr; | |
| * u_long program; | | * u_long program; | |
| * u_long version; | | * u_long version; | |
| * struct timeval wait; | | * struct timeval wait; | |
| | | | |
| skipping to change at line 107 | | skipping to change at line 117 | |
| * CLIENT * | | * CLIENT * | |
| * clntudp_bufcreate(raddr, program, version, wait, sockp, sendsz, recvsz) | | * clntudp_bufcreate(raddr, program, version, wait, sockp, sendsz, recvsz) | |
| * struct sockaddr_in *raddr; | | * struct sockaddr_in *raddr; | |
| * u_long program; | | * u_long program; | |
| * u_long version; | | * u_long version; | |
| * struct timeval wait; | | * struct timeval wait; | |
| * int *sockp; | | * int *sockp; | |
| * u_int sendsz; | | * u_int sendsz; | |
| * u_int recvsz; | | * u_int recvsz; | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern CLIENT *clntudp_create(struct sockaddr_in *, u_long, u_long, | | extern CLIENT *clntudp_create(struct sockaddr_in *, u_long, u_long, | |
| struct timeval, int *); | | struct timeval, int *); | |
| extern CLIENT *clntudp_bufcreate(struct sockaddr_in *, u_long, u_long, | | extern CLIENT *clntudp_bufcreate(struct sockaddr_in *, u_long, u_long, | |
| struct timeval, int *, u_int, u_int); | | struct timeval, int *, u_int, u_int); | |
| #ifdef INET6 | | #ifdef INET6 | |
| extern CLIENT *clntudp6_create(struct sockaddr_in6 *, u_long, u_long, | | extern CLIENT *clntudp6_create(struct sockaddr_in6 *, u_long, u_long, | |
| struct timeval, int *); | | struct timeval, int *); | |
| extern CLIENT *clntudp6_bufcreate(struct sockaddr_in6 *, u_long, u_long, | | extern CLIENT *clntudp6_bufcreate(struct sockaddr_in6 *, u_long, u_long, | |
| struct timeval, int *, u_int, u_int); | | struct timeval, int *, u_int, u_int); | |
| #endif | | #endif | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| #endif /* _RPC_CLNT_SOC_H */ | | #endif /* _RPC_CLNT_SOC_H */ | |
| | | | |
End of changes. 9 change blocks. |
| 10 lines changed or deleted | | 24 lines changed or added | |
|
| rpc.h | | rpc.h | |
| | | | |
| skipping to change at line 55 | | skipping to change at line 55 | |
| /* Client side only authentication */ | | /* Client side only authentication */ | |
| #include <rpc/auth.h> /* generic authenticator (client side) */ | | #include <rpc/auth.h> /* generic authenticator (client side) */ | |
| | | | |
| /* Client side (mostly) remote procedure call */ | | /* Client side (mostly) remote procedure call */ | |
| #include <rpc/clnt.h> /* generic rpc stuff */ | | #include <rpc/clnt.h> /* generic rpc stuff */ | |
| | | | |
| /* semi-private protocol headers */ | | /* semi-private protocol headers */ | |
| #include <rpc/rpc_msg.h> /* protocol for rpc messages */ | | #include <rpc/rpc_msg.h> /* protocol for rpc messages */ | |
| #include <rpc/auth_unix.h> /* protocol for unix style cred */ | | #include <rpc/auth_unix.h> /* protocol for unix style cred */ | |
| | | | |
|
| | | #ifdef HAVE_AUTHDES | |
| /* | | /* | |
| * Uncomment-out the next line if you are building the rpc library with | | * Uncomment-out the next line if you are building the rpc library with | |
| * DES Authentication (see the README file in the secure_rpc/ directory). | | * DES Authentication (see the README file in the secure_rpc/ directory). | |
| */ | | */ | |
| #include <rpc/auth_des.h> /* protocol for des style cred */ | | #include <rpc/auth_des.h> /* protocol for des style cred */ | |
|
| | | #endif /* HAVE_AUTHDES */ | |
| | | | |
| #ifdef HAVE_RPCSEC_GSS | | #ifdef HAVE_RPCSEC_GSS | |
| #include <rpc/auth_gss.h> /* RPCSEC_GSS */ | | #include <rpc/auth_gss.h> /* RPCSEC_GSS */ | |
| #endif | | #endif | |
| | | | |
| /* Server side only remote procedure callee */ | | /* Server side only remote procedure callee */ | |
| #include <rpc/svc_auth.h> /* service side authenticator */ | | #include <rpc/svc_auth.h> /* service side authenticator */ | |
| #include <rpc/svc.h> /* service manager and multiplexer */ | | #include <rpc/svc.h> /* service manager and multiplexer */ | |
| | | | |
| /* Portmapper client, server, and protocol headers */ | | /* Portmapper client, server, and protocol headers */ | |
| | | | |
| skipping to change at line 82 | | skipping to change at line 84 | |
| | | | |
| #ifndef _KERNEL | | #ifndef _KERNEL | |
| #include <rpc/rpcb_clnt.h> /* rpcbind interface functions */ | | #include <rpc/rpcb_clnt.h> /* rpcbind interface functions */ | |
| #endif | | #endif | |
| #include <rpc/rpcent.h> | | #include <rpc/rpcent.h> | |
| | | | |
| #ifndef UDPMSGSIZE | | #ifndef UDPMSGSIZE | |
| #define UDPMSGSIZE 8800 | | #define UDPMSGSIZE 8800 | |
| #endif | | #endif | |
| | | | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern int get_myaddress(struct sockaddr_in *); | | extern int get_myaddress(struct sockaddr_in *); | |
|
| extern int bindresvport(int, struct sockaddr_in *) __THROW; | | extern int bindresvport(int, struct sockaddr_in *); | |
| extern int registerrpc(int, int, int, char *(*)(char [UDPMSGSIZE]), | | extern int registerrpc(int, int, int, char *(*)(char [UDPMSGSIZE]), | |
| xdrproc_t, xdrproc_t); | | xdrproc_t, xdrproc_t); | |
| extern int callrpc(const char *, int, int, int, xdrproc_t, void *, | | extern int callrpc(const char *, int, int, int, xdrproc_t, void *, | |
| xdrproc_t , void *); | | xdrproc_t , void *); | |
| extern int getrpcport(char *, int, int, int); | | extern int getrpcport(char *, int, int, int); | |
| | | | |
| char *taddr2uaddr(const struct netconfig *, const struct netbuf *); | | char *taddr2uaddr(const struct netconfig *, const struct netbuf *); | |
| struct netbuf *uaddr2taddr(const struct netconfig *, const char *); | | struct netbuf *uaddr2taddr(const struct netconfig *, const char *); | |
| | | | |
| struct sockaddr; | | struct sockaddr; | |
| extern int bindresvport_sa(int, struct sockaddr *); | | extern int bindresvport_sa(int, struct sockaddr *); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * The following are not exported interfaces, they are for internal library | | * The following are not exported interfaces, they are for internal library | |
| * and rpcbind use only. Do not use, they may change without notice. | | * and rpcbind use only. Do not use, they may change without notice. | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| int __rpc_nconf2fd(const struct netconfig *); | | int __rpc_nconf2fd(const struct netconfig *); | |
| int __rpc_nconf2fd_flags(const struct netconfig *, int); | | int __rpc_nconf2fd_flags(const struct netconfig *, int); | |
| int __rpc_nconf2sockinfo(const struct netconfig *, struct __rpc_sockinfo *)
; | | int __rpc_nconf2sockinfo(const struct netconfig *, struct __rpc_sockinfo *)
; | |
| int __rpc_fd2sockinfo(int, struct __rpc_sockinfo *); | | int __rpc_fd2sockinfo(int, struct __rpc_sockinfo *); | |
| u_int __rpc_get_t_size(int, int, int); | | u_int __rpc_get_t_size(int, int, int); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| #endif /* !_RPC_RPC_H */ | | #endif /* !_RPC_RPC_H */ | |
| | | | |
End of changes. 7 change blocks. |
| 5 lines changed or deleted | | 15 lines changed or added | |
|
| rpc_com.h | | rpc_com.h | |
| | | | |
| skipping to change at line 44 | | skipping to change at line 44 | |
| | | | |
| /* | | /* | |
| * rpc_com.h, Common definitions for both the server and client side. | | * rpc_com.h, Common definitions for both the server and client side. | |
| * All for the topmost layer of rpc | | * All for the topmost layer of rpc | |
| * | | * | |
| */ | | */ | |
| | | | |
| #ifndef _RPC_RPCCOM_H | | #ifndef _RPC_RPCCOM_H | |
| #define _RPC_RPCCOM_H | | #define _RPC_RPCCOM_H | |
| | | | |
|
| #include <sys/cdefs.h> | | | |
| | | | |
| /* #pragma ident "@(#)rpc_com.h 1.11 93/07/05 SMI" */ | | /* #pragma ident "@(#)rpc_com.h 1.11 93/07/05 SMI" */ | |
| | | | |
| /* | | /* | |
| * The max size of the transport, if the size cannot be determined | | * The max size of the transport, if the size cannot be determined | |
| * by other means. | | * by other means. | |
| */ | | */ | |
| #define RPC_MAXDATASIZE 9000 | | #define RPC_MAXDATASIZE 9000 | |
| #define RPC_MAXADDRSIZE 1024 | | #define RPC_MAXADDRSIZE 1024 | |
| | | | |
| #define __RPC_GETXID(now) ((u_int32_t)getpid() ^ (u_int32_t)(now)->tv_sec ^
\ | | #define __RPC_GETXID(now) ((u_int32_t)getpid() ^ (u_int32_t)(now)->tv_sec ^
\ | |
| (u_int32_t)(now)->tv_usec) | | (u_int32_t)(now)->tv_usec) | |
| | | | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern u_int __rpc_get_a_size(int); | | extern u_int __rpc_get_a_size(int); | |
| extern int __rpc_dtbsize(void); | | extern int __rpc_dtbsize(void); | |
| extern int _rpc_dtablesize(void); | | extern int _rpc_dtablesize(void); | |
| extern struct netconfig * __rpcgettp(int); | | extern struct netconfig * __rpcgettp(int); | |
| extern int __rpc_get_default_domain(char **); | | extern int __rpc_get_default_domain(char **); | |
| | | | |
| char *__rpc_taddr2uaddr_af(int, const struct netbuf *); | | char *__rpc_taddr2uaddr_af(int, const struct netbuf *); | |
| struct netbuf *__rpc_uaddr2taddr_af(int, const char *); | | struct netbuf *__rpc_uaddr2taddr_af(int, const char *); | |
| int __rpc_fixup_addr(struct netbuf *, const struct netbuf *); | | int __rpc_fixup_addr(struct netbuf *, const struct netbuf *); | |
| int __rpc_sockinfo2netid(struct __rpc_sockinfo *, const char **); | | int __rpc_sockinfo2netid(struct __rpc_sockinfo *, const char **); | |
| | | | |
| skipping to change at line 80 | | skipping to change at line 80 | |
| int __rpc_socktype2seman(int); | | int __rpc_socktype2seman(int); | |
| void *rpc_nullproc(CLIENT *); | | void *rpc_nullproc(CLIENT *); | |
| int __rpc_sockisbound(int); | | int __rpc_sockisbound(int); | |
| | | | |
| struct netbuf *__rpcb_findaddr(rpcprog_t, rpcvers_t, const struct netconfig
*, | | struct netbuf *__rpcb_findaddr(rpcprog_t, rpcvers_t, const struct netconfig
*, | |
| const char *, CLIENT **); | | const char *, CLIENT **); | |
| bool_t rpc_control(int,void *); | | bool_t rpc_control(int,void *); | |
| | | | |
| char *_get_next_token(char *, int); | | char *_get_next_token(char *, int); | |
| | | | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| #endif /* _RPC_RPCCOM_H */ | | #endif /* _RPC_RPCCOM_H */ | |
| | | | |
End of changes. 3 change blocks. |
| 4 lines changed or deleted | | 6 lines changed or added | |
|
| rpcb_clnt.h | | rpcb_clnt.h | |
| | | | |
| skipping to change at line 62 | | skipping to change at line 62 | |
| */ | | */ | |
| | | | |
| #ifndef _RPC_RPCB_CLNT_H | | #ifndef _RPC_RPCB_CLNT_H | |
| #define _RPC_RPCB_CLNT_H | | #define _RPC_RPCB_CLNT_H | |
| | | | |
| /* #pragma ident "@(#)rpcb_clnt.h 1.13 94/04/25 SMI" */ | | /* #pragma ident "@(#)rpcb_clnt.h 1.13 94/04/25 SMI" */ | |
| /* rpcb_clnt.h 1.3 88/12/05 SMI */ | | /* rpcb_clnt.h 1.3 88/12/05 SMI */ | |
| | | | |
| #include <rpc/types.h> | | #include <rpc/types.h> | |
| #include <rpc/rpcb_prot.h> | | #include <rpc/rpcb_prot.h> | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern bool_t rpcb_set(const rpcprog_t, const rpcvers_t, | | extern bool_t rpcb_set(const rpcprog_t, const rpcvers_t, | |
| const struct netconfig *, const struct netbuf *); | | const struct netconfig *, const struct netbuf *); | |
| extern bool_t rpcb_unset(const rpcprog_t, const rpcvers_t, | | extern bool_t rpcb_unset(const rpcprog_t, const rpcvers_t, | |
| const struct netconfig *); | | const struct netconfig *); | |
| extern rpcblist *rpcb_getmaps(const struct netconfig *, const char *
); | | extern rpcblist *rpcb_getmaps(const struct netconfig *, const char *
); | |
| extern enum clnt_stat rpcb_rmtcall(const struct netconfig *, | | extern enum clnt_stat rpcb_rmtcall(const struct netconfig *, | |
| const char *, const rpcprog_t, | | const char *, const rpcprog_t, | |
| const rpcvers_t, const rpcproc_t, | | const rpcvers_t, const rpcproc_t, | |
| const xdrproc_t, const caddr_t, | | const xdrproc_t, const caddr_t, | |
| const xdrproc_t, const caddr_t, | | const xdrproc_t, const caddr_t, | |
| const struct timeval, | | const struct timeval, | |
| const struct netbuf *); | | const struct netbuf *); | |
| extern bool_t rpcb_getaddr(const rpcprog_t, const rpcvers_t, | | extern bool_t rpcb_getaddr(const rpcprog_t, const rpcvers_t, | |
| const struct netconfig *, struct netbuf *, | | const struct netconfig *, struct netbuf *, | |
| const char *); | | const char *); | |
| extern bool_t rpcb_gettime(const char *, time_t *); | | extern bool_t rpcb_gettime(const char *, time_t *); | |
| extern char *rpcb_taddr2uaddr(struct netconfig *, struct netbuf *); | | extern char *rpcb_taddr2uaddr(struct netconfig *, struct netbuf *); | |
| extern struct netbuf *rpcb_uaddr2taddr(struct netconfig *, char *); | | extern struct netbuf *rpcb_uaddr2taddr(struct netconfig *, char *); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| #endif /* !_RPC_RPCB_CLNT_H */ | | #endif /* !_RPC_RPCB_CLNT_H */ | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 6 lines changed or added | |
|
| svc.h | | svc.h | |
| | | | |
| skipping to change at line 43 | | skipping to change at line 43 | |
| */ | | */ | |
| | | | |
| /* | | /* | |
| * svc.h, Server-side remote procedure call interface. | | * svc.h, Server-side remote procedure call interface. | |
| * | | * | |
| * Copyright (C) 1986-1993 by Sun Microsystems, Inc. | | * Copyright (C) 1986-1993 by Sun Microsystems, Inc. | |
| */ | | */ | |
| | | | |
| #ifndef _TIRPC_SVC_H | | #ifndef _TIRPC_SVC_H | |
| #define _TIRPC_SVC_H | | #define _TIRPC_SVC_H | |
|
| #include <sys/cdefs.h> | | | |
| | | | |
| /* | | /* | |
| * This interface must manage two items concerning remote procedure calling
: | | * This interface must manage two items concerning remote procedure calling
: | |
| * | | * | |
| * 1) An arbitrary number of transport connections upon which rpc requests | | * 1) An arbitrary number of transport connections upon which rpc requests | |
| * are received. The two most notable transports are TCP and UDP; they ar
e | | * are received. The two most notable transports are TCP and UDP; they ar
e | |
| * created and registered by routines in svc_tcp.c and svc_udp.c, respectiv
ely; | | * created and registered by routines in svc_tcp.c and svc_udp.c, respectiv
ely; | |
| * they in turn call xprt_register and xprt_unregister. | | * they in turn call xprt_register and xprt_unregister. | |
| * | | * | |
| * 2) An arbitrary number of locally registered services. Services are | | * 2) An arbitrary number of locally registered services. Services are | |
| | | | |
| skipping to change at line 203 | | skipping to change at line 202 | |
| * Service registration | | * Service registration | |
| * | | * | |
| * svc_reg(xprt, prog, vers, dispatch, nconf) | | * svc_reg(xprt, prog, vers, dispatch, nconf) | |
| * const SVCXPRT *xprt; | | * const SVCXPRT *xprt; | |
| * const rpcprog_t prog; | | * const rpcprog_t prog; | |
| * const rpcvers_t vers; | | * const rpcvers_t vers; | |
| * const void (*dispatch)(); | | * const void (*dispatch)(); | |
| * const struct netconfig *nconf; | | * const struct netconfig *nconf; | |
| */ | | */ | |
| | | | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern bool_t svc_reg(SVCXPRT *, const rpcprog_t, const rpcvers_t, | | extern bool_t svc_reg(SVCXPRT *, const rpcprog_t, const rpcvers_t, | |
| void (*)(struct svc_req *, SVCXPRT *), | | void (*)(struct svc_req *, SVCXPRT *), | |
| const struct netconfig *); | | const struct netconfig *); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Service un-registration | | * Service un-registration | |
| * | | * | |
| * svc_unreg(prog, vers) | | * svc_unreg(prog, vers) | |
| * const rpcprog_t prog; | | * const rpcprog_t prog; | |
| * const rpcvers_t vers; | | * const rpcvers_t vers; | |
| */ | | */ | |
| | | | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern void svc_unreg(const rpcprog_t, const rpcvers_t); | | extern void svc_unreg(const rpcprog_t, const rpcvers_t); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Transport registration. | | * Transport registration. | |
| * | | * | |
| * xprt_register(xprt) | | * xprt_register(xprt) | |
| * SVCXPRT *xprt; | | * SVCXPRT *xprt; | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern void xprt_register(SVCXPRT *); | | extern void xprt_register(SVCXPRT *); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Transport un-register | | * Transport un-register | |
| * | | * | |
| * xprt_unregister(xprt) | | * xprt_unregister(xprt) | |
| * SVCXPRT *xprt; | | * SVCXPRT *xprt; | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern void xprt_unregister(SVCXPRT *); | | extern void xprt_unregister(SVCXPRT *); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * When the service routine is called, it must first check to see if it | | * When the service routine is called, it must first check to see if it | |
| * knows about the procedure; if not, it should call svcerr_noproc | | * knows about the procedure; if not, it should call svcerr_noproc | |
| * and return. If so, it should deserialize its arguments via | | * and return. If so, it should deserialize its arguments via | |
| * SVC_GETARGS (defined above). If the deserialization does not work, | | * SVC_GETARGS (defined above). If the deserialization does not work, | |
| * svcerr_decode should be called followed by a return. Successful | | * svcerr_decode should be called followed by a return. Successful | |
| * decoding of the arguments should be followed the execution of the | | * decoding of the arguments should be followed the execution of the | |
| * procedure's code and a call to svc_sendreply. | | * procedure's code and a call to svc_sendreply. | |
| * | | * | |
| | | | |
| skipping to change at line 267 | | skipping to change at line 282 | |
| * svc_sendreply even if the function logically returns void; use | | * svc_sendreply even if the function logically returns void; use | |
| * xdr.h - xdr_void for the xdr routine. HOWEVER, tcp based rpc allows | | * xdr.h - xdr_void for the xdr routine. HOWEVER, tcp based rpc allows | |
| * for the abuse of pure rpc via batched calling or pipelining. In the | | * for the abuse of pure rpc via batched calling or pipelining. In the | |
| * case of a batched call, svc_sendreply should NOT be called since | | * case of a batched call, svc_sendreply should NOT be called since | |
| * this would send a return message, which is what batching tries to avoid. | | * this would send a return message, which is what batching tries to avoid. | |
| * It is the service/protocol writer's responsibility to know which calls a
re | | * It is the service/protocol writer's responsibility to know which calls a
re | |
| * batched and which are not. Warning: responding to batch calls may | | * batched and which are not. Warning: responding to batch calls may | |
| * deadlock the caller and server processes! | | * deadlock the caller and server processes! | |
| */ | | */ | |
| | | | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern bool_t svc_sendreply(SVCXPRT *, xdrproc_t, void *); | | extern bool_t svc_sendreply(SVCXPRT *, xdrproc_t, void *); | |
| extern void svcerr_decode(SVCXPRT *); | | extern void svcerr_decode(SVCXPRT *); | |
| extern void svcerr_weakauth(SVCXPRT *); | | extern void svcerr_weakauth(SVCXPRT *); | |
| extern void svcerr_noproc(SVCXPRT *); | | extern void svcerr_noproc(SVCXPRT *); | |
| extern void svcerr_progvers(SVCXPRT *, rpcvers_t, rpcvers_t); | | extern void svcerr_progvers(SVCXPRT *, rpcvers_t, rpcvers_t); | |
| extern void svcerr_auth(SVCXPRT *, enum auth_stat); | | extern void svcerr_auth(SVCXPRT *, enum auth_stat); | |
| extern void svcerr_noprog(SVCXPRT *); | | extern void svcerr_noprog(SVCXPRT *); | |
| extern void svcerr_systemerr(SVCXPRT *); | | extern void svcerr_systemerr(SVCXPRT *); | |
| extern int rpc_reg(rpcprog_t, rpcvers_t, rpcproc_t, | | extern int rpc_reg(rpcprog_t, rpcvers_t, rpcproc_t, | |
| char *(*)(char *), xdrproc_t, xdrproc_t, | | char *(*)(char *), xdrproc_t, xdrproc_t, | |
| char *); | | char *); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Lowest level dispatching -OR- who owns this process anyway. | | * Lowest level dispatching -OR- who owns this process anyway. | |
| * Somebody has to wait for incoming requests and then call the correct | | * Somebody has to wait for incoming requests and then call the correct | |
| * service routine. The routine svc_run does infinite waiting; i.e., | | * service routine. The routine svc_run does infinite waiting; i.e., | |
| * svc_run never returns. | | * svc_run never returns. | |
| * Since another (co-existant) package may wish to selectively wait for | | * Since another (co-existant) package may wish to selectively wait for | |
| * incoming calls or other events outside of the rpc architecture, the | | * incoming calls or other events outside of the rpc architecture, the | |
| * routine svc_getreq is provided. It must be passed readfds, the | | * routine svc_getreq is provided. It must be passed readfds, the | |
| * "in-place" results of a select system call (see select, section 2). | | * "in-place" results of a select system call (see select, section 2). | |
| | | | |
| skipping to change at line 308 | | skipping to change at line 327 | |
| extern fd_set svc_fdset; | | extern fd_set svc_fdset; | |
| #define svc_fds svc_fdset.fds_bits[0] /* compatibility */ | | #define svc_fds svc_fdset.fds_bits[0] /* compatibility */ | |
| #else | | #else | |
| extern int svc_fds; | | extern int svc_fds; | |
| #endif /* def FD_SETSIZE */ | | #endif /* def FD_SETSIZE */ | |
| | | | |
| /* | | /* | |
| * a small program implemented by the svc_rpc implementation itself; | | * a small program implemented by the svc_rpc implementation itself; | |
| * also see clnt.h for protocol numbers. | | * also see clnt.h for protocol numbers. | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern void rpctest_service(void); | | extern void rpctest_service(void); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| __BEGIN_DECLS | | #endif | |
| | | | |
| | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern void svc_getreq(int); | | extern void svc_getreq(int); | |
| extern void svc_getreqset(fd_set *); | | extern void svc_getreqset(fd_set *); | |
| extern void svc_getreq_common(int); | | extern void svc_getreq_common(int); | |
| struct pollfd; | | struct pollfd; | |
| extern void svc_getreq_poll(struct pollfd *, int); | | extern void svc_getreq_poll(struct pollfd *, int); | |
| | | | |
| extern void svc_run(void); | | extern void svc_run(void); | |
| extern void svc_exit(void); | | extern void svc_exit(void); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Socket to use on svcxxx_create call to get default socket | | * Socket to use on svcxxx_create call to get default socket | |
| */ | | */ | |
| #define RPC_ANYSOCK -1 | | #define RPC_ANYSOCK -1 | |
| #define RPC_ANYFD RPC_ANYSOCK | | #define RPC_ANYFD RPC_ANYSOCK | |
| | | | |
| /* | | /* | |
| * These are the existing service side transport implementations | | * These are the existing service side transport implementations | |
| */ | | */ | |
| | | | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| /* | | /* | |
| * Transport independent svc_create routine. | | * Transport independent svc_create routine. | |
| */ | | */ | |
| extern int svc_create(void (*)(struct svc_req *, SVCXPRT *), | | extern int svc_create(void (*)(struct svc_req *, SVCXPRT *), | |
| const rpcprog_t, const rpcvers_t, const char *); | | const rpcprog_t, const rpcvers_t, const char *); | |
| /* | | /* | |
| * void (*dispatch)(); -- dispatch routine | | * void (*dispatch)(); -- dispatch routine | |
| * const rpcprog_t prognum; -- program number | | * const rpcprog_t prognum; -- program number | |
| * const rpcvers_t versnum; -- version number | | * const rpcvers_t versnum; -- version number | |
| * const char *nettype; -- network type | | * const char *nettype; -- network type | |
| | | | |
| skipping to change at line 426 | | skipping to change at line 455 | |
| */ | | */ | |
| extern SVCXPRT *svc_raw_create(void); | | extern SVCXPRT *svc_raw_create(void); | |
| | | | |
| /* | | /* | |
| * svc_dg_enable_cache() enables the cache on dg transports. | | * svc_dg_enable_cache() enables the cache on dg transports. | |
| */ | | */ | |
| int svc_dg_enablecache(SVCXPRT *, const u_int); | | int svc_dg_enablecache(SVCXPRT *, const u_int); | |
| | | | |
| int __rpc_get_local_uid(SVCXPRT *_transp, uid_t *_uid); | | int __rpc_get_local_uid(SVCXPRT *_transp, uid_t *_uid); | |
| | | | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* for backward compatibility */ | | /* for backward compatibility */ | |
| #include <rpc/svc_soc.h> | | #include <rpc/svc_soc.h> | |
| | | | |
| #endif /* !_TIRPC_SVC_H */ | | #endif /* !_TIRPC_SVC_H */ | |
| | | | |
End of changes. 16 change blocks. |
| 18 lines changed or deleted | | 49 lines changed or added | |
|
| svc_auth.h | | svc_auth.h | |
| | | | |
| skipping to change at line 44 | | skipping to change at line 44 | |
| | | | |
| /* | | /* | |
| * svc_auth.h, Service side of rpc authentication. | | * svc_auth.h, Service side of rpc authentication. | |
| * | | * | |
| * Copyright (C) 1984, Sun Microsystems, Inc. | | * Copyright (C) 1984, Sun Microsystems, Inc. | |
| */ | | */ | |
| | | | |
| #ifndef _RPC_SVC_AUTH_H | | #ifndef _RPC_SVC_AUTH_H | |
| #define _RPC_SVC_AUTH_H | | #define _RPC_SVC_AUTH_H | |
| | | | |
|
| | | #include <rpc/rpcsec_gss.h> | |
| | | | |
| | | typedef struct { | |
| | | bool_t established; | |
| | | rpc_gss_service_t service; | |
| | | u_int qop_rcvd; | |
| | | void *context; | |
| | | u_int seq_num; | |
| | | } svc_rpc_gss_parms_t; | |
| | | | |
| /* | | /* | |
| * Interface to server-side authentication flavors. | | * Interface to server-side authentication flavors. | |
| */ | | */ | |
| typedef struct SVCAUTH { | | typedef struct SVCAUTH { | |
| struct svc_auth_ops { | | struct svc_auth_ops { | |
| int (*svc_ah_wrap)(struct SVCAUTH *, XDR *, xdrproc_t, | | int (*svc_ah_wrap)(struct SVCAUTH *, XDR *, xdrproc_t, | |
| caddr_t); | | caddr_t); | |
| int (*svc_ah_unwrap)(struct SVCAUTH *, XDR *, xdrproc_t, | | int (*svc_ah_unwrap)(struct SVCAUTH *, XDR *, xdrproc_t, | |
| caddr_t); | | caddr_t); | |
| int (*svc_ah_destroy)(struct SVCAUTH *); | | int (*svc_ah_destroy)(struct SVCAUTH *); | |
| } *svc_ah_ops; | | } *svc_ah_ops; | |
| caddr_t svc_ah_private; | | caddr_t svc_ah_private; | |
|
| | | svc_rpc_gss_parms_t svc_gss_params; | |
| | | rpc_gss_rawcred_t raw_cred; | |
| } SVCAUTH; | | } SVCAUTH; | |
| | | | |
| #define SVCAUTH_WRAP(auth, xdrs, xfunc, xwhere) \ | | #define SVCAUTH_WRAP(auth, xdrs, xfunc, xwhere) \ | |
| ((*((auth)->svc_ah_ops->svc_ah_wrap))(auth, xdrs, xfunc, xwhere)) | | ((*((auth)->svc_ah_ops->svc_ah_wrap))(auth, xdrs, xfunc, xwhere)) | |
| #define SVCAUTH_UNWRAP(auth, xdrs, xfunc, xwhere) \ | | #define SVCAUTH_UNWRAP(auth, xdrs, xfunc, xwhere) \ | |
| ((*((auth)->svc_ah_ops->svc_ah_unwrap))(auth, xdrs, xfunc, xwhere)) | | ((*((auth)->svc_ah_ops->svc_ah_unwrap))(auth, xdrs, xfunc, xwhere)) | |
| #define SVCAUTH_DESTROY(auth) \ | | #define SVCAUTH_DESTROY(auth) \ | |
| ((*((auth)->svc_ah_ops->svc_ah_destroy))(auth)) | | ((*((auth)->svc_ah_ops->svc_ah_destroy))(auth)) | |
| | | | |
| /* | | /* | |
| * Server side authenticator | | * Server side authenticator | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| | | extern enum auth_stat _gss_authenticate(struct svc_req *, struct rpc_msg *, | |
| | | bool_t *); | |
| extern enum auth_stat _authenticate(struct svc_req *, struct rpc_msg *); | | extern enum auth_stat _authenticate(struct svc_req *, struct rpc_msg *); | |
| extern int svc_auth_reg(int, enum auth_stat (*)(struct svc_req *, | | extern int svc_auth_reg(int, enum auth_stat (*)(struct svc_req *, | |
| struct rpc_msg *)); | | struct rpc_msg *)); | |
| | | | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| #endif /* !_RPC_SVC_AUTH_H */ | | #endif /* !_RPC_SVC_AUTH_H */ | |
| | | | |
End of changes. 4 change blocks. |
| 2 lines changed or deleted | | 20 lines changed or added | |
|
| svc_soc.h | | svc_soc.h | |
| | | | |
| skipping to change at line 41 | | skipping to change at line 41 | |
| /* | | /* | |
| * Copyright (c) 1986 - 1991 by Sun Microsystems, Inc. | | * Copyright (c) 1986 - 1991 by Sun Microsystems, Inc. | |
| */ | | */ | |
| | | | |
| /* | | /* | |
| * svc.h, Server-side remote procedure call interface. | | * svc.h, Server-side remote procedure call interface. | |
| */ | | */ | |
| | | | |
| #ifndef _RPC_SVC_SOC_H | | #ifndef _RPC_SVC_SOC_H | |
| #define _RPC_SVC_SOC_H | | #define _RPC_SVC_SOC_H | |
|
| #include <sys/cdefs.h> | | | |
| | | | |
| /* #pragma ident "@(#)svc_soc.h 1.11 94/04/25 SMI" */ | | /* #pragma ident "@(#)svc_soc.h 1.11 94/04/25 SMI" */ | |
| /* svc_soc.h 1.8 89/05/01 SMI */ | | /* svc_soc.h 1.8 89/05/01 SMI */ | |
| | | | |
| /* | | /* | |
| * All the following declarations are only for backward compatibility | | * All the following declarations are only for backward compatibility | |
| * with TS-RPC | | * with TS-RPC | |
| */ | | */ | |
| | | | |
| /* | | /* | |
| | | | |
| skipping to change at line 67 | | skipping to change at line 66 | |
| /* | | /* | |
| * Service registration | | * Service registration | |
| * | | * | |
| * svc_register(xprt, prog, vers, dispatch, protocol) | | * svc_register(xprt, prog, vers, dispatch, protocol) | |
| * SVCXPRT *xprt; | | * SVCXPRT *xprt; | |
| * u_long prog; | | * u_long prog; | |
| * u_long vers; | | * u_long vers; | |
| * void (*dispatch)(); | | * void (*dispatch)(); | |
| * int protocol; like TCP or UDP, zero means do not register | | * int protocol; like TCP or UDP, zero means do not register | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern bool_t svc_register(SVCXPRT *, u_long, u_long, | | extern bool_t svc_register(SVCXPRT *, u_long, u_long, | |
| void (*)(struct svc_req *, SVCXPRT *), int); | | void (*)(struct svc_req *, SVCXPRT *), int); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Service un-registration | | * Service un-registration | |
| * | | * | |
| * svc_unregister(prog, vers) | | * svc_unregister(prog, vers) | |
| * u_long prog; | | * u_long prog; | |
| * u_long vers; | | * u_long vers; | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern void svc_unregister(u_long, u_long); | | extern void svc_unregister(u_long, u_long); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Memory based rpc for testing and timing. | | * Memory based rpc for testing and timing. | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern SVCXPRT *svcraw_create(void); | | extern SVCXPRT *svcraw_create(void); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Udp based rpc. | | * Udp based rpc. | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern SVCXPRT *svcudp_create(int); | | extern SVCXPRT *svcudp_create(int); | |
| extern SVCXPRT *svcudp_bufcreate(int, u_int, u_int); | | extern SVCXPRT *svcudp_bufcreate(int, u_int, u_int); | |
| extern int svcudp_enablecache(SVCXPRT *, u_long); | | extern int svcudp_enablecache(SVCXPRT *, u_long); | |
| extern SVCXPRT *svcudp6_create(int); | | extern SVCXPRT *svcudp6_create(int); | |
| extern SVCXPRT *svcudp6_bufcreate(int, u_int, u_int); | | extern SVCXPRT *svcudp6_bufcreate(int, u_int, u_int); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Tcp based rpc. | | * Tcp based rpc. | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern SVCXPRT *svctcp_create(int, u_int, u_int); | | extern SVCXPRT *svctcp_create(int, u_int, u_int); | |
| extern SVCXPRT *svctcp6_create(int, u_int, u_int); | | extern SVCXPRT *svctcp6_create(int, u_int, u_int); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Fd based rpc. | | * Fd based rpc. | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern SVCXPRT *svcfd_create(int, u_int, u_int); | | extern SVCXPRT *svcfd_create(int, u_int, u_int); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| #endif /* !_RPC_SVC_SOC_H */ | | #endif /* !_RPC_SVC_SOC_H */ | |
| | | | |
End of changes. 13 change blocks. |
| 13 lines changed or deleted | | 36 lines changed or added | |
|
| xdr.h | | xdr.h | |
| | | | |
| skipping to change at line 43 | | skipping to change at line 43 | |
| */ | | */ | |
| | | | |
| /* | | /* | |
| * xdr.h, External Data Representation Serialization Routines. | | * xdr.h, External Data Representation Serialization Routines. | |
| * | | * | |
| * Copyright (C) 1984, Sun Microsystems, Inc. | | * Copyright (C) 1984, Sun Microsystems, Inc. | |
| */ | | */ | |
| | | | |
| #ifndef _TIRPC_XDR_H | | #ifndef _TIRPC_XDR_H | |
| #define _TIRPC_XDR_H | | #define _TIRPC_XDR_H | |
|
| #include <sys/cdefs.h> | | | |
| #include <stdio.h> | | #include <stdio.h> | |
| #include <netinet/in.h> | | #include <netinet/in.h> | |
| | | | |
| #include <rpc/types.h> | | #include <rpc/types.h> | |
| | | | |
| /* | | /* | |
| * XDR provides a conventional way for converting between C data | | * XDR provides a conventional way for converting between C data | |
| * types and an external bit-string representation. Library supplied | | * types and an external bit-string representation. Library supplied | |
| * routines provide for the conversion on built-in C data types. These | | * routines provide for the conversion on built-in C data types. These | |
| * routines and utility routines defined here are used to help implement | | * routines and utility routines defined here are used to help implement | |
| | | | |
| skipping to change at line 226 | | skipping to change at line 225 | |
| (*(xdrs)->x_ops->x_destroy)(xdrs) | | (*(xdrs)->x_ops->x_destroy)(xdrs) | |
| #define xdr_destroy(xdrs) \ | | #define xdr_destroy(xdrs) \ | |
| if ((xdrs)->x_ops->x_destroy) \ | | if ((xdrs)->x_ops->x_destroy) \ | |
| (*(xdrs)->x_ops->x_destroy)(xdrs) | | (*(xdrs)->x_ops->x_destroy)(xdrs) | |
| | | | |
| #define XDR_CONTROL(xdrs, req, op) \ | | #define XDR_CONTROL(xdrs, req, op) \ | |
| if ((xdrs)->x_ops->x_control) \ | | if ((xdrs)->x_ops->x_control) \ | |
| (*(xdrs)->x_ops->x_control)(xdrs, req, op) | | (*(xdrs)->x_ops->x_control)(xdrs, req, op) | |
| #define xdr_control(xdrs, req, op) XDR_CONTROL(xdrs, req, op) | | #define xdr_control(xdrs, req, op) XDR_CONTROL(xdrs, req, op) | |
| | | | |
|
| /* | | #define xdr_rpcvers(xdrs, versp) xdr_u_int32_t(xdrs, versp) | |
| * Solaris strips the '_t' from these types -- not sure why. | | #define xdr_rpcprog(xdrs, progp) xdr_u_int32_t(xdrs, progp) | |
| * But, let's be compatible. | | #define xdr_rpcproc(xdrs, procp) xdr_u_int32_t(xdrs, procp) | |
| */ | | #define xdr_rpcprot(xdrs, protp) xdr_u_int32_t(xdrs, protp) | |
| #define xdr_rpcvers(xdrs, versp) xdr_u_int32(xdrs, versp) | | #define xdr_rpcport(xdrs, portp) xdr_u_int32_t(xdrs, portp) | |
| #define xdr_rpcprog(xdrs, progp) xdr_u_int32(xdrs, progp) | | | |
| #define xdr_rpcproc(xdrs, procp) xdr_u_int32(xdrs, procp) | | | |
| #define xdr_rpcprot(xdrs, protp) xdr_u_int32(xdrs, protp) | | | |
| #define xdr_rpcport(xdrs, portp) xdr_u_int32(xdrs, portp) | | | |
| | | | |
| /* | | /* | |
| * Support struct for discriminated unions. | | * Support struct for discriminated unions. | |
| * You create an array of xdrdiscrim structures, terminated with | | * You create an array of xdrdiscrim structures, terminated with | |
| * an entry with a null procedure pointer. The xdr_union routine gets | | * an entry with a null procedure pointer. The xdr_union routine gets | |
| * the discriminant value and then searches the array of structures | | * the discriminant value and then searches the array of structures | |
| * for a matching value. If a match is found the associated xdr routine | | * for a matching value. If a match is found the associated xdr routine | |
| * is called to handle that part of the union. If there is | | * is called to handle that part of the union. If there is | |
| * no match, then a default routine may be called. | | * no match, then a default routine may be called. | |
| * If there is no match and no default routine it is an error. | | * If there is no match and no default routine it is an error. | |
| | | | |
| skipping to change at line 290 | | skipping to change at line 285 | |
| | | | |
| #define IXDR_PUT_BOOL(buf, v) IXDR_PUT_LONG((buf), (v)) | | #define IXDR_PUT_BOOL(buf, v) IXDR_PUT_LONG((buf), (v)) | |
| #define IXDR_PUT_ENUM(buf, v) IXDR_PUT_LONG((buf), (v)) | | #define IXDR_PUT_ENUM(buf, v) IXDR_PUT_LONG((buf), (v)) | |
| #define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG((buf), (v)) | | #define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG((buf), (v)) | |
| #define IXDR_PUT_SHORT(buf, v) IXDR_PUT_LONG((buf), (v)) | | #define IXDR_PUT_SHORT(buf, v) IXDR_PUT_LONG((buf), (v)) | |
| #define IXDR_PUT_U_SHORT(buf, v) IXDR_PUT_LONG((buf), (v)) | | #define IXDR_PUT_U_SHORT(buf, v) IXDR_PUT_LONG((buf), (v)) | |
| | | | |
| /* | | /* | |
| * These are the "generic" xdr routines. | | * These are the "generic" xdr routines. | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| extern bool_t xdr_void(void); | | extern bool_t xdr_void(void); | |
| extern bool_t xdr_int(XDR *, int *); | | extern bool_t xdr_int(XDR *, int *); | |
| extern bool_t xdr_u_int(XDR *, u_int *); | | extern bool_t xdr_u_int(XDR *, u_int *); | |
| extern bool_t xdr_long(XDR *, long *); | | extern bool_t xdr_long(XDR *, long *); | |
| extern bool_t xdr_u_long(XDR *, u_long *); | | extern bool_t xdr_u_long(XDR *, u_long *); | |
| extern bool_t xdr_short(XDR *, short *); | | extern bool_t xdr_short(XDR *, short *); | |
| extern bool_t xdr_u_short(XDR *, u_short *); | | extern bool_t xdr_u_short(XDR *, u_short *); | |
| extern bool_t xdr_int8_t(XDR *, int8_t *); | | extern bool_t xdr_int8_t(XDR *, int8_t *); | |
| extern bool_t xdr_u_int8_t(XDR *, uint8_t *); | | extern bool_t xdr_u_int8_t(XDR *, uint8_t *); | |
| extern bool_t xdr_uint8_t(XDR *, uint8_t *); | | extern bool_t xdr_uint8_t(XDR *, uint8_t *); | |
| | | | |
| skipping to change at line 333 | | skipping to change at line 330 | |
| extern bool_t xdr_double(XDR *, double *); | | extern bool_t xdr_double(XDR *, double *); | |
| extern bool_t xdr_quadruple(XDR *, long double *); | | extern bool_t xdr_quadruple(XDR *, long double *); | |
| extern bool_t xdr_reference(XDR *, char **, u_int, xdrproc_t); | | extern bool_t xdr_reference(XDR *, char **, u_int, xdrproc_t); | |
| extern bool_t xdr_pointer(XDR *, char **, u_int, xdrproc_t); | | extern bool_t xdr_pointer(XDR *, char **, u_int, xdrproc_t); | |
| extern bool_t xdr_wrapstring(XDR *, char **); | | extern bool_t xdr_wrapstring(XDR *, char **); | |
| extern void xdr_free(xdrproc_t, void *); | | extern void xdr_free(xdrproc_t, void *); | |
| extern bool_t xdr_hyper(XDR *, quad_t *); | | extern bool_t xdr_hyper(XDR *, quad_t *); | |
| extern bool_t xdr_u_hyper(XDR *, u_quad_t *); | | extern bool_t xdr_u_hyper(XDR *, u_quad_t *); | |
| extern bool_t xdr_longlong_t(XDR *, quad_t *); | | extern bool_t xdr_longlong_t(XDR *, quad_t *); | |
| extern bool_t xdr_u_longlong_t(XDR *, u_quad_t *); | | extern bool_t xdr_u_longlong_t(XDR *, u_quad_t *); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| /* | | /* | |
| * Common opaque bytes objects used by many rpc protocols; | | * Common opaque bytes objects used by many rpc protocols; | |
| * declared here due to commonality. | | * declared here due to commonality. | |
| */ | | */ | |
| #define MAX_NETOBJ_SZ 1024 | | #define MAX_NETOBJ_SZ 1024 | |
| struct netobj { | | struct netobj { | |
| u_int n_len; | | u_int n_len; | |
| char *n_bytes; | | char *n_bytes; | |
| }; | | }; | |
| typedef struct netobj netobj; | | typedef struct netobj netobj; | |
| extern bool_t xdr_netobj(XDR *, struct netobj *); | | extern bool_t xdr_netobj(XDR *, struct netobj *); | |
| | | | |
| /* | | /* | |
| * These are the public routines for the various implementations of | | * These are the public routines for the various implementations of | |
| * xdr streams. | | * xdr streams. | |
| */ | | */ | |
|
| __BEGIN_DECLS | | #ifdef __cplusplus | |
| | | extern "C" { | |
| | | #endif | |
| /* XDR using memory buffers */ | | /* XDR using memory buffers */ | |
| extern void xdrmem_create(XDR *, char *, u_int, enum xdr_op); | | extern void xdrmem_create(XDR *, char *, u_int, enum xdr_op); | |
| | | | |
| /* XDR using stdio library */ | | /* XDR using stdio library */ | |
| extern void xdrstdio_create(XDR *, FILE *, enum xdr_op); | | extern void xdrstdio_create(XDR *, FILE *, enum xdr_op); | |
| | | | |
| /* XDR pseudo records for tcp */ | | /* XDR pseudo records for tcp */ | |
| extern void xdrrec_create(XDR *, u_int, u_int, void *, | | extern void xdrrec_create(XDR *, u_int, u_int, void *, | |
| int (*)(void *, void *, int), | | int (*)(void *, void *, int), | |
| int (*)(void *, void *, int)); | | int (*)(void *, void *, int)); | |
| | | | |
| /* make end of xdr record */ | | /* make end of xdr record */ | |
| extern bool_t xdrrec_endofrecord(XDR *, int); | | extern bool_t xdrrec_endofrecord(XDR *, int); | |
| | | | |
| /* move to beginning of next record */ | | /* move to beginning of next record */ | |
| extern bool_t xdrrec_skiprecord(XDR *); | | extern bool_t xdrrec_skiprecord(XDR *); | |
| | | | |
| /* true if no more input */ | | /* true if no more input */ | |
| extern bool_t xdrrec_eof(XDR *); | | extern bool_t xdrrec_eof(XDR *); | |
| extern u_int xdrrec_readbytes(XDR *, caddr_t, u_int); | | extern u_int xdrrec_readbytes(XDR *, caddr_t, u_int); | |
|
| __END_DECLS | | #ifdef __cplusplus | |
| | | } | |
| | | #endif | |
| | | | |
| #endif /* !_TIRPC_XDR_H */ | | #endif /* !_TIRPC_XDR_H */ | |
| | | | |
End of changes. 6 change blocks. |
| 14 lines changed or deleted | | 17 lines changed or added | |
|