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 | |||
auth_unix.h | auth_unix.h | |||
---|---|---|---|---|
skipping to change at line 48 | skipping to change at line 48 | |||
/* | /* | |||
* The system is very weak. The client uses no encryption for it | * The system is very weak. The client uses no encryption for it | |||
* credentials and only sends null verifiers. The server sends backs | * credentials and only sends null verifiers. The server sends backs | |||
* null verifiers or optionally a verifier that suggests a new short hand | * null verifiers or optionally a verifier that suggests a new short hand | |||
* for the credentials. | * for the credentials. | |||
*/ | */ | |||
#ifndef _TIRPC_AUTH_UNIX_H | #ifndef _TIRPC_AUTH_UNIX_H | |||
#define _TIRPC_AUTH_UNIX_H | #define _TIRPC_AUTH_UNIX_H | |||
#include <sys/cdefs.h> | ||||
/* The machine name is part of a credential; it may not exceed 255 bytes */ | /* The machine name is part of a credential; it may not exceed 255 bytes */ | |||
#define MAX_MACHINE_NAME 255 | #define MAX_MACHINE_NAME 255 | |||
/* gids compose part of a credential; there may not be more than 16 of them */ | /* gids compose part of a credential; there may not be more than 16 of them */ | |||
#define NGRPS 16 | #define NGRPS 16 | |||
/* | /* | |||
* Unix style credentials. | * Unix style credentials. | |||
*/ | */ | |||
skipping to change at line 70 | skipping to change at line 69 | |||
u_long aup_time; | u_long aup_time; | |||
char *aup_machname; | char *aup_machname; | |||
uid_t aup_uid; | uid_t aup_uid; | |||
gid_t aup_gid; | gid_t aup_gid; | |||
u_int aup_len; | u_int aup_len; | |||
gid_t *aup_gids; | gid_t *aup_gids; | |||
}; | }; | |||
#define authsys_parms authunix_parms | #define authsys_parms authunix_parms | |||
__BEGIN_DECLS | #ifdef __cplusplus | |||
extern "C" { | ||||
#endif | ||||
extern bool_t xdr_authunix_parms(XDR *, struct authunix_parms *); | extern bool_t xdr_authunix_parms(XDR *, struct authunix_parms *); | |||
__END_DECLS | #ifdef __cplusplus | |||
} | ||||
#endif | ||||
/* | /* | |||
* If a response verifier has flavor AUTH_SHORT, | * If a response verifier has flavor AUTH_SHORT, | |||
* then the body of the response verifier encapsulates the following struct ure; | * then the body of the response verifier encapsulates the following struct ure; | |||
* again it is serialized in the obvious fashion. | * again it is serialized in the obvious fashion. | |||
*/ | */ | |||
struct short_hand_verf { | struct short_hand_verf { | |||
struct opaque_auth new_cred; | struct opaque_auth new_cred; | |||
}; | }; | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 6 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 | |||
netconfig.h | netconfig.h | |||
---|---|---|---|---|
#ifndef _NETCONFIG_H_ | #ifndef _NETCONFIG_H_ | |||
#define _NETCONFIG_H_ | #define _NETCONFIG_H_ | |||
#ifdef HAVE_FEATURES_H | ||||
#include <features.h> | #include <features.h> | |||
#endif | ||||
#define NETCONFIG "/etc/netconfig" | #define NETCONFIG "/etc/netconfig" | |||
#define NETPATH "NETPATH" | #define NETPATH "NETPATH" | |||
struct netconfig { | struct netconfig { | |||
char *nc_netid; /* Network ID */ | char *nc_netid; /* Network ID */ | |||
unsigned long nc_semantics; /* Semantics (see below) */ | unsigned long nc_semantics; /* Semantics (see below) */ | |||
unsigned long nc_flag; /* Flags (see below) */ | unsigned long nc_flag; /* Flags (see below) */ | |||
char *nc_protofmly; /* Protocol family */ | char *nc_protofmly; /* Protocol family */ | |||
char *nc_proto; /* Protocol name */ | char *nc_proto; /* Protocol name */ | |||
skipping to change at line 77 | skipping to change at line 79 | |||
#define NC_GOSIP "gosip" | #define NC_GOSIP "gosip" | |||
/* | /* | |||
* nc_proto values | * nc_proto values | |||
*/ | */ | |||
#define NC_NOPROTO "-" | #define NC_NOPROTO "-" | |||
#define NC_TCP "tcp" | #define NC_TCP "tcp" | |||
#define NC_UDP "udp" | #define NC_UDP "udp" | |||
#define NC_ICMP "icmp" | #define NC_ICMP "icmp" | |||
__BEGIN_DECLS | #ifdef __cplusplus | |||
extern "C" { | ||||
#endif | ||||
extern void *setnetconfig (void); | extern void *setnetconfig (void); | |||
extern struct netconfig *getnetconfig (void *); | extern struct netconfig *getnetconfig (void *); | |||
extern struct netconfig *getnetconfigent (const char *); | extern struct netconfig *getnetconfigent (const char *); | |||
extern void freenetconfigent (struct netconfig *); | extern void freenetconfigent (struct netconfig *); | |||
extern int endnetconfig (void *); | extern int endnetconfig (void *); | |||
extern void *setnetpath (void); | extern void *setnetpath (void); | |||
extern struct netconfig *getnetpath (void *); | extern struct netconfig *getnetpath (void *); | |||
extern int endnetpath (void *); | extern int endnetpath (void *); | |||
extern void nc_perror (const char *); | extern void nc_perror (const char *); | |||
extern char *nc_sperror (void); | extern char *nc_sperror (void); | |||
__END_DECLS | #ifdef __cplusplus | |||
} | ||||
#endif | ||||
#endif /* _NETCONFIG_H_ */ | #endif /* _NETCONFIG_H_ */ | |||
End of changes. 4 change blocks. | ||||
2 lines changed or deleted | 8 lines changed or added | |||
nettype.h | nettype.h | |||
---|---|---|---|---|
skipping to change at line 56 | skipping to change at line 56 | |||
#define _RPC_NONE 0 | #define _RPC_NONE 0 | |||
#define _RPC_NETPATH 1 | #define _RPC_NETPATH 1 | |||
#define _RPC_VISIBLE 2 | #define _RPC_VISIBLE 2 | |||
#define _RPC_CIRCUIT_V 3 | #define _RPC_CIRCUIT_V 3 | |||
#define _RPC_DATAGRAM_V 4 | #define _RPC_DATAGRAM_V 4 | |||
#define _RPC_CIRCUIT_N 5 | #define _RPC_CIRCUIT_N 5 | |||
#define _RPC_DATAGRAM_N 6 | #define _RPC_DATAGRAM_N 6 | |||
#define _RPC_TCP 7 | #define _RPC_TCP 7 | |||
#define _RPC_UDP 8 | #define _RPC_UDP 8 | |||
__BEGIN_DECLS | #ifdef __cplusplus | |||
extern "C" { | ||||
#endif | ||||
extern void *__rpc_setconf(const char *); | extern void *__rpc_setconf(const char *); | |||
extern void __rpc_endconf(void *); | extern void __rpc_endconf(void *); | |||
extern struct netconfig *__rpc_getconf(void *); | extern struct netconfig *__rpc_getconf(void *); | |||
extern struct netconfig *__rpc_getconfip(const char *); | extern struct netconfig *__rpc_getconfip(const char *); | |||
__END_DECLS | #ifdef __cplusplus | |||
} | ||||
#endif | ||||
#endif /* !_TIRPC_NETTYPE_H */ | #endif /* !_TIRPC_NETTYPE_H */ | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 6 lines changed or added | |||
pmap_clnt.h | pmap_clnt.h | |||
---|---|---|---|---|
skipping to change at line 66 | skipping to change at line 66 | |||
* done = eachresult(resp, raddr) | * done = eachresult(resp, raddr) | |||
* bool_t done; | * bool_t done; | |||
* caddr_t resp; | * caddr_t resp; | |||
* struct sockaddr_in raddr; | * struct sockaddr_in raddr; | |||
* where resp points to the results of the call and raddr is th e | * where resp points to the results of the call and raddr is th e | |||
* address if the responder to the broadcast. | * address if the responder to the broadcast. | |||
*/ | */ | |||
#ifndef _RPC_PMAP_CLNT_H_ | #ifndef _RPC_PMAP_CLNT_H_ | |||
#define _RPC_PMAP_CLNT_H_ | #define _RPC_PMAP_CLNT_H_ | |||
#include <sys/cdefs.h> | ||||
__BEGIN_DECLS | #ifdef __cplusplus | |||
extern "C" { | ||||
#endif | ||||
extern bool_t pmap_set(u_long, u_long, int, int); | extern bool_t pmap_set(u_long, u_long, int, int); | |||
extern bool_t pmap_unset(u_long, u_long); | extern bool_t pmap_unset(u_long, u_long); | |||
extern struct pmaplist *pmap_getmaps(struct sockaddr_in *); | extern struct pmaplist *pmap_getmaps(struct sockaddr_in *); | |||
extern enum clnt_stat pmap_rmtcall(struct sockaddr_in *, | extern enum clnt_stat pmap_rmtcall(struct sockaddr_in *, | |||
u_long, u_long, u_long, | u_long, u_long, u_long, | |||
xdrproc_t, caddr_t, | xdrproc_t, caddr_t, | |||
xdrproc_t, caddr_t, | xdrproc_t, caddr_t, | |||
struct timeval, u_long *); | struct timeval, u_long *); | |||
extern enum clnt_stat clnt_broadcast(u_long, u_long, u_long, | extern enum clnt_stat clnt_broadcast(u_long, u_long, u_long, | |||
xdrproc_t, void *, | xdrproc_t, void *, | |||
xdrproc_t, void *, | xdrproc_t, void *, | |||
resultproc_t); | resultproc_t); | |||
extern u_short pmap_getport(struct sockaddr_in *, | extern u_short pmap_getport(struct sockaddr_in *, | |||
u_long, u_long, u_int); | u_long, u_long, u_int); | |||
__END_DECLS | #ifdef __cplusplus | |||
} | ||||
#endif | ||||
#endif /* !_RPC_PMAP_CLNT_H_ */ | #endif /* !_RPC_PMAP_CLNT_H_ */ | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 6 lines changed or added | |||
pmap_prot.h | pmap_prot.h | |||
---|---|---|---|---|
skipping to change at line 74 | skipping to change at line 74 | |||
* this procedure is quite; ie it does not return error information!!! | * this procedure is quite; ie it does not return error information!!! | |||
* This procedure only is supported on rpc/udp and calls via | * This procedure only is supported on rpc/udp and calls via | |||
* rpc/udp. This routine only passes null authentication parameters. | * rpc/udp. This routine only passes null authentication parameters. | |||
* This file has no interface to xdr routines for PMAPPROC_CALLIT. | * This file has no interface to xdr routines for PMAPPROC_CALLIT. | |||
* | * | |||
* The service supports remote procedure calls on udp/ip or tcp/ip socket 1 11. | * The service supports remote procedure calls on udp/ip or tcp/ip socket 1 11. | |||
*/ | */ | |||
#ifndef _RPC_PMAP_PROT_H | #ifndef _RPC_PMAP_PROT_H | |||
#define _RPC_PMAP_PROT_H | #define _RPC_PMAP_PROT_H | |||
#include <sys/cdefs.h> | ||||
#define PMAPPORT ((u_short)111) | #define PMAPPORT ((u_short)111) | |||
#define PMAPPROG ((u_long)100000) | #define PMAPPROG ((u_long)100000) | |||
#define PMAPVERS ((u_long)2) | #define PMAPVERS ((u_long)2) | |||
#define PMAPVERS_PROTO ((u_long)2) | #define PMAPVERS_PROTO ((u_long)2) | |||
#define PMAPVERS_ORIG ((u_long)1) | #define PMAPVERS_ORIG ((u_long)1) | |||
#define PMAPPROC_NULL ((u_long)0) | #define PMAPPROC_NULL ((u_long)0) | |||
#define PMAPPROC_SET ((u_long)1) | #define PMAPPROC_SET ((u_long)1) | |||
#define PMAPPROC_UNSET ((u_long)2) | #define PMAPPROC_UNSET ((u_long)2) | |||
#define PMAPPROC_GETPORT ((u_long)3) | #define PMAPPROC_GETPORT ((u_long)3) | |||
skipping to change at line 100 | skipping to change at line 99 | |||
long unsigned pm_vers; | long unsigned pm_vers; | |||
long unsigned pm_prot; | long unsigned pm_prot; | |||
long unsigned pm_port; | long unsigned pm_port; | |||
}; | }; | |||
struct pmaplist { | struct pmaplist { | |||
struct pmap pml_map; | struct pmap pml_map; | |||
struct pmaplist *pml_next; | struct pmaplist *pml_next; | |||
}; | }; | |||
__BEGIN_DECLS | #ifdef __cplusplus | |||
extern "C" { | ||||
#endif | ||||
extern bool_t xdr_pmap(XDR *, struct pmap *); | extern bool_t xdr_pmap(XDR *, struct pmap *); | |||
extern bool_t xdr_pmaplist(XDR *, struct pmaplist **); | extern bool_t xdr_pmaplist(XDR *, struct pmaplist **); | |||
extern bool_t xdr_pmaplist_ptr(XDR *, struct pmaplist *); | extern bool_t xdr_pmaplist_ptr(XDR *, struct pmaplist *); | |||
__END_DECLS | #ifdef __cplusplus | |||
} | ||||
#endif | ||||
#endif /* !_RPC_PMAP_PROT_H */ | #endif /* !_RPC_PMAP_PROT_H */ | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 6 lines changed or added | |||
pmap_rmt.h | pmap_rmt.h | |||
---|---|---|---|---|
skipping to change at line 44 | skipping to change at line 44 | |||
/* | /* | |||
* Structures and XDR routines for parameters to and replies from | * Structures and XDR routines for parameters to and replies from | |||
* the portmapper remote-call-service. | * the portmapper remote-call-service. | |||
* | * | |||
* Copyright (C) 1986, Sun Microsystems, Inc. | * Copyright (C) 1986, Sun Microsystems, Inc. | |||
*/ | */ | |||
#ifndef _RPC_PMAP_RMT_H | #ifndef _RPC_PMAP_RMT_H | |||
#define _RPC_PMAP_RMT_H | #define _RPC_PMAP_RMT_H | |||
#include <sys/cdefs.h> | ||||
struct rmtcallargs { | struct rmtcallargs { | |||
u_long prog, vers, proc, arglen; | u_long prog, vers, proc, arglen; | |||
caddr_t args_ptr; | caddr_t args_ptr; | |||
xdrproc_t xdr_args; | xdrproc_t xdr_args; | |||
}; | }; | |||
struct rmtcallres { | struct rmtcallres { | |||
u_long *port_ptr; | u_long *port_ptr; | |||
u_long resultslen; | u_long resultslen; | |||
caddr_t results_ptr; | caddr_t results_ptr; | |||
xdrproc_t xdr_results; | xdrproc_t xdr_results; | |||
}; | }; | |||
__BEGIN_DECLS | #ifdef __cplusplus | |||
extern "C" { | ||||
#endif | ||||
extern bool_t xdr_rmtcall_args(XDR *, struct rmtcallargs *); | extern bool_t xdr_rmtcall_args(XDR *, struct rmtcallargs *); | |||
extern bool_t xdr_rmtcallres(XDR *, struct rmtcallres *); | extern bool_t xdr_rmtcallres(XDR *, struct rmtcallres *); | |||
__END_DECLS | #ifdef __cplusplus | |||
} | ||||
#endif | ||||
#endif /* !_RPC_PMAP_RMT_H */ | #endif /* !_RPC_PMAP_RMT_H */ | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 6 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 | |||
rpc_msg.h | rpc_msg.h | |||
---|---|---|---|---|
skipping to change at line 164 | skipping to change at line 164 | |||
union { | union { | |||
struct call_body RM_cmb; | struct call_body RM_cmb; | |||
struct reply_body RM_rmb; | struct reply_body RM_rmb; | |||
} ru; | } ru; | |||
#define rm_call ru.RM_cmb | #define rm_call ru.RM_cmb | |||
#define rm_reply ru.RM_rmb | #define rm_reply ru.RM_rmb | |||
}; | }; | |||
#define acpted_rply ru.RM_rmb.ru.RP_ar | #define acpted_rply ru.RM_rmb.ru.RP_ar | |||
#define rjcted_rply ru.RM_rmb.ru.RP_dr | #define rjcted_rply ru.RM_rmb.ru.RP_dr | |||
__BEGIN_DECLS | #ifdef __cplusplus | |||
extern "C" { | ||||
#endif | ||||
/* | /* | |||
* XDR routine to handle a rpc message. | * XDR routine to handle a rpc message. | |||
* xdr_callmsg(xdrs, cmsg) | * xdr_callmsg(xdrs, cmsg) | |||
* XDR *xdrs; | * XDR *xdrs; | |||
* struct rpc_msg *cmsg; | * struct rpc_msg *cmsg; | |||
*/ | */ | |||
extern bool_t xdr_callmsg(XDR *, struct rpc_msg *); | extern bool_t xdr_callmsg(XDR *, struct rpc_msg *); | |||
/* | /* | |||
* XDR routine to pre-serialize the static part of a rpc message. | * XDR routine to pre-serialize the static part of a rpc message. | |||
skipping to change at line 212 | skipping to change at line 214 | |||
*/ | */ | |||
extern bool_t xdr_rejected_reply(XDR *, struct rejected_reply *); | extern bool_t xdr_rejected_reply(XDR *, struct rejected_reply *); | |||
/* | /* | |||
* Fills in the error part of a reply message. | * Fills in the error part of a reply message. | |||
* _seterr_reply(msg, error) | * _seterr_reply(msg, error) | |||
* struct rpc_msg *msg; | * struct rpc_msg *msg; | |||
* struct rpc_err *error; | * struct rpc_err *error; | |||
*/ | */ | |||
extern void _seterr_reply(struct rpc_msg *, struct rpc_err *); | extern void _seterr_reply(struct rpc_msg *, struct rpc_err *); | |||
__END_DECLS | #ifdef __cplusplus | |||
} | ||||
#endif | ||||
#endif /* !_TIRPC_RPC_MSG_H */ | #endif /* !_TIRPC_RPC_MSG_H */ | |||
End of changes. 2 change blocks. | ||||
2 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 | |||
rpcent.h | rpcent.h | |||
---|---|---|---|---|
skipping to change at line 47 | skipping to change at line 47 | |||
* For converting rpc program numbers to names etc. | * For converting rpc program numbers to names etc. | |||
* | * | |||
*/ | */ | |||
#ifndef _RPC_RPCENT_H | #ifndef _RPC_RPCENT_H | |||
#define _RPC_RPCENT_H | #define _RPC_RPCENT_H | |||
/* #pragma ident "@(#)rpcent.h 1.13 94/04/25 SMI" */ | /* #pragma ident "@(#)rpcent.h 1.13 94/04/25 SMI" */ | |||
/* @(#)rpcent.h 1.1 88/12/06 SMI */ | /* @(#)rpcent.h 1.1 88/12/06 SMI */ | |||
__BEGIN_DECLS | #ifdef __cplusplus | |||
extern "C" { | ||||
#endif | ||||
/* These are defined in /usr/include/rpc/netdb.h */ | /* These are defined in /usr/include/rpc/netdb.h */ | |||
#if 0 | #if !defined(__GLIBC__) | |||
struct rpcent { | struct rpcent { | |||
char *r_name; /* name of server for this rpc program */ | char *r_name; /* name of server for this rpc program */ | |||
char **r_aliases; /* alias list */ | char **r_aliases; /* alias list */ | |||
int r_number; /* rpc program number */ | int r_number; /* rpc program number */ | |||
}; | }; | |||
/* Old interfaces that return a pointer to a static area; MT-unsafe */ | /* Old interfaces that return a pointer to a static area; MT-unsafe */ | |||
extern struct rpcent *getrpcbyname(const char *); | extern struct rpcent *getrpcbyname(const char *); | |||
extern struct rpcent *getrpcbynumber(int); | extern struct rpcent *getrpcbynumber(int); | |||
extern struct rpcent *getrpcent(void); | extern struct rpcent *getrpcent(void); | |||
#endif | #endif | |||
extern void setrpcent(int) __THROW; | extern void setrpcent(int); | |||
extern void endrpcent(void) __THROW; | extern void endrpcent(void); | |||
__END_DECLS | #ifdef __cplusplus | |||
} | ||||
#endif | ||||
#endif /* !_RPC_CENT_H */ | #endif /* !_RPC_CENT_H */ | |||
End of changes. 3 change blocks. | ||||
5 lines changed or deleted | 9 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 | |||