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

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/