diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2017-03-20 18:10:36 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2017-03-20 18:10:36 +0100 |
commit | a1a8064169aeda79e3266a2db9cce25e361a86dc (patch) | |
tree | 526902649b5dfb9e1e9f6c632349df475a6bb597 /include | |
parent | 2d8ea0524b016d29cf28615449b22b96dd5067b2 (diff) |
remove RPC implementation
The included RPC implementation is ipv4 only.
Other C library projects have either deprecated the internal
RPC implementation (GNU C Library) or never implemented such
functionality (musl C Library). The latest rpcbind release (0.2.4)
checks for libtirpc and does not allow to be build with uClibc-ng
RPC without patching. The common use case for RPC nowadays is to
use rpcbind together with nfs-utils to provide NFS server or client
support to a system.
The included RPC implementation does create issues with duplicate
symbol failures when statically compiling with RPC enabled.
Diffstat (limited to 'include')
-rw-r--r-- | include/netdb.h | 5 | ||||
-rw-r--r-- | include/protocols/timed.h | 3 | ||||
-rw-r--r-- | include/rpc/auth.h | 225 | ||||
-rw-r--r-- | include/rpc/auth_des.h | 115 | ||||
-rw-r--r-- | include/rpc/auth_unix.h | 91 | ||||
-rw-r--r-- | include/rpc/clnt.h | 433 | ||||
-rw-r--r-- | include/rpc/des_crypt.h | 97 | ||||
-rw-r--r-- | include/rpc/key_prot.h | 346 | ||||
-rw-r--r-- | include/rpc/netdb.h | 79 | ||||
-rw-r--r-- | include/rpc/pmap_clnt.h | 101 | ||||
-rw-r--r-- | include/rpc/pmap_prot.h | 110 | ||||
-rw-r--r-- | include/rpc/pmap_rmt.h | 71 | ||||
-rw-r--r-- | include/rpc/rpc.h | 101 | ||||
-rw-r--r-- | include/rpc/rpc_des.h | 72 | ||||
-rw-r--r-- | include/rpc/rpc_msg.h | 226 | ||||
-rw-r--r-- | include/rpc/svc.h | 330 | ||||
-rw-r--r-- | include/rpc/svc_auth.h | 55 | ||||
-rw-r--r-- | include/rpc/types.h | 95 | ||||
-rw-r--r-- | include/rpc/xdr.h | 405 |
19 files changed, 0 insertions, 2960 deletions
diff --git a/include/netdb.h b/include/netdb.h index 95abe95cb..a85797956 100644 --- a/include/netdb.h +++ b/include/netdb.h @@ -26,11 +26,6 @@ #include <netinet/in.h> #include <stdint.h> -#if defined __USE_MISC && defined __UCLIBC_HAS_RPC__ -/* This is necessary to make this include file properly replace the - Sun version. */ -# include <rpc/netdb.h> -#endif #ifdef __USE_GNU # define __need_sigevent_t diff --git a/include/protocols/timed.h b/include/protocols/timed.h index f50061cc1..06c2daec6 100644 --- a/include/protocols/timed.h +++ b/include/protocols/timed.h @@ -33,9 +33,6 @@ #define _PROTOCOLS_TIMED_H 1 #include <features.h> -#ifdef __UCLIBC_HAS_RPC__ -#include <rpc/types.h> -#endif /* * Time Synchronization Protocol diff --git a/include/rpc/auth.h b/include/rpc/auth.h deleted file mode 100644 index 70066fe52..000000000 --- a/include/rpc/auth.h +++ /dev/null @@ -1,225 +0,0 @@ -/* @(#)auth.h 2.3 88/08/07 4.0 RPCSRC; from 1.17 88/02/08 SMI */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * auth.h, Authentication interface. - * - * Copyright (C) 1984, Sun Microsystems, Inc. - * - * The data structures are completely opaque to the client. The client - * is required to pass a AUTH * to routines that create rpc - * "sessions". - */ - -#ifndef _RPC_AUTH_H - -#define _RPC_AUTH_H 1 -#include <features.h> -#include <rpc/xdr.h> - -__BEGIN_DECLS - -#define MAX_AUTH_BYTES 400 -#define MAXNETNAMELEN 255 /* maximum length of network user's name */ - -/* - * Status returned from authentication check - */ -enum auth_stat { - AUTH_OK=0, - /* - * failed at remote end - */ - AUTH_BADCRED=1, /* bogus credentials (seal broken) */ - AUTH_REJECTEDCRED=2, /* client should begin new session */ - AUTH_BADVERF=3, /* bogus verifier (seal broken) */ - AUTH_REJECTEDVERF=4, /* verifier expired or was replayed */ - AUTH_TOOWEAK=5, /* rejected due to security reasons */ - /* - * failed locally - */ - AUTH_INVALIDRESP=6, /* bogus response verifier */ - AUTH_FAILED=7 /* some unknown reason */ -}; - -union des_block { - struct { - u_int32_t high; - u_int32_t low; - } key; - char c[8]; -}; -typedef union des_block des_block; -extern bool_t xdr_des_block (XDR *__xdrs, des_block *__blkp) __THROW; - -/* - * Authentication info. Opaque to client. - */ -struct opaque_auth { - enum_t oa_flavor; /* flavor of auth */ - caddr_t oa_base; /* address of more auth stuff */ - u_int oa_length; /* not to exceed MAX_AUTH_BYTES */ -}; - -/* - * Auth handle, interface to client side authenticators. - */ -typedef struct AUTH AUTH; -struct AUTH { - struct opaque_auth ah_cred; - struct opaque_auth ah_verf; - union des_block ah_key; - /* not sure whether non-const-ness is a part of the spec... if it is, - * enclose "const" in #ifdef _LIBC / #endif - * to make it effective only for libc compile */ - const - struct auth_ops { - void (*ah_nextverf) (AUTH *); - int (*ah_marshal) (AUTH *, XDR *); /* nextverf & serialize */ - int (*ah_validate) (AUTH *, struct opaque_auth *); - /* validate verifier */ - int (*ah_refresh) (AUTH *); /* refresh credentials */ - void (*ah_destroy) (AUTH *); /* destroy this structure */ - } *ah_ops; - caddr_t ah_private; -}; - - -/* - * Authentication ops. - * The ops and the auth handle provide the interface to the authenticators. - * - * AUTH *auth; - * XDR *xdrs; - * struct opaque_auth verf; - */ -#define AUTH_NEXTVERF(auth) \ - ((*((auth)->ah_ops->ah_nextverf))(auth)) -#define auth_nextverf(auth) \ - ((*((auth)->ah_ops->ah_nextverf))(auth)) - -#define AUTH_MARSHALL(auth, xdrs) \ - ((*((auth)->ah_ops->ah_marshal))(auth, xdrs)) -#define auth_marshall(auth, xdrs) \ - ((*((auth)->ah_ops->ah_marshal))(auth, xdrs)) - -#define AUTH_VALIDATE(auth, verfp) \ - ((*((auth)->ah_ops->ah_validate))((auth), verfp)) -#define auth_validate(auth, verfp) \ - ((*((auth)->ah_ops->ah_validate))((auth), verfp)) - -#define AUTH_REFRESH(auth) \ - ((*((auth)->ah_ops->ah_refresh))(auth)) -#define auth_refresh(auth) \ - ((*((auth)->ah_ops->ah_refresh))(auth)) - -#define AUTH_DESTROY(auth) \ - ((*((auth)->ah_ops->ah_destroy))(auth)) -#define auth_destroy(auth) \ - ((*((auth)->ah_ops->ah_destroy))(auth)) - - -extern struct opaque_auth _null_auth; - - -/* - * These are the various implementations of client side authenticators. - */ - -/* - * Unix style authentication - * AUTH *authunix_create(machname, uid, gid, len, aup_gids) - * char *machname; - * int uid; - * int gid; - * int len; - * int *aup_gids; - */ -extern AUTH *authunix_create (char *__machname, __uid_t __uid, __gid_t __gid, - int __len, __gid_t *__aup_gids); -libc_hidden_proto(authunix_create) -extern AUTH *authunix_create_default (void); -libc_hidden_proto(authunix_create_default) -extern AUTH *authnone_create (void) __THROW; -libc_hidden_proto(authnone_create) -#if 0 -extern AUTH *authdes_create (const char *__servername, u_int __window, - struct sockaddr *__syncaddr, des_block *__ckey) - __THROW; -extern AUTH *authdes_pk_create (const char *, netobj *, u_int, - struct sockaddr *, des_block *) __THROW; -#endif - - -#define AUTH_NONE 0 /* no authentication */ -#define AUTH_NULL 0 /* backward compatibility */ -#define AUTH_SYS 1 /* unix style (uid, gids) */ -#define AUTH_UNIX AUTH_SYS -#define AUTH_SHORT 2 /* short hand unix style */ -#define AUTH_DES 3 /* des style (encrypted timestamps) */ -#define AUTH_DH AUTH_DES /* Diffie-Hellman (this is DES) */ -#define AUTH_KERB 4 /* kerberos style */ - -#if 0 -/* - * Netname manipulating functions - * - */ -extern int getnetname (char *) __THROW; -extern int host2netname (char *, const char *, const char *) __THROW; -extern int user2netname (char *, const uid_t, const char *) __THROW; -extern int netname2user (const char *, uid_t *, gid_t *, int *, gid_t *) - __THROW; -extern int netname2host (const char *, char *, const int) __THROW; - -/* - * - * These routines interface to the keyserv daemon - * - */ -extern int key_decryptsession (char *, des_block *); -extern int key_decryptsession_pk (char *, netobj *, des_block *); -extern int key_encryptsession (char *, des_block *); -extern int key_encryptsession_pk (char *, netobj *, des_block *); -extern int key_gendes (des_block *); -extern int key_setsecret (char *); -extern int key_secretkey_is_set (void); -extern int key_get_conv (char *, des_block *); -#endif - -/* - * XDR an opaque authentication struct. - */ -extern bool_t xdr_opaque_auth (XDR *, struct opaque_auth *) __THROW; -libc_hidden_proto(xdr_opaque_auth) - -__END_DECLS - -#endif /* rpc/auth.h */ diff --git a/include/rpc/auth_des.h b/include/rpc/auth_des.h deleted file mode 100644 index bcd96e424..000000000 --- a/include/rpc/auth_des.h +++ /dev/null @@ -1,115 +0,0 @@ -/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _RPC_AUTH_DES_H -#define _RPC_AUTH_DES_H 1 - -#include <sys/cdefs.h> -#include <rpc/auth.h> - -__BEGIN_DECLS - -#if 0 -/* There are two kinds of "names": fullnames and nicknames */ -enum authdes_namekind - { - ADN_FULLNAME, - ADN_NICKNAME - }; - -/* A fullname contains the network name of the client, - a conversation key and the window */ -struct authdes_fullname - { - char *name; /* network name of client, up to MAXNETNAMELEN */ - des_block key; /* conversation key */ - uint32_t window; /* associated window */ - }; - -/* A credential */ -struct authdes_cred - { - enum authdes_namekind adc_namekind; - struct authdes_fullname adc_fullname; - uint32_t adc_nickname; - }; -#endif - -/* A timeval replacement for !32bit platforms */ -struct rpc_timeval - { - uint32_t tv_sec; /* Seconds. */ - uint32_t tv_usec; /* Microseconds. */ - }; - -#if 0 -/* A des authentication verifier */ -struct authdes_verf - { - union - { - struct rpc_timeval adv_ctime; /* clear time */ - des_block adv_xtime; /* crypt time */ - } - adv_time_u; - uint32_t adv_int_u; - }; - -/* des authentication verifier: client variety - - adv_timestamp is the current time. - adv_winverf is the credential window + 1. - Both are encrypted using the conversation key. */ -#define adv_timestamp adv_time_u.adv_ctime -#define adv_xtimestamp adv_time_u.adv_xtime -#define adv_winverf adv_int_u - -/* des authentication verifier: server variety - - adv_timeverf is the client's timestamp + client's window - adv_nickname is the server's nickname for the client. - adv_timeverf is encrypted using the conversation key. */ -#define adv_timeverf adv_time_u.adv_ctime -#define adv_xtimeverf adv_time_u.adv_xtime -#define adv_nickname adv_int_u - -/* Map a des credential into a unix cred. */ -extern int authdes_getucred (const struct authdes_cred * __adc, - uid_t * __uid, gid_t * __gid, - short *__grouplen, gid_t * __groups) __THROW; - -/* Get the public key for NAME and place it in KEY. NAME can only be - up to MAXNETNAMELEN bytes long and the destination buffer KEY should - have HEXKEYBYTES + 1 bytes long to fit all characters from the key. */ -extern int getpublickey (const char *__name, char *__key) __THROW; - -/* Get the secret key for NAME and place it in KEY. PASSWD is used to - decrypt the encrypted key stored in the database. NAME can only be - up to MAXNETNAMELEN bytes long and the destination buffer KEY - should have HEXKEYBYTES + 1 bytes long to fit all characters from - the key. */ -extern int getsecretkey (const char *__name, char *__key, - const char *__passwd) __THROW; -#endif - -extern int rtime (struct sockaddr_in *__addrp, struct rpc_timeval *__timep, - struct rpc_timeval *__timeout) __THROW; - -__END_DECLS - - -#endif /* rpc/auth_des.h */ diff --git a/include/rpc/auth_unix.h b/include/rpc/auth_unix.h deleted file mode 100644 index 713fcb437..000000000 --- a/include/rpc/auth_unix.h +++ /dev/null @@ -1,91 +0,0 @@ -/* @(#)auth_unix.h 2.2 88/07/29 4.0 RPCSRC; from 1.8 88/02/08 SMI */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* @(#)auth_unix.h 1.5 86/07/16 SMI */ - -/* - * auth_unix.h, Protocol for UNIX style authentication parameters for RPC - * - * Copyright (C) 1984, Sun Microsystems, Inc. - */ - -/* - * The system is very weak. The client uses no encryption for it - * credentials and only sends null verifiers. The server sends backs - * null verifiers or optionally a verifier that suggests a new short hand - * for the credentials. - */ - -#ifndef _RPC_AUTH_UNIX_H -#define _RPC_AUTH_UNIX_H 1 - -#include <features.h> -#include <sys/types.h> -#include <rpc/types.h> -#include <rpc/auth.h> -#include <rpc/xdr.h> - -__BEGIN_DECLS - -/* The machine name is part of a credential; it may not exceed 255 bytes */ -#define MAX_MACHINE_NAME 255 - -/* gids compose part of a credential; there may not be more than 16 of them */ -#define NGRPS 16 - -/* - * Unix style credentials. - */ -struct authunix_parms - { - u_long aup_time; - char *aup_machname; - __uid_t aup_uid; - __gid_t aup_gid; - u_int aup_len; - __gid_t *aup_gids; - }; - -extern bool_t xdr_authunix_parms (XDR *__xdrs, struct authunix_parms *__p) - __THROW; -libc_hidden_proto(xdr_authunix_parms) - -/* - * If a response verifier has flavor AUTH_SHORT, - * then the body of the response verifier encapsulates the following structure; - * again it is serialized in the obvious fashion. - */ -struct short_hand_verf - { - struct opaque_auth new_cred; - }; - -__END_DECLS - -#endif /* rpc/auth_unix.h */ diff --git a/include/rpc/clnt.h b/include/rpc/clnt.h deleted file mode 100644 index 32da6b4e5..000000000 --- a/include/rpc/clnt.h +++ /dev/null @@ -1,433 +0,0 @@ -/* @(#)clnt.h 2.1 88/07/29 4.0 RPCSRC; from 1.31 88/02/08 SMI*/ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * clnt.h - Client side remote procedure call interface. - * - * Copyright (C) 1984, Sun Microsystems, Inc. - */ - -#ifndef _RPC_CLNT_H -#define _RPC_CLNT_H 1 - -#include <features.h> -#include <sys/types.h> -#include <rpc/types.h> -#include <rpc/auth.h> -#include <sys/un.h> - -__BEGIN_DECLS - -/* - * Rpc calls return an enum clnt_stat. This should be looked at more, - * since each implementation is required to live with this (implementation - * independent) list of errors. - */ -enum clnt_stat { - RPC_SUCCESS=0, /* call succeeded */ - /* - * local errors - */ - RPC_CANTENCODEARGS=1, /* can't encode arguments */ - RPC_CANTDECODERES=2, /* can't decode results */ - RPC_CANTSEND=3, /* failure in sending call */ - RPC_CANTRECV=4, /* failure in receiving result */ - RPC_TIMEDOUT=5, /* call timed out */ - /* - * remote errors - */ - RPC_VERSMISMATCH=6, /* rpc versions not compatible */ - RPC_AUTHERROR=7, /* authentication error */ - RPC_PROGUNAVAIL=8, /* program not available */ - RPC_PROGVERSMISMATCH=9, /* program version mismatched */ - RPC_PROCUNAVAIL=10, /* procedure unavailable */ - RPC_CANTDECODEARGS=11, /* decode arguments error */ - RPC_SYSTEMERROR=12, /* generic "other problem" */ - RPC_NOBROADCAST = 21, /* Broadcasting not supported */ - /* - * callrpc & clnt_create errors - */ - RPC_UNKNOWNHOST=13, /* unknown host name */ - RPC_UNKNOWNPROTO=17, /* unknown protocol */ - RPC_UNKNOWNADDR = 19, /* Remote address unknown */ - - /* - * rpcbind errors - */ - RPC_RPCBFAILURE=14, /* portmapper failed in its call */ -#define RPC_PMAPFAILURE RPC_RPCBFAILURE - RPC_PROGNOTREGISTERED=15, /* remote program is not registered */ - RPC_N2AXLATEFAILURE = 22, /* Name to addr translation failed */ - /* - * unspecified error - */ - RPC_FAILED=16, - RPC_INTR=18, - RPC_TLIERROR=20, - RPC_UDERROR=23, - /* - * asynchronous errors - */ - RPC_INPROGRESS = 24, - RPC_STALERACHANDLE = 25 -}; - - -/* - * Error info. - */ -struct rpc_err { - enum clnt_stat re_status; - union { - int RE_errno; /* related system error */ - enum auth_stat RE_why; /* why the auth error occurred */ - struct { - u_long low; /* lowest verion supported */ - u_long high; /* highest verion supported */ - } RE_vers; - struct { /* maybe meaningful if RPC_FAILED */ - long s1; - long s2; - } RE_lb; /* life boot & debugging only */ - } ru; -#define re_errno ru.RE_errno -#define re_why ru.RE_why -#define re_vers ru.RE_vers -#define re_lb ru.RE_lb -}; - - -/* - * Client rpc handle. - * Created by individual implementations, see e.g. rpc_udp.c. - * Client is responsible for initializing auth, see e.g. auth_none.c. - */ -typedef struct CLIENT CLIENT; -struct CLIENT { - AUTH *cl_auth; /* authenticator */ - /* not sure whether non-const-ness is a part of the spec... if it is, - * enclose "const" in #ifdef _LIBC / #endif - * to make it effective only for libc compile */ - const - struct clnt_ops { - enum clnt_stat (*cl_call) (CLIENT *, u_long, xdrproc_t, caddr_t, xdrproc_t, - caddr_t, struct timeval); - /* call remote procedure */ - void (*cl_abort) (void); /* abort a call */ - void (*cl_geterr) (CLIENT *, struct rpc_err *); - /* get specific error code */ - bool_t (*cl_freeres) (CLIENT *, xdrproc_t, caddr_t); - /* frees results */ - void (*cl_destroy) (CLIENT *); /* destroy this structure */ - bool_t (*cl_control) (CLIENT *, int, char *); - /* the ioctl() of rpc */ - } *cl_ops; - caddr_t cl_private; /* private stuff */ -}; - - -/* - * client side rpc interface ops - * - * Parameter types are: - * - */ - -/* - * enum clnt_stat - * CLNT_CALL(rh, proc, xargs, argsp, xres, resp, timeout) - * CLIENT *rh; - * u_long proc; - * xdrproc_t xargs; - * caddr_t argsp; - * xdrproc_t xres; - * caddr_t resp; - * struct timeval timeout; - */ -#define CLNT_CALL(rh, proc, xargs, argsp, xres, resp, secs) \ - ((*(rh)->cl_ops->cl_call)(rh, proc, xargs, argsp, xres, resp, secs)) -#define clnt_call(rh, proc, xargs, argsp, xres, resp, secs) \ - ((*(rh)->cl_ops->cl_call)(rh, proc, xargs, argsp, xres, resp, secs)) - -/* - * void - * CLNT_ABORT(rh); - * CLIENT *rh; - */ -#define CLNT_ABORT(rh) ((*(rh)->cl_ops->cl_abort)(rh)) -#define clnt_abort(rh) ((*(rh)->cl_ops->cl_abort)(rh)) - -/* - * struct rpc_err - * CLNT_GETERR(rh); - * CLIENT *rh; - */ -#define CLNT_GETERR(rh,errp) ((*(rh)->cl_ops->cl_geterr)(rh, errp)) -#define clnt_geterr(rh,errp) ((*(rh)->cl_ops->cl_geterr)(rh, errp)) - - -/* - * bool_t - * CLNT_FREERES(rh, xres, resp); - * CLIENT *rh; - * xdrproc_t xres; - * caddr_t resp; - */ -#define CLNT_FREERES(rh,xres,resp) ((*(rh)->cl_ops->cl_freeres)(rh,xres,resp)) -#define clnt_freeres(rh,xres,resp) ((*(rh)->cl_ops->cl_freeres)(rh,xres,resp)) - -/* - * bool_t - * CLNT_CONTROL(cl, request, info) - * CLIENT *cl; - * u_int request; - * char *info; - */ -#define CLNT_CONTROL(cl,rq,in) ((*(cl)->cl_ops->cl_control)(cl,rq,in)) -#define clnt_control(cl,rq,in) ((*(cl)->cl_ops->cl_control)(cl,rq,in)) - -/* - * control operations that apply to all transports - * - * Note: options marked XXX are no-ops in this implementation of RPC. - * The are present in TI-RPC but can't be implemented here since they - * depend on the presence of STREAMS/TLI, which we don't have. - */ -#define CLSET_TIMEOUT 1 /* set timeout (timeval) */ -#define CLGET_TIMEOUT 2 /* get timeout (timeval) */ -#define CLGET_SERVER_ADDR 3 /* get server's address (sockaddr) */ -#define CLGET_FD 6 /* get connections file descriptor */ -#define CLGET_SVC_ADDR 7 /* get server's address (netbuf) XXX */ -#define CLSET_FD_CLOSE 8 /* close fd while clnt_destroy */ -#define CLSET_FD_NCLOSE 9 /* Do not close fd while clnt_destroy*/ -#define CLGET_XID 10 /* Get xid */ -#define CLSET_XID 11 /* Set xid */ -#define CLGET_VERS 12 /* Get version number */ -#define CLSET_VERS 13 /* Set version number */ -#define CLGET_PROG 14 /* Get program number */ -#define CLSET_PROG 15 /* Set program number */ -#define CLSET_SVC_ADDR 16 /* get server's address (netbuf) XXX */ -#define CLSET_PUSH_TIMOD 17 /* push timod if not already present XXX */ -#define CLSET_POP_TIMOD 18 /* pop timod XXX */ -/* - * Connectionless only control operations - */ -#define CLSET_RETRY_TIMEOUT 4 /* set retry timeout (timeval) */ -#define CLGET_RETRY_TIMEOUT 5 /* get retry timeout (timeval) */ - -/* - * void - * CLNT_DESTROY(rh); - * CLIENT *rh; - */ -#define CLNT_DESTROY(rh) ((*(rh)->cl_ops->cl_destroy)(rh)) -#define clnt_destroy(rh) ((*(rh)->cl_ops->cl_destroy)(rh)) - - -/* - * RPCTEST is a test program which is accessible on every rpc - * transport/port. It is used for testing, performance evaluation, - * and network administration. - */ - -#define RPCTEST_PROGRAM ((u_long)1) -#define RPCTEST_VERSION ((u_long)1) -#define RPCTEST_NULL_PROC ((u_long)2) -#define RPCTEST_NULL_BATCH_PROC ((u_long)3) - -/* - * By convention, procedure 0 takes null arguments and returns them - */ - -#define NULLPROC ((u_long)0) - -/* - * Below are the client handle creation routines for the various - * implementations of client side rpc. They can return NULL if a - * creation failure occurs. - */ - -/* - * Memory based rpc (for speed check and testing) - * CLIENT * - * clntraw_create(prog, vers) - * u_long prog; - * u_long vers; - */ -extern CLIENT *clntraw_create (const u_long __prog, const u_long __vers) - __THROW; - - -/* - * Generic client creation routine. Supported protocols are "udp", "tcp" and - * "unix" - * CLIENT * - * clnt_create(host, prog, vers, prot) - * char *host; -- hostname - * u_long prog; -- program number - * u_ong vers; -- version number - * char *prot; -- protocol - */ -extern CLIENT *clnt_create (const char *__host, const u_long __prog, - const u_long __vers, const char *__prot) - __THROW; - - -/* - * TCP based rpc - * CLIENT * - * clnttcp_create(raddr, prog, vers, sockp, sendsz, recvsz) - * struct sockaddr_in *raddr; - * u_long prog; - * u_long version; - * register int *sockp; - * u_int sendsz; - * u_int recvsz; - */ -extern CLIENT *clnttcp_create (struct sockaddr_in *__raddr, u_long __prog, - u_long __version, int *__sockp, u_int __sendsz, - u_int __recvsz) __THROW; -libc_hidden_proto(clnttcp_create) - -/* - * UDP based rpc. - * CLIENT * - * clntudp_create(raddr, program, version, wait, sockp) - * struct sockaddr_in *raddr; - * u_long program; - * u_long version; - * struct timeval wait_resend; - * int *sockp; - * - * Same as above, but you specify max packet sizes. - * CLIENT * - * clntudp_bufcreate(raddr, program, version, wait, sockp, sendsz, recvsz) - * struct sockaddr_in *raddr; - * u_long program; - * u_long version; - * struct timeval wait_resend; - * int *sockp; - * u_int sendsz; - * u_int recvsz; - */ -extern CLIENT *clntudp_create (struct sockaddr_in *__raddr, u_long __program, - u_long __version, struct timeval __wait_resend, - int *__sockp) __THROW; -libc_hidden_proto(clntudp_create) -extern CLIENT *clntudp_bufcreate (struct sockaddr_in *__raddr, - u_long __program, u_long __version, - struct timeval __wait_resend, int *__sockp, - u_int __sendsz, u_int __recvsz) __THROW; -libc_hidden_proto(clntudp_bufcreate) - - -/* - * AF_UNIX based rpc - * CLIENT * - * clntunix_create(raddr, prog, vers, sockp, sendsz, recvsz) - * struct sockaddr_un *raddr; - * u_long prog; - * u_long version; - * register int *sockp; - * u_int sendsz; - * u_int recvsz; - */ -extern CLIENT *clntunix_create (struct sockaddr_un *__raddr, u_long __program, - u_long __version, int *__sockp, - u_int __sendsz, u_int __recvsz) __THROW; -libc_hidden_proto(clntunix_create) - - -extern int callrpc (const char *__host, const u_long __prognum, - const u_long __versnum, const u_long __procnum, - const xdrproc_t __inproc, const char *__in, - const xdrproc_t __outproc, char *__out) __THROW; -extern int _rpc_dtablesize (void) __THROW; -libc_hidden_proto(_rpc_dtablesize) - -/* - * Print why creation failed - */ -extern void clnt_pcreateerror (const char *__msg); /* stderr */ -extern char *clnt_spcreateerror(const char *__msg) __THROW; /* string */ -libc_hidden_proto(clnt_spcreateerror) - -/* - * Like clnt_perror(), but is more verbose in its output - */ -extern void clnt_perrno (enum clnt_stat __num); /* stderr */ - -/* - * Print an English error message, given the client error code - */ -extern void clnt_perror (CLIENT *__clnt, const char *__msg); - /* stderr */ -libc_hidden_proto(clnt_perror) -extern char *clnt_sperror (CLIENT *__clnt, const char *__msg) __THROW; - /* string */ -libc_hidden_proto(clnt_sperror) - - -/* - * If a creation fails, the following allows the user to figure out why. - */ -struct rpc_createerr { - enum clnt_stat cf_stat; - struct rpc_err cf_error; /* useful when cf_stat == RPC_PMAPFAILURE */ -}; - -extern struct rpc_createerr rpc_createerr; - - - -/* - * Copy error message to buffer. - */ -extern char *clnt_sperrno (enum clnt_stat __num) __THROW; /* string */ -libc_hidden_proto(clnt_sperrno) - -/* - * get the port number on the host for the rpc program,version and proto - */ -extern int getrpcport (const char * __host, u_long __prognum, - u_long __versnum, u_int proto) __THROW; - -/* - * get the local host's IP address without consulting - * name service library functions - */ -extern void get_myaddress (struct sockaddr_in *) __THROW; - -#define UDPMSGSIZE 8800 /* rpc imposed limit on udp msg size */ -#define RPCSMALLMSGSIZE 400 /* a more reasonable packet size */ - -__END_DECLS - -#endif /* rpc/clnt.h */ diff --git a/include/rpc/des_crypt.h b/include/rpc/des_crypt.h deleted file mode 100644 index 6a65887d3..000000000 --- a/include/rpc/des_crypt.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * @(#)des_crypt.h 2.1 88/08/11 4.0 RPCSRC; from 1.4 88/02/08 (C) 1986 SMI - * - * des_crypt.h, des library routine interface - * Copyright (C) 1986, Sun Microsystems, Inc. - */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TR |