Obsolete RPC implementation in libc.

This commit is contained in:
Ulrich Drepper 2011-04-16 21:59:36 -04:00
parent e6c6149412
commit 7b57bfe598
71 changed files with 991 additions and 621 deletions

View File

@ -1,3 +1,77 @@
2011-04-16 Ulrich Drepper <drepper@gmail.com>
* Makefile: Add rules to build linkobj/libc.so.
* include/libc-symbols.h: Define libc_hidden_nolink.
* include/rpc/auth.h: Mark functions which are to be hidden.
* include/rpc/auth_des.h: Likewise.
* include/rpc/auth_unix.h: Likewise.
* include/rpc/clnt.h: Likewise.
* include/rpc/des_crypt.h: Likewise.
* include/rpc/key_prot.h: Likewise.
* include/rpc/pmap_clnt.h: Likewise.
* include/rpc/pmap_prot.h: Likewise.
* include/rpc/pmap_rmt.h: Likewise.
* include/rpc/rpc_msg.h: Likewise.
* include/rpc/svc.h: Likewise.
* include/rpc/svc_auth.h: Likewise.
* include/rpc/xdr.h: Likewise.
* nis/Makefile: Link all DSOs against linkobj/libc.so.
* nss/Makefile: Likewise.
* sunrpc/Makefile: Don't install headers. Build library with normal
entry points. Don't build rpcinfo. Link RPC tests appropriately.
* sunrpc/auth_des.c: Hide exported symbols by default, export some
for the compat linking library. Remove use of INTDEF/INTUSE.
* sunrpc/auth_none.c: Likewise.
* sunrpc/auth_unix.c: Likewise.
* sunrpc/authdes_prot.c: Likewise.
* sunrpc/authuxprot.c: Likewise.
* sunrpc/clnt_gen.c: Likewise.
* sunrpc/clnt_perr.c: Likewise.
* sunrpc/clnt_raw.c: Likewise.
* sunrpc/clnt_simp.c: Likewise.
* sunrpc/clnt_tcp.c: Likewise.
* sunrpc/clnt_udp.c: Likewise.
* sunrpc/clnt_unix.c: Likewise.
* sunrpc/des_crypt.c: Likewise.
* sunrpc/des_soft.c: Likewise.
* sunrpc/get_myaddr.c: Likewise.
* sunrpc/key_call.c: Likewise.
* sunrpc/key_prot.c: Likewise.
* sunrpc/netname.c: Likewise.
* sunrpc/pm_getmaps.c: Likewise.
* sunrpc/pm_getport.c: Likewise.
* sunrpc/pmap_clnt.c: Likewise.
* sunrpc/pmap_prot.c: Likewise.
* sunrpc/pmap_prot2.c: Likewise.
* sunrpc/pmap_rmt.c: Likewise.
* sunrpc/publickey.c: Likewise.
* sunrpc/rpc_cmsg.c: Likewise.
* sunrpc/rpc_common.c: Likewise.
* sunrpc/rpc_dtable.c: Likewise.
* sunrpc/rpc_prot.c: Likewise.
* sunrpc/rpc_thread.c: Likewise.
* sunrpc/rtime.c: Likewise.
* sunrpc/svc.c: Likewise.
* sunrpc/svc_auth.c: Likewise.
* sunrpc/svc_authux.c: Likewise.
* sunrpc/svc_raw.c: Likewise.
* sunrpc/svc_run.c: Likewise.
* sunrpc/svc_simple.c: Likewise.
* sunrpc/svc_tcp.c: Likewise.
* sunrpc/svc_udp.c: Likewise.
* sunrpc/svc_unix.c: Likewise.
* sunrpc/svcauth_des.c: Likewise.
* sunrpc/xcrypt.c: Likewise.
* sunrpc/xdr.c: Likewise.
* sunrpc/xdr_array.c: Likewise.
* sunrpc/xdr_float.c: Likewise.
* sunrpc/xdr_intXX_t.c: Likewise.
* sunrpc/xdr_mem.c: Likewise.
* sunrpc/xdr_rec.c: Likewise.
* sunrpc/xdr_ref.c: Likewise.
* sunrpc/xdr_sizeof.c: Likewise.
* sunrpc/xdr_stdio.c: Likewise.
2011-04-10 Ulrich Drepper <drepper@gmail.com> 2011-04-10 Ulrich Drepper <drepper@gmail.com>
[BZ #12650] [BZ #12650]

View File

@ -1,4 +1,4 @@
# Copyright (C) 1991-2002,2003,2004,2005,2006,2008,2009 # Copyright (C) 1991-2002,2003,2004,2005,2006,2008,2009,2011
# Free Software Foundation, Inc. # Free Software Foundation, Inc.
# This file is part of the GNU C Library. # This file is part of the GNU C Library.
@ -63,8 +63,8 @@ endif # $(AUTOCONF) = no
+subdir_targets := subdir_lib objects objs others subdir_mostlyclean \ +subdir_targets := subdir_lib objects objs others subdir_mostlyclean \
subdir_clean subdir_distclean subdir_realclean \ subdir_clean subdir_distclean subdir_realclean \
tests xtests subdir_lint.out \ tests xtests subdir_lint.out \
subdir_update-abi subdir_check-abi \ subdir_update-abi subdir_check-abi \
subdir_echo-headers \ subdir_echo-headers \
subdir_install \ subdir_install \
subdir_objs subdir_stubs subdir_testclean \ subdir_objs subdir_stubs subdir_testclean \
$(addprefix install-, no-libc.a bin lib data headers others) $(addprefix install-, no-libc.a bin lib data headers others)
@ -135,6 +135,20 @@ lib-noranlib: subdir_lib
ifeq (yes,$(build-shared)) ifeq (yes,$(build-shared))
# Build the shared object from the PIC object library. # Build the shared object from the PIC object library.
lib: $(common-objpfx)libc.so lib: $(common-objpfx)libc.so
lib: $(common-objpfx)linkobj/libc.so
$(common-objpfx)linkobj/libc.so: $(elfobjdir)/soinit.os $(common-objpfx)linkobj/libc_pic.a $(elfobjdir)/sofini.os $(elfobjdir)/interp.os $(elfobjdir)/ld.so $(common-objpfx)shlib.lds $(common-objpfx)elf/ld.so
$(build-shlib)
$(common-objpfx)linkobj/libc_pic.a: $(common-objpfx)libc_pic.a $(common-objpfx)sunrpc/librpc_compat_pic.a
$(..)./scripts/mkinstalldirs $(common-objpfx)linkobj
(cd $(common-objpfx)linkobj; \
$(AR) x ../libc_pic.a; \
rm $$($(AR) t ../sunrpc/librpc_compat_pic.a | sed 's/^compat-//'); \
$(AR) x ../sunrpc/librpc_compat_pic.a; \
$(AR) cr libc_pic.a *.os; \
rm *.os)
endif endif
@ -247,11 +261,11 @@ tests-clean:
tests: $(objpfx)c++-types-check.out $(objpfx)check-local-headers.out tests: $(objpfx)c++-types-check.out $(objpfx)check-local-headers.out
ifneq ($(CXX),no) ifneq ($(CXX),no)
check-data := $(firstword $(wildcard \ check-data := $(firstword $(wildcard \
$(foreach D,$(add-ons) scripts,\ $(foreach D,$(add-ons) scripts,\
$(patsubst %,$D/data/c++-types-%.data,\ $(patsubst %,$D/data/c++-types-%.data,\
$(abi-name) \ $(abi-name) \
$(addsuffix -$(config-os),\ $(addsuffix -$(config-os),\
$(config-machine) \ $(config-machine) \
$(base-machine)))))) $(base-machine))))))
ifneq (,$(check-data)) ifneq (,$(check-data))
$(objpfx)c++-types-check.out: $(check-data) scripts/check-c++-types.sh $(objpfx)c++-types-check.out: $(check-data) scripts/check-c++-types.sh
@ -408,18 +422,18 @@ install: remove-old-headers
endif endif
endif endif
headers2_0 := __math.h bytesex.h confname.h direntry.h elfclass.h \ headers2_0 := __math.h bytesex.h confname.h direntry.h elfclass.h \
errnos.h fcntlbits.h huge_val.h ioctl-types.h \ errnos.h fcntlbits.h huge_val.h ioctl-types.h \
ioctls.h iovec.h jmp_buf.h libc-lock.h local_lim.h \ ioctls.h iovec.h jmp_buf.h libc-lock.h local_lim.h \
mathcalls.h mpool.h nan.h ndbm.h posix1_lim.h \ mathcalls.h mpool.h nan.h ndbm.h posix1_lim.h \
posix2_lim.h posix_opt.h resourcebits.h schedbits.h \ posix2_lim.h posix_opt.h resourcebits.h schedbits.h \
selectbits.h semaphorebits.h sigaction.h sigcontext.h \ selectbits.h semaphorebits.h sigaction.h sigcontext.h \
signum.h sigset.h sockaddrcom.h socketbits.h stab.def \ signum.h sigset.h sockaddrcom.h socketbits.h stab.def \
statbuf.h statfsbuf.h stdio-lock.h stdio_lim.h \ statbuf.h statfsbuf.h stdio-lock.h stdio_lim.h \
syscall-list.h termbits.h timebits.h ustatbits.h \ syscall-list.h termbits.h timebits.h ustatbits.h \
utmpbits.h utsnamelen.h waitflags.h waitstatus.h \ utmpbits.h utsnamelen.h waitflags.h waitstatus.h \
xopen_lim.h gnu/types.h sys/ipc_buf.h \ xopen_lim.h gnu/types.h sys/ipc_buf.h \
sys/kernel_termios.h sys/msq_buf.h sys/sem_buf.h \ sys/kernel_termios.h sys/msq_buf.h sys/sem_buf.h \
sys/shm_buf.h sys/socketcall.h sigstack.h sys/shm_buf.h sys/socketcall.h sigstack.h
.PHONY: remove-old-headers .PHONY: remove-old-headers

8
NEWS
View File

@ -1,4 +1,4 @@
GNU C Library NEWS -- history of user-visible changes. 2011-4-10 GNU C Library NEWS -- history of user-visible changes. 2011-4-16
Copyright (C) 1992-2009, 2010, 2011 Free Software Foundation, Inc. Copyright (C) 1992-2009, 2010, 2011 Free Software Foundation, Inc.
See the end for copying conditions. See the end for copying conditions.
@ -7,6 +7,12 @@ using `glibc' in the "product" field.
Version 2.14 Version 2.14
* The RPC implementation in libc is obsoleted. Old programs keep working
but new programs cannot be linked with the routines in libc anymore.
Programs in need of RPC functionality must be linked against TI-RPC.
The TI-RPC implemtation is IPv6 enabled and there are other benefits.
Implemented by Ulrich Drepper.
* New Linux interfaces: clock_adjtime, name_to_handle_at, open_by_handle_at, * New Linux interfaces: clock_adjtime, name_to_handle_at, open_by_handle_at,
syncfs syncfs

View File

@ -1,6 +1,7 @@
/* Support macros for making weak and strong aliases for symbols, /* Support macros for making weak and strong aliases for symbols,
and for using symbol sets and linker warnings with GNU ld. and for using symbol sets and linker warnings with GNU ld.
Copyright (C) 1995-1998,2000-2006,2008,2009 Free Software Foundation, Inc. Copyright (C) 1995-1998,2000-2006,2008,2009,2011
Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -266,7 +267,7 @@
# else # else
# define link_warning(symbol, msg) \ # define link_warning(symbol, msg) \
asm (".stabs \"" msg "\",30,0,0,0\n\t" \ asm (".stabs \"" msg "\",30,0,0,0\n\t" \
".stabs \"" __SYMBOL_PREFIX #symbol "\",1,0,0,0\n"); ".stabs \"" __SYMBOL_PREFIX #symbol "\",1,0,0,0\n");
# endif /* XCOFF */ # endif /* XCOFF */
# define libc_freeres_ptr(decl) decl # define libc_freeres_ptr(decl) decl
# define __libc_freeres_fn_section # define __libc_freeres_fn_section
@ -585,6 +586,15 @@ for linking")
# define hidden_weak(name) \ # define hidden_weak(name) \
__hidden_ver1(__GI_##name, name, name) __attribute__((weak)); __hidden_ver1(__GI_##name, name, name) __attribute__((weak));
# define hidden_data_weak(name) hidden_weak(name) # define hidden_data_weak(name) hidden_weak(name)
# define hidden_nolink(name, lib, version) \
__hidden_nolink1 (__GI_##name, __EI_##name, name, VERSION_##lib##_##version)
# define __hidden_nolink1(local, internal, name, version) \
__hidden_nolink2 (local, internal, name, version)
# define __hidden_nolink2(local, internal, name, version) \
extern __typeof (name) internal __attribute__ ((alias (#local))); \
__hidden_nolink3 (local, internal, #name "@" #version)
# define __hidden_nolink3(local, internal, vername) \
__asm__ (".symver " #internal ", " vername);
# else # else
/* For assembly, we need to do the opposite of what we do in C: /* For assembly, we need to do the opposite of what we do in C:
in assembly gcc __REDIRECT stuff is not in place, so functions in assembly gcc __REDIRECT stuff is not in place, so functions
@ -625,6 +635,7 @@ for linking")
# define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs) # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
# define libc_hidden_def(name) hidden_def (name) # define libc_hidden_def(name) hidden_def (name)
# define libc_hidden_weak(name) hidden_weak (name) # define libc_hidden_weak(name) hidden_weak (name)
# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
# define libc_hidden_ver(local, name) hidden_ver (local, name) # define libc_hidden_ver(local, name) hidden_ver (local, name)
# define libc_hidden_data_def(name) hidden_data_def (name) # define libc_hidden_data_def(name) hidden_data_def (name)
# define libc_hidden_data_weak(name) hidden_data_weak (name) # define libc_hidden_data_weak(name) hidden_data_weak (name)

View File

@ -13,7 +13,7 @@ extern int key_setnet (struct key_netstarg *arg);
#define DECLARE_NSS_PROTOTYPES(service) \ #define DECLARE_NSS_PROTOTYPES(service) \
extern enum nss_status _nss_ ##service ## _netname2user \ extern enum nss_status _nss_ ##service ## _netname2user \
(char netname[MAXNETNAMELEN + 1], uid_t *uidp, \ (char netname[MAXNETNAMELEN + 1], uid_t *uidp, \
gid_t *gidp, int *gidlenp, gid_t *gidlist, \ gid_t *gidp, int *gidlenp, gid_t *gidlist, \
int *errnop); int *errnop);
@ -22,23 +22,23 @@ DECLARE_NSS_PROTOTYPES (nisplus)
#undef DECLARE_NSS_PROTOTYPES #undef DECLARE_NSS_PROTOTYPES
extern bool_t xdr_des_block_internal (XDR *__xdrs, des_block *__blkp)
attribute_hidden;
extern bool_t xdr_opaque_auth_internal (XDR *, struct opaque_auth *)
attribute_hidden;
extern AUTH *authunix_create_internal (char *__machname, __uid_t __uid,
__gid_t __gid, int __len,
__gid_t *__aup_gids) attribute_hidden;
extern AUTH *authunix_create_default_internal (void) attribute_hidden;
extern AUTH *authnone_create_internal (void) attribute_hidden;
extern AUTH *authdes_pk_create_internal (const char *, netobj *, u_int,
struct sockaddr *,
des_block *) attribute_hidden;
libc_hidden_proto (key_encryptsession_pk) libc_hidden_proto (key_encryptsession_pk)
libc_hidden_proto (key_decryptsession_pk) libc_hidden_proto (key_decryptsession_pk)
libc_hidden_proto (_null_auth) libc_hidden_proto (_null_auth)
libc_hidden_proto (authnone_create)
libc_hidden_proto (authunix_create)
libc_hidden_proto (authunix_create_default)
libc_hidden_proto (xdr_des_block)
libc_hidden_proto (xdr_opaque_auth)
libc_hidden_proto (authdes_create)
libc_hidden_proto (authdes_pk_create)
libc_hidden_proto (key_decryptsession)
libc_hidden_proto (key_encryptsession)
libc_hidden_proto (key_get_conv)
libc_hidden_proto (key_secretkey_is_set)
libc_hidden_proto (key_setnet)
libc_hidden_proto (key_setsecret)
libc_hidden_proto (netname2host)
#endif #endif

View File

@ -3,6 +3,7 @@
#include <sunrpc/rpc/auth_des.h> #include <sunrpc/rpc/auth_des.h>
libc_hidden_proto (getpublickey) libc_hidden_proto (getpublickey)
libc_hidden_proto (getsecretkey)
libc_hidden_proto (rtime) libc_hidden_proto (rtime)
extern bool_t xdr_authdes_cred (XDR *xdrs, struct authdes_cred *cred); extern bool_t xdr_authdes_cred (XDR *xdrs, struct authdes_cred *cred);
@ -16,9 +17,9 @@ extern enum auth_stat _svcauth_des (register struct svc_req *rqst,
#define DECLARE_NSS_PROTOTYPES(service) \ #define DECLARE_NSS_PROTOTYPES(service) \
extern enum nss_status _nss_ ## service ## _getpublickey \ extern enum nss_status _nss_ ## service ## _getpublickey \
(const char *netname, char *pkey, int *errnop); \ (const char *netname, char *pkey, int *errnop); \
extern enum nss_status _nss_ ## service ## _getsecretkey \ extern enum nss_status _nss_ ## service ## _getsecretkey \
(const char *netname, char *skey, char *passwd, \ (const char *netname, char *skey, char *passwd, \
int *errnop); int *errnop);
DECLARE_NSS_PROTOTYPES (files) DECLARE_NSS_PROTOTYPES (files)
@ -27,4 +28,8 @@ DECLARE_NSS_PROTOTYPES (nisplus)
#undef DECLARE_NSS_PROTOTYPES #undef DECLARE_NSS_PROTOTYPES
libc_hidden_proto (authdes_getucred)
libc_hidden_proto (xdr_authdes_cred)
libc_hidden_proto (xdr_authdes_verf)
#endif #endif

View File

@ -1,4 +1,3 @@
#include <sunrpc/rpc/auth_unix.h> #include <sunrpc/rpc/auth_unix.h>
extern bool_t xdr_authunix_parms_internal (XDR *__xdrs, libc_hidden_proto (xdr_authunix_parms)
struct authunix_parms *__p);

View File

@ -4,44 +4,27 @@
/* Now define the internal interfaces. */ /* Now define the internal interfaces. */
extern int _openchild (const char *command, FILE **fto, FILE **ffrom); extern int _openchild (const char *command, FILE **fto, FILE **ffrom);
extern CLIENT *clnt_create_internal (__const char *__host,
__const u_long __prog,
__const u_long __vers,
__const char *__prot) attribute_hidden;
extern CLIENT *clnttcp_create_internal (struct sockaddr_in *__raddr,
u_long __prog, u_long __version,
int *__sockp, u_int __sendsz,
u_int __recvsz) attribute_hidden;
extern CLIENT *clntudp_create_internal (struct sockaddr_in *__raddr,
u_long __program, u_long __version,
struct timeval __wait_resend,
int *__sockp) attribute_hidden;
extern CLIENT *clntudp_bufcreate_internal (struct sockaddr_in *__raddr,
u_long __program, u_long __version,
struct timeval __wait_resend,
int *__sockp, u_int __sendsz,
u_int __recvsz) attribute_hidden;
extern CLIENT *__libc_clntudp_bufcreate (struct sockaddr_in *__raddr, extern CLIENT *__libc_clntudp_bufcreate (struct sockaddr_in *__raddr,
u_long __program, u_long __version, u_long __program, u_long __version,
struct timeval __wait_resend, struct timeval __wait_resend,
int *__sockp, u_int __sendsz, int *__sockp, u_int __sendsz,
u_int __recvsz, int __flags); u_int __recvsz, int __flags);
extern CLIENT *__libc_clntudp_bufcreate_internal (struct sockaddr_in *__raddr,
u_long __program,
u_long __version,
struct timeval __wait_resend,
int *__sockp, u_int __sendsz,
u_int __recvsz, int __flags)
attribute_hidden;
extern CLIENT *clntunix_create_internal (struct sockaddr_un *__raddr,
u_long __program, u_long __version,
int *__sockp, u_int __sendsz,
u_int __recvsz) attribute_hidden;
libc_hidden_proto (clnt_sperrno) libc_hidden_proto (clnt_sperrno)
libc_hidden_proto (clnt_spcreateerror) libc_hidden_proto (clnt_spcreateerror)
libc_hidden_proto (clnt_perror) libc_hidden_proto (clnt_perror)
libc_hidden_proto (clnt_sperror) libc_hidden_proto (clnt_sperror)
libc_hidden_proto (_rpc_dtablesize) libc_hidden_proto (_rpc_dtablesize)
libc_hidden_proto (callrpc)
libc_hidden_proto (clnt_create)
libc_hidden_proto (clnt_pcreateerror)
libc_hidden_proto (clnt_perrno)
libc_hidden_proto (clntraw_create)
libc_hidden_proto (clnttcp_create)
libc_hidden_proto (clntudp_bufcreate)
libc_hidden_proto (clntudp_create)
libc_hidden_proto (get_myaddress)
libc_hidden_proto (clntunix_create)
libc_hidden_proto (__libc_clntudp_bufcreate)
#endif #endif

View File

@ -9,5 +9,7 @@ extern int xdecrypt (char *secret, char *passwd);
libc_hidden_proto (des_setparity) libc_hidden_proto (des_setparity)
libc_hidden_proto (ecb_crypt) libc_hidden_proto (ecb_crypt)
libc_hidden_proto (cbc_crypt) libc_hidden_proto (cbc_crypt)
libc_hidden_proto (xencrypt)
libc_hidden_proto (xdecrypt)
#endif #endif

View File

@ -1,15 +1,12 @@
#include <sunrpc/rpc/key_prot.h> #include <sunrpc/rpc/key_prot.h>
extern bool_t xdr_cryptkeyres_internal (XDR *xdrs, cryptkeyres *objp) libc_hidden_proto (xdr_cryptkeyarg)
attribute_hidden; libc_hidden_proto (xdr_cryptkeyarg2)
extern bool_t xdr_keystatus_internal (XDR *, keystatus*) attribute_hidden; libc_hidden_proto (xdr_cryptkeyres)
extern bool_t xdr_keybuf_internal (XDR *, keybuf) attribute_hidden; libc_hidden_proto (xdr_key_netstarg)
extern bool_t xdr_cryptkeyarg_internal (XDR *, cryptkeyarg*) attribute_hidden; libc_hidden_proto (xdr_key_netstres)
extern bool_t xdr_cryptkeyarg2_internal (XDR *, cryptkeyarg2*) libc_hidden_proto (xdr_keybuf)
attribute_hidden; libc_hidden_proto (xdr_keystatus)
extern bool_t xdr_key_netstres_internal (XDR *, key_netstres*) libc_hidden_proto (xdr_getcredres)
attribute_hidden; libc_hidden_proto (xdr_netnamestr)
extern bool_t xdr_key_netstarg_internal (XDR *, key_netstarg*) libc_hidden_proto (xdr_unixcred)
attribute_hidden;
extern bool_t xdr_netnamestr_internal (XDR *, netnamestr*) attribute_hidden;
extern bool_t xdr_unixcred_internal (XDR *, unixcred*) attribute_hidden;

View File

@ -14,4 +14,8 @@ extern u_short __libc_rpc_getport (struct sockaddr_in *address, u_long program,
internal_function; internal_function;
libc_hidden_proto (__libc_rpc_getport) libc_hidden_proto (__libc_rpc_getport)
libc_hidden_proto (clnt_broadcast)
libc_hidden_proto (pmap_getmaps)
libc_hidden_proto (pmap_rmtcall)
#endif #endif

View File

@ -1,7 +1,4 @@
#include <sunrpc/rpc/pmap_prot.h> #include <sunrpc/rpc/pmap_prot.h>
libc_hidden_proto (xdr_pmap)
extern bool_t xdr_pmap_internal (XDR *__xdrs, struct pmap *__regs) libc_hidden_proto (xdr_pmaplist)
attribute_hidden;
extern bool_t xdr_pmaplist_internal (XDR *__xdrs, struct pmaplist **__rp)
attribute_hidden;

View File

@ -1,7 +1,4 @@
#include <sunrpc/rpc/pmap_rmt.h> #include <sunrpc/rpc/pmap_rmt.h>
extern bool_t xdr_rmtcall_args_internal (XDR *__xdrs, libc_hidden_proto (xdr_rmtcall_args)
struct rmtcallargs *__crp) libc_hidden_proto (xdr_rmtcallres)
attribute_hidden;
extern bool_t xdr_rmtcallres_internal (XDR *__xdrs, struct rmtcallres *__crp)
attribute_hidden;

View File

@ -7,8 +7,11 @@ libc_hidden_proto (_seterr_reply)
extern bool_t xdr_rejected_reply (XDR *xdrs, struct rejected_reply *rr); extern bool_t xdr_rejected_reply (XDR *xdrs, struct rejected_reply *rr);
extern bool_t xdr_accepted_reply (XDR *xdrs, struct accepted_reply *ar); extern bool_t xdr_accepted_reply (XDR *xdrs, struct accepted_reply *ar);
extern bool_t xdr_callmsg_internal (XDR *__xdrs, struct rpc_msg *__cmsg);
extern bool_t xdr_callhdr_internal (XDR *__xdrs, struct rpc_msg *__cmsg); libc_hidden_proto (xdr_accepted_reply)
extern bool_t xdr_replymsg_internal (XDR *__xdrs, struct rpc_msg *__rmsg); libc_hidden_proto (xdr_callhdr)
libc_hidden_proto (xdr_callmsg)
libc_hidden_proto (xdr_rejected_reply)
libc_hidden_proto (xdr_replymsg)
#endif #endif

View File

@ -10,24 +10,29 @@ libc_hidden_proto (svcerr_noprog)
libc_hidden_proto (svcerr_progvers) libc_hidden_proto (svcerr_progvers)
/* Now define the internal interfaces. */ /* Now define the internal interfaces. */
extern int registerrpc (u_long prognum, u_long versnum, u_long procnum,
char *(*progname) (char *), xdrproc_t inproc,
xdrproc_t outproc);
extern SVCXPRT *svcfd_create (int fd, u_int sendsize, u_int recvsize); extern SVCXPRT *svcfd_create (int fd, u_int sendsize, u_int recvsize);
extern int svcudp_enablecache (SVCXPRT *transp, u_long size); extern int svcudp_enablecache (SVCXPRT *transp, u_long size);
extern SVCXPRT *svcunixfd_create (int fd, u_int sendsize, u_int recvsize); extern SVCXPRT *svcunixfd_create (int fd, u_int sendsize, u_int recvsize);
extern bool_t svc_sendreply_internal (SVCXPRT *xprt, xdrproc_t __xdr_results,
caddr_t __xdr_location) attribute_hidden; libc_hidden_proto (svc_exit)
extern void svcerr_decode_internal (SVCXPRT *__xprt) attribute_hidden; libc_hidden_proto (svc_getreq)
extern void svc_getreq_internal (int __rdfds) attribute_hidden; libc_hidden_proto (svc_getreqset)
extern void svc_getreq_common_internal (const int __fd) attribute_hidden; libc_hidden_proto (svc_run)
extern void svc_getreqset_internal (fd_set *__readfds) attribute_hidden; libc_hidden_proto (svc_sendreply)
extern void svc_getreq_poll_internal (struct pollfd *, libc_hidden_proto (svcerr_decode)
const int) attribute_hidden; libc_hidden_proto (svcerr_noproc)
extern SVCXPRT *svcudp_create_internal (int __sock) attribute_hidden; libc_hidden_proto (svcerr_systemerr)
extern SVCXPRT *svcudp_bufcreate_internal (int __sock, u_int __sendsz, libc_hidden_proto (svcerr_weakauth)
u_int __recvsz) attribute_hidden; libc_hidden_proto (svcfd_create)
libc_hidden_proto (svcraw_create)
libc_hidden_proto (svctcp_create)
libc_hidden_proto (svcudp_bufcreate)
libc_hidden_proto (svcudp_create)
libc_hidden_proto (svcudp_enablecache)
libc_hidden_proto (svcunix_create)
libc_hidden_proto (svcunixfd_create)
libc_hidden_proto (svc_getreq_common)
libc_hidden_proto (svc_getreq_poll)
#endif #endif

View File

@ -6,7 +6,7 @@ extern enum auth_stat _svcauth_unix (struct svc_req *rqst,
struct rpc_msg *msg); struct rpc_msg *msg);
extern enum auth_stat _svcauth_short (struct svc_req *rqst, extern enum auth_stat _svcauth_short (struct svc_req *rqst,
struct rpc_msg *msg); struct rpc_msg *msg);
extern enum auth_stat _authenticate_internal (struct svc_req *__rqst,
struct rpc_msg *__msg) attribute_hidden; libc_hidden_proto (_authenticate)
#endif #endif

View File

@ -1,54 +1,47 @@
#include <sunrpc/rpc/xdr.h> #include <sunrpc/rpc/xdr.h>
extern bool_t xdr_void_internal (void) attribute_hidden;
extern bool_t xdr_bool_internal (XDR *__xdrs, bool_t *__bp) attribute_hidden;
extern bool_t xdr_u_hyper_internal (XDR *__xdrs, u_quad_t *__ullp)
attribute_hidden;
extern bool_t xdr_u_long_internal (XDR *__xdrs, u_long *__ulp)
attribute_hidden;
extern bool_t xdr_u_int_internal (XDR *__xdrs, u_int *__up)
attribute_hidden;
extern bool_t xdr_u_short_internal (XDR *__xdrs, u_short *__usp)
attribute_hidden;
extern bool_t xdr_hyper_internal (XDR *__xdrs, quad_t *__ullp)
attribute_hidden;
extern bool_t xdr_long_internal (XDR *__xdrs, long *__ulp)
attribute_hidden;
extern bool_t xdr_int_internal (XDR *__xdrs, int *__up)
attribute_hidden;
extern bool_t xdr_short_internal (XDR *__xdrs, short *__usp)
attribute_hidden;
extern bool_t xdr_enum_internal (XDR *__xdrs, enum_t *__ep)
attribute_hidden;
extern bool_t xdr_union_internal (XDR *__xdrs, enum_t *__dscmp, char *__unp,
const struct xdr_discrim *choices,
xdrproc_t dfault) attribute_hidden;
extern bool_t xdr_string_internal (XDR *__xdrs, char **__cpp, u_int __maxsize);
extern bool_t xdr_array_internal (XDR * _xdrs, caddr_t *__addrp,
u_int *__sizep, u_int __maxsize,
u_int __elsize, xdrproc_t __elproc)
attribute_hidden;
extern bool_t xdr_reference_internal (XDR *__xdrs, caddr_t *__xpp,
u_int __size, xdrproc_t __proc)
attribute_hidden;
extern bool_t xdr_bytes_internal (XDR *xdrs, char **cpp, u_int *sizep,
u_int maxsize) attribute_hidden;
extern bool_t xdr_netobj_internal (XDR *__xdrs, struct netobj *__np)
attribute_hidden;
extern bool_t xdr_opaque_internal (XDR *__xdrs, caddr_t __cp, u_int __cnt)
attribute_hidden;
extern void xdrrec_create_internal (XDR *__xdrs, u_int __sendsize,
u_int __recvsize, caddr_t __tcp_handle,
int (*__readit) (char *, char *, int),
int (*__writeit) (char *, char *, int))
attribute_hidden;
extern void xdrmem_create_internal (XDR *, const caddr_t, u_int, enum xdr_op)
attribute_hidden;
extern bool_t xdrrec_endofrecord_internal (XDR *__xdrs, bool_t __sendnow)
attribute_hidden;
extern bool_t xdrrec_skiprecord_internal (XDR *__xdrs)
attribute_hidden;
extern bool_t xdrrec_eof_internal (XDR *__xdrs)
attribute_hidden;
libc_hidden_proto (xdrstdio_create) libc_hidden_proto (xdrstdio_create)
libc_hidden_proto (xdr_array)
libc_hidden_proto (xdr_bool)
libc_hidden_proto (xdr_bytes)
libc_hidden_proto (xdr_char)
libc_hidden_proto (xdr_double)
libc_hidden_proto (xdr_enum)
libc_hidden_proto (xdr_float)
libc_hidden_proto (xdr_free)
libc_hidden_proto (xdr_int)
libc_hidden_proto (xdr_long)
libc_hidden_proto (xdr_netobj)
libc_hidden_proto (xdr_opaque)
libc_hidden_proto (xdr_pointer)
libc_hidden_proto (xdr_reference)
libc_hidden_proto (xdr_short)
libc_hidden_proto (xdr_string)
libc_hidden_proto (xdr_u_char)
libc_hidden_proto (xdr_u_int)
libc_hidden_proto (xdr_u_long)
libc_hidden_proto (xdr_u_short)
libc_hidden_proto (xdr_union)
libc_hidden_proto (xdr_vector)
libc_hidden_proto (xdr_void)
libc_hidden_proto (xdr_wrapstring)
libc_hidden_proto (xdrmem_create)
libc_hidden_proto (xdrrec_create)
libc_hidden_proto (xdrrec_endofrecord)
libc_hidden_proto (xdrrec_eof)
libc_hidden_proto (xdrrec_skiprecord)
libc_hidden_proto (xdr_int16_t)
libc_hidden_proto (xdr_int32_t)
libc_hidden_proto (xdr_int8_t)
libc_hidden_proto (xdr_sizeof)
libc_hidden_proto (xdr_uint16_t)
libc_hidden_proto (xdr_uint32_t)
libc_hidden_proto (xdr_uint8_t)
libc_hidden_proto (xdr_hyper)
libc_hidden_proto (xdr_u_hyper)
libc_hidden_proto (xdr_longlong_t)
libc_hidden_proto (xdr_u_longlong_t)
libc_hidden_proto (xdr_int64_t)
libc_hidden_proto (xdr_uint64_t)
libc_hidden_proto (xdr_quad_t)
libc_hidden_proto (xdr_u_quad_t)

View File

@ -1,4 +1,4 @@
# Copyright (C) 1996,1997,1998,2001,2004,2006 Free Software Foundation, Inc. # Copyright (C) 1996-1998,2001,2004,2006,2011 Free Software Foundation, Inc.
# This file is part of the GNU C Library. # This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or # The GNU C Library is free software; you can redistribute it and/or
@ -45,9 +45,9 @@ subdir-dirs = $(services:%=nss_%)
vpath %.c $(subdir-dirs) vpath %.c $(subdir-dirs)
libnsl-routines = yp_xdr ypclnt ypupdate_xdr \ libnsl-routines = yp_xdr ypclnt ypupdate_xdr \
nis_subr nis_local_names nis_free nis_file \ nis_subr nis_local_names nis_free nis_file \
nis_print nis_error nis_call nis_lookup\ nis_print nis_error nis_call nis_lookup\
nis_table nis_xdr nis_server nis_ping \ nis_table nis_xdr nis_server nis_ping \
nis_checkpoint nis_mkdir nis_rmdir nis_getservlist\ nis_checkpoint nis_mkdir nis_rmdir nis_getservlist\
nis_verifygroup nis_ismember nis_addmember nis_util\ nis_verifygroup nis_ismember nis_addmember nis_util\
nis_removemember nis_creategroup nis_destroygroup\ nis_removemember nis_creategroup nis_destroygroup\
@ -78,7 +78,8 @@ $(objpfx)libnss_nisplus.so: $(objpfx)libnsl.so$(libnsl.so-version)
# Depend on libc.so so a DT_NEEDED is generated in the shared objects. # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
# This ensures they will load libc.so for needed symbols if loaded by # This ensures they will load libc.so for needed symbols if loaded by
# a statically-linked program that hasn't already loaded it. # a statically-linked program that hasn't already loaded it.
$(services:%=$(objpfx)libnss_%.so) $(objpfx)libnsl.so: $(common-objpfx)libc.so\ libnsl-libc = $(common-objpfx)linkobj/libc.so
$(services:%=$(objpfx)libnss_%.so) $(objpfx)libnsl.so: $(libnsl-libc) \
$(common-objpfx)libc_nonshared.a $(common-objpfx)libc_nonshared.a

View File

@ -1,4 +1,4 @@
# Copyright (C) 1996-1998,2000-2002,2007,2009,2010 # Copyright (C) 1996-1998,2000-2002,2007,2009,2010,2011
# Free Software Foundation, Inc. # Free Software Foundation, Inc.
# This file is part of the GNU C Library. # This file is part of the GNU C Library.
@ -83,7 +83,8 @@ endif
# Depend on libc.so so a DT_NEEDED is generated in the shared objects. # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
# This ensures they will load libc.so for needed symbols if loaded by # This ensures they will load libc.so for needed symbols if loaded by
# a statically-linked program that hasn't already loaded it. # a statically-linked program that hasn't already loaded it.
$(services:%=$(objpfx)libnss_%.so): $(common-objpfx)libc.so \ libnss-libc = $(common-objpfx)linkobj/libc.so
$(services:%=$(objpfx)libnss_%.so): $(libnss-libc) \
$(common-objpfx)libc_nonshared.a $(common-objpfx)libc_nonshared.a

View File

@ -1,4 +1,4 @@
# Copyright (C) 1994-2004, 2005, 2006 Free Software Foundation, Inc. # Copyright (C) 1994-2004, 2005, 2006, 2011 Free Software Foundation, Inc.
# This file is part of the GNU C Library. # This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or # The GNU C Library is free software; you can redistribute it and/or
@ -47,44 +47,52 @@ subdir := sunrpc
rpcsvc = bootparam_prot.x nlm_prot.x rstat.x \ rpcsvc = bootparam_prot.x nlm_prot.x rstat.x \
yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \ yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
rusers.x spray.x nfs_prot.x rquota.x key_prot.x rusers.x spray.x nfs_prot.x rquota.x key_prot.x
headers = $(addprefix rpc/,auth.h auth_unix.h clnt.h netdb.h pmap_clnt.h \ headers_in_tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \
pmap_prot.h pmap_rmt.h rpc.h rpc_msg.h svc.h \ pmap_prot.h pmap_rmt.h rpc.h rpc_msg.h \
svc_auth.h types.h xdr.h auth_des.h \ svc.h svc_auth.h types.h xdr.h auth_des.h \
des_crypt.h key_prot.h rpc_des.h) \ des_crypt.h)
$(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h headers_not_in_tirpc = $(addprefix rpc/,netdb.h key_prot.h rpc_des.h) \
$(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
install-others = $(inst_sysconfdir)/rpc install-others = $(inst_sysconfdir)/rpc
generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \ generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
$(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
generated-dirs := rpcsvc generated-dirs := rpcsvc
routines := auth_none auth_unix authuxprot bindrsvprt \ include ../Makeconfig
clnt_gen clnt_perr clnt_raw clnt_simp clnt_tcp \
clnt_udp rpc_dtable get_myaddr getrpcport \
pmap_clnt pm_getmaps pm_getport pmap_prot \
pmap_prot2 pmap_rmt rpc_prot rpc_common rpc_cmsg rpc_thread \
svc svc_auth svc_authux svc_raw svc_run svc_simple \
svc_tcp svc_udp xdr xdr_array xdr_float xdr_mem \
xdr_rec xdr_ref xdr_stdio publickey xdr_sizeof \
auth_des authdes_prot des_crypt des_impl des_soft \
key_call key_prot netname openchild rtime svcauth_des xcrypt\
clnt_unix svc_unix create_xid xdr_intXX_t
others := rpcinfo ifeq ($(versioning),yes)
need-export-routines := auth_des auth_unix clnt_gen clnt_perr clnt_tcp \
clnt_udp get_myaddr key_call netname pm_getport \
rpc_thread svc svc_tcp svc_udp xcrypt xdr_array xdr \
xdr_intXX_t xdr_mem xdr_ref xdr_sizeof xdr_stdio
routines := auth_none authuxprot bindrsvprt clnt_raw clnt_simp \
rpc_dtable getrpcport pmap_clnt pm_getmaps pmap_prot pmap_prot2 \
pmap_rmt rpc_prot rpc_common rpc_cmsg svc_auth svc_authux svc_raw \
svc_run svc_simple xdr_float xdr_rec publickey authdes_prot \
des_crypt des_impl des_soft key_prot openchild rtime svcauth_des \
clnt_unix svc_unix create_xid $(need-export-routines)
# We only add the RPC for compatibility to libc.so.
shared-only-routines = $(routines)
endif
# We do not build rpcinfo anymore. It is not needed for a bootstrap
# and not wanted on complete systems.
# others := rpcinfo
# install-sbin := rpcinfo
install-bin := rpcgen install-bin := rpcgen
install-sbin := rpcinfo
rpcgen-objs = rpc_main.o rpc_hout.o rpc_cout.o rpc_parse.o \ rpcgen-objs = rpc_main.o rpc_hout.o rpc_cout.o rpc_parse.o \
rpc_scan.o rpc_util.o rpc_svcout.o rpc_clntout.o \ rpc_scan.o rpc_util.o rpc_svcout.o rpc_clntout.o \
rpc_tblout.o rpc_sample.o rpc_tblout.o rpc_sample.o
# These headers are part of rpcgen. # These headers are part of rpcgen.
distribute := proto.h rpc_util.h rpc_parse.h rpc_scan.h \ distribute := proto.h rpc_util.h rpc_parse.h rpc_scan.h \
$(headers_in_tirpc) $(headers_not_in_tirpc) \
$(rpcgen-objs:.o=.c) etc.rpc \ $(rpcgen-objs:.o=.c) etc.rpc \
errqueue.h errqueue.h
extra-objs = $(rpcgen-objs) extra-objs = $(rpcgen-objs)
all: # Make this the default target; it will be defined in Rules. all: # Make this the default target; it will be defined in Rules.
include ../Makeconfig
tests = tst-xdrmem tst-xdrmem2 tests = tst-xdrmem tst-xdrmem2
xtests := tst-getmyaddr xtests := tst-getmyaddr
@ -108,6 +116,17 @@ librpcsvc-inhibit-o = .os # Build no shared rpcsvc library.
omit-deps = $(librpcsvc-routines) omit-deps = $(librpcsvc-routines)
endif endif
ifeq (yes,$(build-shared))
rpc-compat-routines = $(addprefix compat-,$(need-export-routines))
rpc-compat-routines.os = $(addprefix $(objpfx), \
$(addsuffix .os,$(rpc-compat-routines)))
subdir_lib: $(objpfx)librpc_compat_pic.a
$(objpfx)librpc_compat_pic.a: $(rpc-compat-routines.os)
$(AR) cr$(verbose) $@ $^
$(rpc-compat-routines.os): $(objpfx)compat-%.os: %.c
$(compile-command.c) -DEXPORT_RPC_SYMBOLS
endif
CFLAGS-xbootparam_prot.c = -Wno-unused $(PIC-ccflag) CFLAGS-xbootparam_prot.c = -Wno-unused $(PIC-ccflag)
CFLAGS-xnlm_prot.c = -Wno-unused $(PIC-ccflag) CFLAGS-xnlm_prot.c = -Wno-unused $(PIC-ccflag)
CFLAGS-xrstat.c = -Wno-unused $(PIC-ccflag) CFLAGS-xrstat.c = -Wno-unused $(PIC-ccflag)
@ -131,6 +150,10 @@ CPPFLAGS += -D_RPC_THREAD_SAFE_
include ../Rules include ../Rules
$(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so
$(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so
$(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so
$(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) \ $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) \
$(sort $(filter $(common-objpfx)libc%,$(link-libc))) \ $(sort $(filter $(common-objpfx)libc%,$(link-libc))) \
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit) $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)

View File

@ -51,8 +51,6 @@
#define debug(msg) /* printf("%s\n", msg) */ #define debug(msg) /* printf("%s\n", msg) */
extern bool_t INTUSE(xdr_authdes_cred) (XDR *, struct authdes_cred *);
extern bool_t INTUSE(xdr_authdes_verf) (XDR *, struct authdes_verf *);
/* /*
* DES authenticator operations vector * DES authenticator operations vector
@ -79,8 +77,8 @@ static const struct auth_ops authdes_ops = {
*/ */
struct ad_private { struct ad_private {
char *ad_fullname; /* client's full name */ char *ad_fullname; /* client's full name */
u_int ad_fullnamelen; /* length of name, rounded up */ u_int ad_fullnamelen; /* length of name, rounded up */
char *ad_servername; /* server's full name */ char *ad_servername; /* server's full name */
u_int ad_servernamelen; /* length of name, rounded up */ u_int ad_servernamelen; /* length of name, rounded up */
uint32_t ad_window; /* client specified window */ uint32_t ad_window; /* client specified window */
bool_t ad_dosync; /* synchronize? */ bool_t ad_dosync; /* synchronize? */
@ -91,7 +89,7 @@ struct ad_private {
struct authdes_verf ad_verf; /* storage for verifier */ struct authdes_verf ad_verf; /* storage for verifier */
struct rpc_timeval ad_timestamp; /* timestamp sent */ struct rpc_timeval ad_timestamp; /* timestamp sent */
des_block ad_xkey; /* encrypted conversation key */ des_block ad_xkey; /* encrypted conversation key */
u_char ad_pkey[1024]; /* Servers actual public key */ u_char ad_pkey[1024]; /* Servers actual public key */
}; };
@ -114,8 +112,13 @@ authdes_create (const char *servername, u_int window,
pkey.n_bytes = pkey_data; pkey.n_bytes = pkey_data;
pkey.n_len = strlen (pkey_data) + 1; pkey.n_len = strlen (pkey_data) + 1;
return INTUSE(authdes_pk_create) (servername, &pkey, window, syncaddr, ckey); return authdes_pk_create (servername, &pkey, window, syncaddr, ckey);
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (authdes_create)
#else
libc_hidden_nolink (authdes_create, GLIBC_2_1)
#endif
AUTH * AUTH *
authdes_pk_create (const char *servername, netobj *pkey, u_int window, authdes_pk_create (const char *servername, netobj *pkey, u_int window,
@ -205,7 +208,11 @@ failed:
} }
return NULL; return NULL;
} }
INTDEF(authdes_pk_create) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (authdes_pk_create)
#else
libc_hidden_nolink (authdes_pk_create, GLIBC_2_1)
#endif
/* /*
* Implement the five authentication operations * Implement the five authentication operations
@ -309,7 +316,7 @@ authdes_marshal (AUTH *auth, XDR *xdrs)
ATTEMPT (xdr_putint32 (xdrs, &auth->ah_cred.oa_flavor)); ATTEMPT (xdr_putint32 (xdrs, &auth->ah_cred.oa_flavor));
ATTEMPT (xdr_putint32 (xdrs, &len)); ATTEMPT (xdr_putint32 (xdrs, &len));
} }
ATTEMPT (INTUSE(xdr_authdes_cred) (xdrs, cred)); ATTEMPT (xdr_authdes_cred (xdrs, cred));
len = (2 + 1) * BYTES_PER_XDR_UNIT; len = (2 + 1) * BYTES_PER_XDR_UNIT;
if ((ixdr = xdr_inline (xdrs, 2 * BYTES_PER_XDR_UNIT)) != NULL) if ((ixdr = xdr_inline (xdrs, 2 * BYTES_PER_XDR_UNIT)) != NULL)
@ -322,7 +329,7 @@ authdes_marshal (AUTH *auth, XDR *xdrs)
ATTEMPT (xdr_putint32 (xdrs, &auth->ah_verf.oa_flavor)); ATTEMPT (xdr_putint32 (xdrs, &auth->ah_verf.oa_flavor));
ATTEMPT (xdr_putint32 (xdrs, &len)); ATTEMPT (xdr_putint32 (xdrs, &len));
} }
ATTEMPT (INTUSE(xdr_authdes_verf) (xdrs, verf)); ATTEMPT (xdr_authdes_verf (xdrs, verf));
return TRUE; return TRUE;
} }

View File

@ -81,10 +81,10 @@ authnone_create_once (void)
ap->no_client.ah_cred = ap->no_client.ah_verf = _null_auth; ap->no_client.ah_cred = ap->no_client.ah_verf = _null_auth;
ap->no_client.ah_ops = (struct auth_ops *) &ops; ap->no_client.ah_ops = (struct auth_ops *) &ops;
xdrs = &xdr_stream; xdrs = &xdr_stream;
INTUSE(xdrmem_create) (xdrs, ap->marshalled_client, xdrmem_create (xdrs, ap->marshalled_client,
(u_int) MAX_MARSHAL_SIZE, XDR_ENCODE); (u_int) MAX_MARSHAL_SIZE, XDR_ENCODE);
(void) INTUSE(xdr_opaque_auth) (xdrs, &ap->no_client.ah_cred); (void) xdr_opaque_auth (xdrs, &ap->no_client.ah_cred);
(void) INTUSE(xdr_opaque_auth) (xdrs, &ap->no_client.ah_verf); (void) xdr_opaque_auth (xdrs, &ap->no_client.ah_verf);
ap->mcnt = XDR_GETPOS (xdrs); ap->mcnt = XDR_GETPOS (xdrs);
XDR_DESTROY (xdrs); XDR_DESTROY (xdrs);
} }
@ -95,7 +95,7 @@ authnone_create (void)
__libc_once (authnone_private_guard, authnone_create_once); __libc_once (authnone_private_guard, authnone_create_once);
return &authnone_private.no_client; return &authnone_private.no_client;
} }
INTDEF (authnone_create) libc_hidden_nolink (authnone_create, GLIBC_2_0)
static bool_t static bool_t
authnone_marshal (AUTH *client, XDR *xdrs) authnone_marshal (AUTH *client, XDR *xdrs)

View File

@ -134,8 +134,8 @@ no_memory:
/* /*
* Serialize the parameters into origcred * Serialize the parameters into origcred
*/ */
INTUSE(xdrmem_create) (&xdrs, mymem, MAX_AUTH_BYTES, XDR_ENCODE); xdrmem_create (&xdrs, mymem, MAX_AUTH_BYTES, XDR_ENCODE);
if (!INTUSE(xdr_authunix_parms) (&xdrs, &aup)) if (!xdr_authunix_parms (&xdrs, &aup))
abort (); abort ();
au->au_origcred.oa_length = len = XDR_GETPOS (&xdrs); au->au_origcred.oa_length = len = XDR_GETPOS (&xdrs);
au->au_origcred.oa_flavor = AUTH_UNIX; au->au_origcred.oa_flavor = AUTH_UNIX;
@ -151,7 +151,7 @@ no_memory:
marshal_new_auth (auth); marshal_new_auth (auth);
return auth; return auth;
} }
INTDEF (authunix_create) libc_hidden_nolink (authunix_create, GLIBC_2_0)
/* /*
* Returns an auth handle with parameters determined by doing lots of * Returns an auth handle with parameters determined by doing lots of
@ -208,15 +208,18 @@ authunix_create_default (void)
/* This braindamaged Sun code forces us here to truncate the /* This braindamaged Sun code forces us here to truncate the
list of groups to NGRPS members since the code in list of groups to NGRPS members since the code in
authuxprot.c transforms a fixed array. Grrr. */ authuxprot.c transforms a fixed array. Grrr. */
AUTH *result = INTUSE(authunix_create) (machname, uid, gid, MIN (NGRPS, len), AUTH *result = authunix_create (machname, uid, gid, MIN (NGRPS, len), gids);
gids);
if (max_nr_groups >= ALLOCA_LIMIT || retry) if (max_nr_groups >= ALLOCA_LIMIT || retry)
free (gids); free (gids);
return result; return result;
} }
INTDEF (authunix_create_default) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (authunix_create_default)
#else
libc_hidden_nolink (authunix_create_default, GLIBC_2_0)
#endif
/* /*
* authunix operations * authunix operations
@ -245,8 +248,7 @@ authunix_validate (AUTH *auth, struct opaque_auth *verf)
if (verf->oa_flavor == AUTH_SHORT) if (verf->oa_flavor == AUTH_SHORT)
{ {
au = AUTH_PRIVATE (auth); au = AUTH_PRIVATE (auth);
INTUSE(xdrmem_create) (&xdrs, verf->oa_base, verf->oa_length, xdrmem_create (&xdrs, verf->oa_base, verf->oa_length, XDR_DECODE);
XDR_DECODE);
if (au->au_shcred.oa_base != NULL) if (au->au_shcred.oa_base != NULL)
{ {
@ -254,14 +256,14 @@ authunix_validate (AUTH *auth, struct opaque_auth *verf)
au->au_shcred.oa_length); au->au_shcred.oa_length);
au->au_shcred.oa_base = NULL; au->au_shcred.oa_base = NULL;
} }
if (INTUSE(xdr_opaque_auth) (&xdrs, &au->au_shcred)) if (xdr_opaque_auth (&xdrs, &au->au_shcred))
{ {
auth->ah_cred = au->au_shcred; auth->ah_cred = au->au_shcred;
} }
else else
{ {
xdrs.x_op = XDR_FREE; xdrs.x_op = XDR_FREE;
(void) INTUSE(xdr_opaque_auth) (&xdrs, &au->au_shcred); (void) xdr_opaque_auth (&xdrs, &au->au_shcred);
au->au_shcred.oa_base = NULL; au->au_shcred.oa_base = NULL;
auth->ah_cred = au->au_origcred; auth->ah_cred = au->au_origcred;
} }
@ -289,9 +291,9 @@ authunix_refresh (AUTH *auth)
/* first deserialize the creds back into a struct authunix_parms */ /* first deserialize the creds back into a struct authunix_parms */
aup.aup_machname = NULL; aup.aup_machname = NULL;
aup.aup_gids = (gid_t *) NULL; aup.aup_gids = (gid_t *) NULL;
INTUSE(xdrmem_create) (&xdrs, au->au_origcred.oa_base, xdrmem_create (&xdrs, au->au_origcred.oa_base,
au->au_origcred.oa_length, XDR_DECODE); au->au_origcred.oa_length, XDR_DECODE);
stat = INTUSE(xdr_authunix_parms) (&xdrs, &aup); stat = xdr_authunix_parms (&xdrs, &aup);
if (!stat) if (!stat)
goto done; goto done;
@ -300,7 +302,7 @@ authunix_refresh (AUTH *auth)
aup.aup_time = now.tv_sec; aup.aup_time = now.tv_sec;
xdrs.x_op = XDR_ENCODE; xdrs.x_op = XDR_ENCODE;
XDR_SETPOS (&xdrs, 0); XDR_SETPOS (&xdrs, 0);
stat = INTUSE(xdr_authunix_parms) (&xdrs, &aup); stat = xdr_authunix_parms (&xdrs, &aup);
if (!stat) if (!stat)
goto done; goto done;
auth->ah_cred = au->au_origcred; auth->ah_cred = au->au_origcred;
@ -308,7 +310,7 @@ authunix_refresh (AUTH *auth)
done: done:
/* free the struct authunix_parms created by deserializing */ /* free the struct authunix_parms created by deserializing */
xdrs.x_op = XDR_FREE; xdrs.x_op = XDR_FREE;
(void) INTUSE(xdr_authunix_parms) (&xdrs, &aup); (void) xdr_authunix_parms (&xdrs, &aup);
XDR_DESTROY (&xdrs); XDR_DESTROY (&xdrs);
return stat; return stat;
} }
@ -343,9 +345,9 @@ marshal_new_auth (AUTH *auth)
XDR *xdrs = &xdr_stream; XDR *xdrs = &xdr_stream;
struct audata *au = AUTH_PRIVATE (auth); struct audata *au = AUTH_PRIVATE (auth);
INTUSE(xdrmem_create) (xdrs, au->au_marshed, MAX_AUTH_BYTES, XDR_ENCODE); xdrmem_create (xdrs, au->au_marshed, MAX_AUTH_BYTES, XDR_ENCODE);
if ((!INTUSE(xdr_opaque_auth) (xdrs, &(auth->ah_cred))) || if ((!xdr_opaque_auth (xdrs, &(auth->ah_cred))) ||
(!INTUSE(xdr_opaque_auth) (xdrs, &(auth->ah_verf)))) (!xdr_opaque_auth (xdrs, &(auth->ah_verf))))
perror (_("auth_unix.c: Fatal marshalling problem")); perror (_("auth_unix.c: Fatal marshalling problem"));
else else
au->au_mpos = XDR_GETPOS (xdrs); au->au_mpos = XDR_GETPOS (xdrs);

View File

@ -45,26 +45,25 @@ xdr_authdes_cred (XDR *xdrs, struct authdes_cred *cred)
/* /*
* Unrolled xdr * Unrolled xdr
*/ */
ATTEMPT (INTUSE(xdr_enum) (xdrs, (enum_t *) & cred->adc_namekind)); ATTEMPT (xdr_enum (xdrs, (enum_t *) & cred->adc_namekind));
switch (cred->adc_namekind) switch (cred->adc_namekind)
{ {
case ADN_FULLNAME: case ADN_FULLNAME:
ATTEMPT (INTUSE(xdr_string) (xdrs, &cred->adc_fullname.name, ATTEMPT (xdr_string (xdrs, &cred->adc_fullname.name, MAXNETNAMELEN));
MAXNETNAMELEN)); ATTEMPT (xdr_opaque (xdrs, (caddr_t) & cred->adc_fullname.key,
ATTEMPT (INTUSE(xdr_opaque) (xdrs, (caddr_t) & cred->adc_fullname.key, sizeof (des_block)));
sizeof (des_block))); ATTEMPT (xdr_opaque (xdrs, (caddr_t) & cred->adc_fullname.window,
ATTEMPT (INTUSE(xdr_opaque) (xdrs, (caddr_t) & cred->adc_fullname.window, sizeof (cred->adc_fullname.window)));
sizeof (cred->adc_fullname.window)));
return (TRUE); return (TRUE);
case ADN_NICKNAME: case ADN_NICKNAME:
ATTEMPT (INTUSE(xdr_opaque) (xdrs, (caddr_t) & cred->adc_nickname, ATTEMPT (xdr_opaque (xdrs, (caddr_t) & cred->adc_nickname,
sizeof (cred->adc_nickname))); sizeof (cred->adc_nickname)));
return TRUE; return TRUE;
default: default:
return FALSE; return FALSE;
} }
} }
INTDEF(xdr_authdes_cred) libc_hidden_nolink (xdr_authdes_cred, GLIBC_2_1)
bool_t bool_t
@ -73,10 +72,10 @@ xdr_authdes_verf (register XDR *xdrs, register struct authdes_verf *verf)
/* /*
* Unrolled xdr * Unrolled xdr
*/ */
ATTEMPT (INTUSE(xdr_opaque) (xdrs, (caddr_t) & verf->adv_xtimestamp, ATTEMPT (xdr_opaque (xdrs, (caddr_t) & verf->adv_xtimestamp,
sizeof (des_block))); sizeof (des_block)));
ATTEMPT (INTUSE(xdr_opaque) (xdrs, (caddr_t) & verf->adv_int_u, ATTEMPT (xdr_opaque (xdrs, (caddr_t) & verf->adv_int_u,
sizeof (verf->adv_int_u))); sizeof (verf->adv_int_u)));
return TRUE; return TRUE;
} }
INTDEF(xdr_authdes_verf) libc_hidden_nolink (xdr_authdes_verf, GLIBC_2_1)

View File

@ -45,22 +45,22 @@
bool_t bool_t
xdr_authunix_parms (XDR * xdrs, struct authunix_parms *p) xdr_authunix_parms (XDR * xdrs, struct authunix_parms *p)
{ {
if (INTUSE(xdr_u_long) (xdrs, &(p->aup_time)) if (xdr_u_long (xdrs, &(p->aup_time))
&& INTUSE(xdr_string) (xdrs, &(p->aup_machname), MAX_MACHINE_NAME) && xdr_string (xdrs, &(p->aup_machname), MAX_MACHINE_NAME)
&& (sizeof (uid_t) == sizeof (short int) && (sizeof (uid_t) == sizeof (short int)
? INTUSE(xdr_u_short) (xdrs, (u_short *) & (p->aup_uid)) ? xdr_u_short (xdrs, (u_short *) & (p->aup_uid))
: INTUSE(xdr_u_int) (xdrs, (u_int *) & (p->aup_uid))) : xdr_u_int (xdrs, (u_int *) & (p->aup_uid)))
&& (sizeof (gid_t) == sizeof (short int) && (sizeof (gid_t) == sizeof (short int)
? INTUSE(xdr_u_short) (xdrs, (u_short *) & (p->aup_gid)) ? xdr_u_short (xdrs, (u_short *) & (p->aup_gid))
: INTUSE(xdr_u_int) (xdrs, (u_int *) & (p->aup_gid))) : xdr_u_int (xdrs, (u_int *) & (p->aup_gid)))
&& INTUSE(xdr_array) (xdrs, (caddr_t *) & (p->aup_gids), && xdr_array (xdrs, (caddr_t *) & (p->aup_gids),
& (p->aup_len), NGRPS, sizeof (gid_t), & (p->aup_len), NGRPS, sizeof (gid_t),
(sizeof (gid_t) == sizeof (short int) (sizeof (gid_t) == sizeof (short int)
? (xdrproc_t) INTUSE(xdr_u_short) ? (xdrproc_t) xdr_u_short
: (xdrproc_t) INTUSE(xdr_u_int)))) : (xdrproc_t) xdr_u_int)))
{ {
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
} }
INTDEF(xdr_authunix_parms) libc_hidden_nolink (xdr_authunix_parms, GLIBC_2_0)

View File

@ -64,7 +64,7 @@ clnt_create (const char *hostname, u_long prog, u_long vers,
sun.sun_family = AF_UNIX; sun.sun_family = AF_UNIX;
strcpy (sun.sun_path, hostname); strcpy (sun.sun_path, hostname);
sock = RPC_ANYSOCK; sock = RPC_ANYSOCK;
client = INTUSE(clntunix_create) (&sun, prog, vers, &sock, 0, 0); client = clntunix_create (&sun, prog, vers, &sock, 0, 0);
if (client == NULL) if (client == NULL)
return NULL; return NULL;
#if 0 #if 0
@ -134,7 +134,7 @@ clnt_create (const char *hostname, u_long prog, u_long vers,
case IPPROTO_UDP: case IPPROTO_UDP:
tv.tv_sec = 5; tv.tv_sec = 5;
tv.tv_usec = 0; tv.tv_usec = 0;
client = INTUSE(clntudp_create) (&sin, prog, vers, tv, &sock); client = clntudp_create (&sin, prog, vers, tv, &sock);
if (client == NULL) if (client == NULL)
{ {
return NULL; return NULL;
@ -148,7 +148,7 @@ clnt_create (const char *hostname, u_long prog, u_long vers,
#endif #endif
break; break;
case IPPROTO_TCP: case IPPROTO_TCP:
client = INTUSE(clnttcp_create) (&sin, prog, vers, &sock, 0, 0); client = clnttcp_create (&sin, prog, vers, &sock, 0, 0);
if (client == NULL) if (client == NULL)
{ {
return NULL; return NULL;
@ -172,4 +172,8 @@ clnt_create (const char *hostname, u_long prog, u_long vers,
} }
return client; return client;
} }
INTDEF (clnt_create) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (clnt_create)
#else
libc_hidden_nolink (clnt_create, GLIBC_2_0)
#endif

View File

@ -130,14 +130,18 @@ clnt_sperror (CLIENT * rpch, const char *msg)
return str; return str;
} }
libc_hidden_def (clnt_sperror) libc_hidden_nolink (clnt_sperror, GLIBC_2_0)
void void
clnt_perror (CLIENT * rpch, const char *msg) clnt_perror (CLIENT * rpch, const char *msg)
{ {
(void) __fxprintf (NULL, "%s", clnt_sperror (rpch, msg)); (void) __fxprintf (NULL, "%s", clnt_sperror (rpch, msg));
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (clnt_perror) libc_hidden_def (clnt_perror)
#else
libc_hidden_nolink (clnt_perror, GLIBC_2_0)
#endif
struct rpc_errtab struct rpc_errtab
@ -266,7 +270,7 @@ clnt_perrno (enum clnt_stat num)
{ {
(void) __fxprintf (NULL, "%s", clnt_sperrno (num)); (void) __fxprintf (NULL, "%s", clnt_sperrno (num));
} }
libc_hidden_nolink (clnt_perrno, GLIBC_2_0)
char * char *
clnt_spcreateerror (const char *msg) clnt_spcreateerror (const char *msg)
@ -303,13 +307,18 @@ clnt_spcreateerror (const char *msg)
return str; return str;
} }
libc_hidden_def (clnt_spcreateerror) libc_hidden_nolink (clnt_spcreateerror, GLIBC_2_0)
void void
clnt_pcreateerror (const char *msg) clnt_pcreateerror (const char *msg)
{ {
(void) __fxprintf (NULL, "%s", clnt_spcreateerror (msg)); (void) __fxprintf (NULL, "%s", clnt_spcreateerror (msg));
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (clnt_pcreateerror)
#else
libc_hidden_nolink (clnt_pcreateerror, GLIBC_2_0)
#endif
struct auth_errtab struct auth_errtab
{ {

View File

@ -109,9 +109,8 @@ clntraw_create (u_long prog, u_long vers)
call_msg.rm_call.cb_rpcvers = RPC_MSG_VERSION; call_msg.rm_call.cb_rpcvers = RPC_MSG_VERSION;
call_msg.rm_call.cb_prog = prog; call_msg.rm_call.cb_prog = prog;
call_msg.rm_call.cb_vers = vers; call_msg.rm_call.cb_vers = vers;
INTUSE(xdrmem_create) (xdrs, clp->mashl_callmsg.msg, MCALL_MSG_SIZE, xdrmem_create (xdrs, clp->mashl_callmsg.msg, MCALL_MSG_SIZE, XDR_ENCODE);
XDR_ENCODE); if (!xdr_callhdr (xdrs, &call_msg))
if (!INTUSE(xdr_callhdr) (xdrs, &call_msg))
{ {
perror (_ ("clnt_raw.c: fatal header serialization error")); perror (_ ("clnt_raw.c: fatal header serialization error"));
} }
@ -121,15 +120,16 @@ clntraw_create (u_long prog, u_long vers)
/* /*
* Set xdrmem for client/server shared buffer * Set xdrmem for client/server shared buffer
*/ */
INTUSE(xdrmem_create) (xdrs, clp->_raw_buf, UDPMSGSIZE, XDR_FREE); xdrmem_create (xdrs, clp->_raw_buf, UDPMSGSIZE, XDR_FREE);
/* /*
* create client handle * create client handle
*/ */
client->cl_ops = (struct clnt_ops *) &client_ops; client->cl_ops = (struct clnt_ops *) &client_ops;
client->cl_auth = INTUSE(authnone_create) (); client->cl_auth = authnone_create ();
return client; return client;
} }
libc_hidden_nolink (clntraw_create, GLIBC_2_0)
static enum clnt_stat static enum clnt_stat
clntraw_call (h, proc, xargs, argsp, xresults, resultsp, timeout) clntraw_call (h, proc, xargs, argsp, xresults, resultsp, timeout)
@ -172,7 +172,7 @@ call_again:
* We have to call server input routine here because this is * We have to call server input routine here because this is
* all going on in one process. Yuk. * all going on in one process. Yuk.
*/ */
INTUSE(svc_getreq) (1); svc_getreq (1);
/* /*
* get results * get results
@ -182,7 +182,7 @@ call_again:
msg.acpted_rply.ar_verf = _null_auth; msg.acpted_rply.ar_verf = _null_auth;
msg.acpted_rply.ar_results.where = resultsp; msg.acpted_rply.ar_results.where = resultsp;
msg.acpted_rply.ar_results.proc = xresults; msg.acpted_rply.ar_results.proc = xresults;
if (!INTUSE(xdr_replymsg) (xdrs, &msg)) if (!xdr_replymsg (xdrs, &msg))
return RPC_CANTDECODERES; return RPC_CANTDECODERES;
_seterr_reply (&msg, &error); _seterr_reply (&msg, &error);
status = error.re_status; status = error.re_status;
@ -209,7 +209,7 @@ call_again:
if (msg.acpted_rply.ar_verf.oa_base != NULL) if (msg.acpted_rply.ar_verf.oa_base != NULL)
{ {
xdrs->x_op = XDR_FREE; xdrs->x_op = XDR_FREE;
(void) INTUSE(xdr_opaque_auth) (xdrs, &(msg.acpted_rply.ar_verf)); (void) xdr_opaque_auth (xdrs, &(msg.acpted_rply.ar_verf));
} }
} }

View File

@ -119,7 +119,7 @@ callrpc (const char *host, u_long prognum, u_long versnum, u_long procnum,
memcpy ((char *) &server_addr.sin_addr, hp->h_addr, hp->h_length); memcpy ((char *) &server_addr.sin_addr, hp->h_addr, hp->h_length);
server_addr.sin_family = AF_INET; server_addr.sin_family = AF_INET;
server_addr.sin_port = 0; server_addr.sin_port = 0;
if ((crp->client = INTUSE(clntudp_create) (&server_addr, (u_long) prognum, if ((crp->client = clntudp_create (&server_addr, (u_long) prognum,
(u_long) versnum, timeout, &crp->socket)) == NULL) (u_long) versnum, timeout, &crp->socket)) == NULL)
return (int) get_rpc_createerr().cf_stat; return (int) get_rpc_createerr().cf_stat;
crp->valid = 1; crp->valid = 1;
@ -139,6 +139,7 @@ callrpc (const char *host, u_long prognum, u_long versnum, u_long procnum,
crp->valid = 0; crp->valid = 0;
return (int) clnt_stat; return (int) clnt_stat;
} }
libc_hidden_nolink (callrpc, GLIBC_2_0)
#ifdef _RPC_THREAD_SAFE_ #ifdef _RPC_THREAD_SAFE_
void void

View File

@ -188,9 +188,8 @@ clnttcp_create (struct sockaddr_in *raddr, u_long prog, u_long vers,
/* /*
* pre-serialize the static part of the call msg and stash it away * pre-serialize the static part of the call msg and stash it away
*/ */
INTUSE(xdrmem_create) (&(ct->ct_xdrs), ct->ct_mcall, MCALL_MSG_SIZE, xdrmem_create (&(ct->ct_xdrs), ct->ct_mcall, MCALL_MSG_SIZE, XDR_ENCODE);
XDR_ENCODE); if (!xdr_callhdr (&(ct->ct_xdrs), &call_msg))
if (!INTUSE(xdr_callhdr) (&(ct->ct_xdrs), &call_msg))
{ {
if (ct->ct_closeit) if (ct->ct_closeit)
{ {
@ -205,11 +204,11 @@ clnttcp_create (struct sockaddr_in *raddr, u_long prog, u_long vers,
* Create a client handle which uses xdrrec for serialization * Create a client handle which uses xdrrec for serialization
* and authnone for authentication. * and authnone for authentication.
*/ */
INTUSE(xdrrec_create) (&(ct->ct_xdrs), sendsz, recvsz, xdrrec_create (&(ct->ct_xdrs), sendsz, recvsz,
(caddr_t) ct, readtcp, writetcp); (caddr_t) ct, readtcp, writetcp);
h->cl_ops = (struct clnt_ops *) &tcp_ops; h->cl_ops = (struct clnt_ops *) &tcp_ops;
h->cl_private = (caddr_t) ct; h->cl_private = (caddr_t) ct;
h->cl_auth = INTUSE(authnone_create) (); h->cl_auth = authnone_create ();
return h; return h;
fooy: fooy:
@ -220,7 +219,11 @@ fooy:
mem_free ((caddr_t) h, sizeof (CLIENT)); mem_free ((caddr_t) h, sizeof (CLIENT));
return ((CLIENT *) NULL); return ((CLIENT *) NULL);
} }
INTDEF (clnttcp_create) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (clnttcp_create)
#else
libc_hidden_nolink (clnttcp_create, GLIBC_2_0)
#endif
static enum clnt_stat static enum clnt_stat
clnttcp_call (h, proc, xdr_args, args_ptr, xdr_results, results_ptr, timeout) clnttcp_call (h, proc, xdr_args, args_ptr, xdr_results, results_ptr, timeout)
@ -260,10 +263,10 @@ call_again:
{ {
if (ct->ct_error.re_status == RPC_SUCCESS) if (ct->ct_error.re_status == RPC_SUCCESS)
ct->ct_error.re_status = RPC_CANTENCODEARGS; ct->ct_error.re_status = RPC_CANTENCODEARGS;
(void) INTUSE(xdrrec_endofrecord) (xdrs, TRUE); (void) xdrrec_endofrecord (xdrs, TRUE);
return (ct->ct_error.re_status); return (ct->ct_error.re_status);
} }
if (!INTUSE(xdrrec_endofrecord) (xdrs, shipnow)) if (!xdrrec_endofrecord (xdrs, shipnow))
return ct->ct_error.re_status = RPC_CANTSEND; return ct->ct_error.re_status = RPC_CANTSEND;
if (!shipnow) if (!shipnow)
return RPC_SUCCESS; return RPC_SUCCESS;
@ -284,11 +287,11 @@ call_again:
{ {
reply_msg.acpted_rply.ar_verf = _null_auth; reply_msg.acpted_rply.ar_verf = _null_auth;
reply_msg.acpted_rply.ar_results.where = NULL; reply_msg.acpted_rply.ar_results.where = NULL;
reply_msg.acpted_rply.ar_results.proc = (xdrproc_t)INTUSE(xdr_void); reply_msg.acpted_rply.ar_results.proc = (xdrproc_t)xdr_void;
if (!INTUSE(xdrrec_skiprecord) (xdrs)) if (!xdrrec_skiprecord (xdrs))
return (ct->ct_error.re_status); return (ct->ct_error.re_status);
/* now decode and validate the response header */ /* now decode and validate the response header */
if (!INTUSE(xdr_replymsg) (xdrs, &reply_msg)) if (!xdr_replymsg (xdrs, &reply_msg))
{ {
if (ct->ct_error.re_status == RPC_SUCCESS) if (ct->ct_error.re_status == RPC_SUCCESS)
continue; continue;
@ -318,8 +321,7 @@ call_again:
if (reply_msg.acpted_rply.ar_verf.oa_base != NULL) if (reply_msg.acpted_rply.ar_verf.oa_base != NULL)
{ {
xdrs->x_op = XDR_FREE; xdrs->x_op = XDR_FREE;
(void) INTUSE(xdr_opaque_auth) (xdrs, (void) xdr_opaque_auth (xdrs, &(reply_msg.acpted_rply.ar_verf));
&(reply_msg.acpted_rply.ar_verf));
} }
} /* end successful completion */ } /* end successful completion */
else else

View File

@ -57,7 +57,6 @@
#include <kernel-features.h> #include <kernel-features.h>
extern bool_t xdr_opaque_auth (XDR *, struct opaque_auth *);
extern u_long _create_xid (void); extern u_long _create_xid (void);
/* /*
@ -165,8 +164,8 @@ __libc_clntudp_bufcreate (struct sockaddr_in *raddr, u_long program,
call_msg.rm_call.cb_rpcvers = RPC_MSG_VERSION; call_msg.rm_call.cb_rpcvers = RPC_MSG_VERSION;
call_msg.rm_call.cb_prog = program; call_msg.rm_call.cb_prog = program;
call_msg.rm_call.cb_vers = version; call_msg.rm_call.cb_vers = version;
INTUSE(xdrmem_create) (&(cu->cu_outxdrs), cu->cu_outbuf, sendsz, XDR_ENCODE); xdrmem_create (&(cu->cu_outxdrs), cu->cu_outbuf, sendsz, XDR_ENCODE);
if (!INTUSE(xdr_callhdr) (&(cu->cu_outxdrs), &call_msg)) if (!xdr_callhdr (&(cu->cu_outxdrs), &call_msg))
{ {
goto fooy; goto fooy;
} }
@ -229,7 +228,7 @@ __libc_clntudp_bufcreate (struct sockaddr_in *raddr, u_long program,
cu->cu_closeit = FALSE; cu->cu_closeit = FALSE;
} }
cu->cu_sock = *sockp; cu->cu_sock = *sockp;
cl->cl_auth = INTUSE(authnone_create) (); cl->cl_auth = authnone_create ();
return cl; return cl;
fooy: fooy:
if (cu) if (cu)
@ -238,17 +237,21 @@ fooy:
mem_free ((caddr_t) cl, sizeof (CLIENT)); mem_free ((caddr_t) cl, sizeof (CLIENT));
return (CLIENT *) NULL; return (CLIENT *) NULL;
} }
INTDEF (__libc_clntudp_bufcreate) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (__libc_clntudp_bufcreate)
#else
libc_hidden_nolink (__libc_clntudp_bufcreate, GLIBC_PRIVATE)
#endif
CLIENT * CLIENT *
clntudp_bufcreate (struct sockaddr_in *raddr, u_long program, u_long version, clntudp_bufcreate (struct sockaddr_in *raddr, u_long program, u_long version,
struct timeval wait, int *sockp, u_int sendsz, struct timeval wait, int *sockp, u_int sendsz,
u_int recvsz) u_int recvsz)
{ {
return INTUSE(__libc_clntudp_bufcreate) (raddr, program, version, wait, return __libc_clntudp_bufcreate (raddr, program, version, wait,
sockp, sendsz, recvsz, 0); sockp, sendsz, recvsz, 0);
} }
INTDEF (clntudp_bufcreate) libc_hidden_nolink (clntudp_bufcreate, GLIBC_2_0)
CLIENT * CLIENT *
clntudp_create (raddr, program, version, wait, sockp) clntudp_create (raddr, program, version, wait, sockp)
@ -258,10 +261,14 @@ clntudp_create (raddr, program, version, wait, sockp)
struct timeval wait; struct timeval wait;
int *sockp; int *sockp;
{ {
return INTUSE(__libc_clntudp_bufcreate) (raddr, program, version, wait, return __libc_clntudp_bufcreate (raddr, program, version, wait,
sockp, UDPMSGSIZE, UDPMSGSIZE, 0); sockp, UDPMSGSIZE, UDPMSGSIZE, 0);
} }
INTDEF (clntudp_create) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (clntudp_create)
#else
libc_hidden_nolink (clntudp_create, GLIBC_2_0)
#endif
static int static int
is_network_up (int sock) is_network_up (int sock)
@ -465,7 +472,7 @@ send_again:
continue; continue;
/* see if reply transaction id matches sent id. /* see if reply transaction id matches sent id.
Don't do this if we only wait for a replay */ Don't do this if we only wait for a replay */
if (xargs != NULL if (xargs != NULL
&& (*((u_int32_t *) (cu->cu_inbuf)) && (*((u_int32_t *) (cu->cu_inbuf))
!= *((u_int32_t *) (cu->cu_outbuf)))) != *((u_int32_t *) (cu->cu_outbuf))))
@ -477,8 +484,8 @@ send_again:
/* /*
* now decode and validate the response * now decode and validate the response
*/ */
INTUSE(xdrmem_create) (&reply_xdrs, cu->cu_inbuf, (u_int) inlen, XDR_DECODE); xdrmem_create (&reply_xdrs, cu->cu_inbuf, (u_int) inlen, XDR_DECODE);
ok = INTUSE(xdr_replymsg) (&reply_xdrs, &reply_msg); ok = xdr_replymsg (&reply_xdrs, &reply_msg);
/* XDR_DESTROY(&reply_xdrs); save a few cycles on noop destroy */ /* XDR_DESTROY(&reply_xdrs); save a few cycles on noop destroy */
if (ok) if (ok)
{ {
@ -494,8 +501,7 @@ send_again:
if (reply_msg.acpted_rply.ar_verf.oa_base != NULL) if (reply_msg.acpted_rply.ar_verf.oa_base != NULL)
{ {
xdrs->x_op = XDR_FREE; xdrs->x_op = XDR_FREE;
(void) INTUSE(xdr_opaque_auth) (xdrs, (void) xdr_opaque_auth (xdrs, &(reply_msg.acpted_rply.ar_verf));
&(reply_msg.acpted_rply.ar_verf));
} }
} /* end successful completion */ } /* end successful completion */
else else

View File

@ -173,9 +173,8 @@ clntunix_create (struct sockaddr_un *raddr, u_long prog, u_long vers,
/* /*
* pre-serialize the static part of the call msg and stash it away * pre-serialize the static part of the call msg and stash it away
*/ */
INTUSE(xdrmem_create) (&(ct->ct_xdrs), ct->ct_mcall, MCALL_MSG_SIZE, xdrmem_create (&(ct->ct_xdrs), ct->ct_mcall, MCALL_MSG_SIZE, XDR_ENCODE);
XDR_ENCODE); if (!xdr_callhdr (&(ct->ct_xdrs), &call_msg))
if (!INTUSE(xdr_callhdr) (&(ct->ct_xdrs), &call_msg))
{ {
if (ct->ct_closeit) if (ct->ct_closeit)
__close (*sockp); __close (*sockp);
@ -188,11 +187,11 @@ clntunix_create (struct sockaddr_un *raddr, u_long prog, u_long vers,
* Create a client handle which uses xdrrec for serialization * Create a client handle which uses xdrrec for serialization
* and authnone for authentication. * and authnone for authentication.
*/ */
INTUSE(xdrrec_create) (&(ct->ct_xdrs), sendsz, recvsz, xdrrec_create (&(ct->ct_xdrs), sendsz, recvsz,
(caddr_t) ct, readunix, writeunix); (caddr_t) ct, readunix, writeunix);
h->cl_ops = (struct clnt_ops *) &unix_ops; h->cl_ops = (struct clnt_ops *) &unix_ops;
h->cl_private = (caddr_t) ct; h->cl_private = (caddr_t) ct;
h->cl_auth = INTUSE(authnone_create) (); h->cl_auth = authnone_create ();
return h; return h;
fooy: fooy:
@ -203,7 +202,7 @@ fooy:
mem_free ((caddr_t) h, sizeof (CLIENT)); mem_free ((caddr_t) h, sizeof (CLIENT));
return (CLIENT *) NULL; return (CLIENT *) NULL;
} }
INTDEF (clntunix_create) libc_hidden_nolink (clntunix_create, GLIBC_2_1)
static enum clnt_stat static enum clnt_stat
clntunix_call (h, proc, xdr_args, args_ptr, xdr_results, results_ptr, timeout) clntunix_call (h, proc, xdr_args, args_ptr, xdr_results, results_ptr, timeout)
@ -243,10 +242,10 @@ call_again:
{ {
if (ct->ct_error.re_status == RPC_SUCCESS) if (ct->ct_error.re_status == RPC_SUCCESS)
ct->ct_error.re_status = RPC_CANTENCODEARGS; ct->ct_error.re_status = RPC_CANTENCODEARGS;
(void) INTUSE(xdrrec_endofrecord) (xdrs, TRUE); (void) xdrrec_endofrecord (xdrs, TRUE);
return ct->ct_error.re_status; return ct->ct_error.re_status;
} }
if (!INTUSE(xdrrec_endofrecord) (xdrs, shipnow)) if (!xdrrec_endofrecord (xdrs, shipnow))
return ct->ct_error.re_status = RPC_CANTSEND; return ct->ct_error.re_status = RPC_CANTSEND;
if (!shipnow) if (!shipnow)
return RPC_SUCCESS; return RPC_SUCCESS;
@ -265,11 +264,11 @@ call_again:
{ {
reply_msg.acpted_rply.ar_verf = _null_auth; reply_msg.acpted_rply.ar_verf = _null_auth;
reply_msg.acpted_rply.ar_results.where = NULL; reply_msg.acpted_rply.ar_results.where = NULL;
reply_msg.acpted_rply.ar_results.proc = (xdrproc_t)INTUSE(xdr_void); reply_msg.acpted_rply.ar_results.proc = (xdrproc_t)xdr_void;
if (!INTUSE(xdrrec_skiprecord) (xdrs)) if (!xdrrec_skiprecord (xdrs))
return ct->ct_error.re_status; return ct->ct_error.re_status;
/* now decode and validate the response header */ /* now decode and validate the response header */
if (!INTUSE(xdr_replymsg) (xdrs, &reply_msg)) if (!xdr_replymsg (xdrs, &reply_msg))
{ {
if (ct->ct_error.re_status == RPC_SUCCESS) if (ct->ct_error.re_status == RPC_SUCCESS)
continue; continue;
@ -299,8 +298,7 @@ call_again:
if (reply_msg.acpted_rply.ar_verf.oa_base != NULL) if (reply_msg.acpted_rply.ar_verf.oa_base != NULL)
{ {
xdrs->x_op = XDR_FREE; xdrs->x_op = XDR_FREE;
(void) INTUSE(xdr_opaque_auth) (xdrs, (void) xdr_opaque_auth (xdrs, &(reply_msg.acpted_rply.ar_verf));
&(reply_msg.acpted_rply.ar_verf));
} }
} /* end successful completion */ } /* end successful completion */
else else
@ -549,18 +547,18 @@ readunix (char *ctptr, char *buf, int len)
while (TRUE) while (TRUE)
{ {
switch (__poll (&fd, 1, milliseconds)) switch (__poll (&fd, 1, milliseconds))
{ {
case 0: case 0:
ct->ct_error.re_status = RPC_TIMEDOUT; ct->ct_error.re_status = RPC_TIMEDOUT;
return -1; return -1;
case -1: case -1:
if (errno == EINTR) if (errno == EINTR)
continue; continue;
ct->ct_error.re_status = RPC_CANTRECV; ct->ct_error.re_status = RPC_CANTRECV;
ct->ct_error.re_errno = errno; ct->ct_error.re_errno = errno;
return -1; return -1;
} }
break; break;
} }
switch (len = __msgread (ct->ct_sock, buf, len)) switch (len = __msgread (ct->ct_sock, buf, len))

View File

@ -32,6 +32,7 @@
#include <sys/types.h> #include <sys/types.h>
#include <rpc/des_crypt.h> #include <rpc/des_crypt.h>
#include <abi-versions.h>
#include "des.h" #include "des.h"
extern int _des_crypt (char *, unsigned, struct desparams *); extern int _des_crypt (char *, unsigned, struct desparams *);
@ -101,7 +102,7 @@ cbc_crypt (char *key, char *buf, unsigned int len, unsigned int mode,
COPY8 (dp.des_ivec, ivec); COPY8 (dp.des_ivec, ivec);
return err; return err;
} }
libc_hidden_def (cbc_crypt) libc_hidden_nolink (cbc_crypt, GLIBC_2_1)
/* /*
* ECB mode encryption * ECB mode encryption
@ -114,4 +115,4 @@ ecb_crypt (char *key, char *buf, unsigned int len, unsigned int mode)
dp.des_mode = ECB; dp.des_mode = ECB;
return common_crypt (key, buf, len, mode, &dp); return common_crypt (key, buf, len, mode, &dp);
} }
libc_hidden_def (ecb_crypt) libc_hidden_nolink (ecb_crypt, GLIBC_2_1)

View File

@ -32,6 +32,7 @@ static char sccsid[] = "@(#)des_soft.c 2.2 88/08/10 4.0 RPCSRC; from 1.13 88/02/
*/ */
#include <rpc/des_crypt.h> #include <rpc/des_crypt.h>
#include <abi-versions.h>
/* /*
* Table giving odd parity in the low bit for ASCII characters * Table giving odd parity in the low bit for ASCII characters
*/ */
@ -69,4 +70,4 @@ des_setparity (char *p)
p++; p++;
} }
} }
libc_hidden_def (des_setparity) libc_hidden_nolink (des_setparity, GLIBC_2_1)

View File

@ -96,3 +96,8 @@ get_myaddress (struct sockaddr_in *addr)
if no interface is up. Probably this won't happen (at least if no interface is up. Probably this won't happen (at least
loopback is there) but still... */ loopback is there) but still... */
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (get_myaddress)
#else
libc_hidden_nolink (get_myaddress, GLIBC_2_0)
#endif

View File

@ -70,8 +70,8 @@ key_setsecret (char *secretkey)
{ {
keystatus status; keystatus status;
if (!key_call ((u_long) KEY_SET, (xdrproc_t) INTUSE(xdr_keybuf), secretkey, if (!key_call ((u_long) KEY_SET, (xdrproc_t) xdr_keybuf, secretkey,
(xdrproc_t) INTUSE(xdr_keystatus), (char *) &status)) (xdrproc_t) xdr_keystatus, (char *) &status))
return -1; return -1;
if (status != KEY_SUCCESS) if (status != KEY_SUCCESS)
{ {
@ -80,6 +80,7 @@ key_setsecret (char *secretkey)
} }
return 0; return 0;
} }
libc_hidden_nolink (key_setsecret, GLIBC_2_1)
/* key_secretkey_is_set() returns 1 if the keyserver has a secret key /* key_secretkey_is_set() returns 1 if the keyserver has a secret key
* stored for the caller's effective uid; it returns 0 otherwise * stored for the caller's effective uid; it returns 0 otherwise
@ -93,8 +94,8 @@ key_secretkey_is_set (void)
struct key_netstres kres; struct key_netstres kres;
memset (&kres, 0, sizeof (kres)); memset (&kres, 0, sizeof (kres));
if (key_call ((u_long) KEY_NET_GET, (xdrproc_t) INTUSE(xdr_void), if (key_call ((u_long) KEY_NET_GET, (xdrproc_t) xdr_void,
(char *) NULL, (xdrproc_t) INTUSE(xdr_key_netstres), (char *) NULL, (xdrproc_t) xdr_key_netstres,
(char *) &kres) && (char *) &kres) &&
(kres.status == KEY_SUCCESS) && (kres.status == KEY_SUCCESS) &&
(kres.key_netstres_u.knet.st_priv_key[0] != 0)) (kres.key_netstres_u.knet.st_priv_key[0] != 0))
@ -105,6 +106,11 @@ key_secretkey_is_set (void)
} }
return 0; return 0;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (key_secretkey_is_set)
#else
libc_hidden_nolink (key_secretkey_is_set, GLIBC_2_1)
#endif
int int
key_encryptsession (char *remotename, des_block *deskey) key_encryptsession (char *remotename, des_block *deskey)
@ -114,8 +120,8 @@ key_encryptsession (char *remotename, des_block *deskey)
arg.remotename = remotename; arg.remotename = remotename;
arg.deskey = *deskey; arg.deskey = *deskey;
if (!key_call ((u_long) KEY_ENCRYPT, (xdrproc_t) INTUSE(xdr_cryptkeyarg), if (!key_call ((u_long) KEY_ENCRYPT, (xdrproc_t) xdr_cryptkeyarg,
(char *) &arg, (xdrproc_t) INTUSE(xdr_cryptkeyres), (char *) &arg, (xdrproc_t) xdr_cryptkeyres,
(char *) &res)) (char *) &res))
return -1; return -1;
@ -127,6 +133,7 @@ key_encryptsession (char *remotename, des_block *deskey)
*deskey = res.cryptkeyres_u.deskey; *deskey = res.cryptkeyres_u.deskey;
return 0; return 0;
} }
libc_hidden_nolink (key_encryptsession, GLIBC_2_1)
int int
key_decryptsession (char *remotename, des_block *deskey) key_decryptsession (char *remotename, des_block *deskey)
@ -136,8 +143,8 @@ key_decryptsession (char *remotename, des_block *deskey)
arg.remotename = remotename; arg.remotename = remotename;
arg.deskey = *deskey; arg.deskey = *deskey;
if (!key_call ((u_long) KEY_DECRYPT, (xdrproc_t) INTUSE(xdr_cryptkeyarg), if (!key_call ((u_long) KEY_DECRYPT, (xdrproc_t) xdr_cryptkeyarg,
(char *) &arg, (xdrproc_t) INTUSE(xdr_cryptkeyres), (char *) &arg, (xdrproc_t) xdr_cryptkeyres,
(char *) &res)) (char *) &res))
return -1; return -1;
if (res.status != KEY_SUCCESS) if (res.status != KEY_SUCCESS)
@ -148,6 +155,7 @@ key_decryptsession (char *remotename, des_block *deskey)
*deskey = res.cryptkeyres_u.deskey; *deskey = res.cryptkeyres_u.deskey;
return 0; return 0;
} }
libc_hidden_nolink (key_decryptsession, GLIBC_2_1)
int int
key_encryptsession_pk (char *remotename, netobj *remotekey, key_encryptsession_pk (char *remotename, netobj *remotekey,
@ -159,8 +167,8 @@ key_encryptsession_pk (char *remotename, netobj *remotekey,
arg.remotename = remotename; arg.remotename = remotename;
arg.remotekey = *remotekey; arg.remotekey = *remotekey;
arg.deskey = *deskey; arg.deskey = *deskey;
if (!key_call ((u_long) KEY_ENCRYPT_PK, (xdrproc_t) INTUSE(xdr_cryptkeyarg2), if (!key_call ((u_long) KEY_ENCRYPT_PK, (xdrproc_t) xdr_cryptkeyarg2,
(char *) &arg, (xdrproc_t) INTUSE(xdr_cryptkeyres), (char *) &arg, (xdrproc_t) xdr_cryptkeyres,
(char *) &res)) (char *) &res))
return -1; return -1;
@ -172,7 +180,7 @@ key_encryptsession_pk (char *remotename, netobj *remotekey,
*deskey = res.cryptkeyres_u.deskey; *deskey = res.cryptkeyres_u.deskey;
return 0; return 0;
} }
libc_hidden_def (key_encryptsession_pk) libc_hidden_nolink (key_encryptsession_pk, GLIBC_2_1)
int int
key_decryptsession_pk (char *remotename, netobj *remotekey, key_decryptsession_pk (char *remotename, netobj *remotekey,
@ -184,8 +192,8 @@ key_decryptsession_pk (char *remotename, netobj *remotekey,
arg.remotename = remotename; arg.remotename = remotename;
arg.remotekey = *remotekey; arg.remotekey = *remotekey;
arg.deskey = *deskey; arg.deskey = *deskey;
if (!key_call ((u_long) KEY_DECRYPT_PK, (xdrproc_t) INTUSE(xdr_cryptkeyarg2), if (!key_call ((u_long) KEY_DECRYPT_PK, (xdrproc_t) xdr_cryptkeyarg2,
(char *) &arg, (xdrproc_t) INTUSE(xdr_cryptkeyres), (char *) &arg, (xdrproc_t) xdr_cryptkeyres,
(char *) &res)) (char *) &res))
return -1; return -1;
@ -197,7 +205,7 @@ key_decryptsession_pk (char *remotename, netobj *remotekey,
*deskey = res.cryptkeyres_u.deskey; *deskey = res.cryptkeyres_u.deskey;
return 0; return 0;
} }
libc_hidden_def (key_decryptsession_pk) libc_hidden_nolink (key_decryptsession_pk, GLIBC_2_1)
int int
key_gendes (des_block *key) key_gendes (des_block *key)
@ -212,14 +220,14 @@ key_gendes (des_block *key)
sin.sin_addr.s_addr = htonl (INADDR_LOOPBACK); sin.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
__bzero (sin.sin_zero, sizeof (sin.sin_zero)); __bzero (sin.sin_zero, sizeof (sin.sin_zero));
socket = RPC_ANYSOCK; socket = RPC_ANYSOCK;
client = INTUSE(clntudp_bufcreate) (&sin, (u_long) KEY_PROG, client = clntudp_bufcreate (&sin, (u_long) KEY_PROG, (u_long) KEY_VERS,
(u_long) KEY_VERS, trytimeout, &socket, trytimeout, &socket, RPCSMALLMSGSIZE,
RPCSMALLMSGSIZE, RPCSMALLMSGSIZE); RPCSMALLMSGSIZE);
if (client == NULL) if (client == NULL)
return -1; return -1;
stat = clnt_call (client, KEY_GEN, (xdrproc_t) INTUSE(xdr_void), NULL, stat = clnt_call (client, KEY_GEN, (xdrproc_t) xdr_void, NULL,
(xdrproc_t) INTUSE(xdr_des_block), (caddr_t) key, (xdrproc_t) xdr_des_block, (caddr_t) key,
tottimeout); tottimeout);
clnt_destroy (client); clnt_destroy (client);
__close (socket); __close (socket);
@ -228,15 +236,19 @@ key_gendes (des_block *key)
return 0; return 0;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (key_gendes) libc_hidden_def (key_gendes)
#else
libc_hidden_nolink (key_gendes, GLIBC_2_1)
#endif
int int
key_setnet (struct key_netstarg *arg) key_setnet (struct key_netstarg *arg)
{ {
keystatus status; keystatus status;
if (!key_call ((u_long) KEY_NET_PUT, (xdrproc_t) INTUSE(xdr_key_netstarg), if (!key_call ((u_long) KEY_NET_PUT, (xdrproc_t) xdr_key_netstarg,
(char *) arg,(xdrproc_t) INTUSE(xdr_keystatus), (char *) arg,(xdrproc_t) xdr_keystatus,
(char *) &status)) (char *) &status))
return -1; return -1;
@ -247,14 +259,15 @@ key_setnet (struct key_netstarg *arg)
} }
return 1; return 1;
} }
libc_hidden_nolink (key_setnet, GLIBC_2_1)
int int
key_get_conv (char *pkey, des_block *deskey) key_get_conv (char *pkey, des_block *deskey)
{ {
cryptkeyres res; cryptkeyres res;
if (!key_call ((u_long) KEY_GET_CONV, (xdrproc_t) INTUSE(xdr_keybuf), pkey, if (!key_call ((u_long) KEY_GET_CONV, (xdrproc_t) xdr_keybuf, pkey,
(xdrproc_t) INTUSE(xdr_cryptkeyres), (char *) &res)) (xdrproc_t) xdr_cryptkeyres, (char *) &res))
return -1; return -1;
if (res.status != KEY_SUCCESS) if (res.status != KEY_SUCCESS)
@ -265,6 +278,7 @@ key_get_conv (char *pkey, des_block *deskey)
*deskey = res.cryptkeyres_u.deskey; *deskey = res.cryptkeyres_u.deskey;
return 0; return 0;
} }
libc_hidden_nolink (key_get_conv, GLIBC_2_1)
/* /*
* Hack to allow the keyserver to use AUTH_DES (for authenticated * Hack to allow the keyserver to use AUTH_DES (for authenticated
@ -322,7 +336,7 @@ key_call_keyenvoy (u_long proc, xdrproc_t xdr_arg, char *arg,
xdrstdio_create (&xdrargs, fargs, XDR_ENCODE); xdrstdio_create (&xdrargs, fargs, XDR_ENCODE);
xdrstdio_create (&xdrrslt, frslt, XDR_DECODE); xdrstdio_create (&xdrrslt, frslt, XDR_DECODE);
if (!INTUSE(xdr_u_long) (&xdrargs, &proc) || !(*xdr_arg) (&xdrargs, arg)) if (!xdr_u_long (&xdrargs, &proc) || !(*xdr_arg) (&xdrargs, arg))
{ {
debug ("xdr args"); debug ("xdr args");
success = 0; success = 0;
@ -421,16 +435,16 @@ getkeyserv_handle (int vers)
/* if uid has changed, build client handle again */ /* if uid has changed, build client handle again */
if (kcp->uid != __geteuid ()) if (kcp->uid != __geteuid ())
{ {
kcp->uid = __geteuid (); kcp->uid = __geteuid ();
auth_destroy (kcp->client->cl_auth); auth_destroy (kcp->client->cl_auth);
kcp->client->cl_auth = kcp->client->cl_auth =
INTUSE(authunix_create) ((char *)"", kcp->uid, 0, 0, NULL); authunix_create ((char *)"", kcp->uid, 0, 0, NULL);
if (kcp->client->cl_auth == NULL) if (kcp->client->cl_auth == NULL)
{ {
clnt_destroy (kcp->client); clnt_destroy (kcp->client);
kcp->client = NULL; kcp->client = NULL;
return ((CLIENT *) NULL); return ((CLIENT *) NULL);
} }
} }
/* Change the version number to the new one */ /* Change the version number to the new one */
clnt_control (kcp->client, CLSET_VERS, (void *)&vers); clnt_control (kcp->client, CLSET_VERS, (void *)&vers);
@ -439,16 +453,14 @@ getkeyserv_handle (int vers)
if ((kcp->client == (CLIENT *) NULL)) if ((kcp->client == (CLIENT *) NULL))
/* Use the AF_UNIX transport */ /* Use the AF_UNIX transport */
kcp->client = INTUSE(clnt_create) ("/var/run/keyservsock", KEY_PROG, vers, kcp->client = clnt_create ("/var/run/keyservsock", KEY_PROG, vers, "unix");
"unix");
if (kcp->client == (CLIENT *) NULL) if (kcp->client == (CLIENT *) NULL)
return (CLIENT *) NULL; return (CLIENT *) NULL;
kcp->uid = __geteuid (); kcp->uid = __geteuid ();
kcp->pid = __getpid (); kcp->pid = __getpid ();
kcp->client->cl_auth = INTUSE(authunix_create) ((char *)"", kcp->uid, 0, 0, kcp->client->cl_auth = authunix_create ((char *)"", kcp->uid, 0, 0, NULL);
NULL);
if (kcp->client->cl_auth == NULL) if (kcp->client->cl_auth == NULL)
{ {
clnt_destroy (kcp->client); clnt_destroy (kcp->client);
@ -470,7 +482,7 @@ getkeyserv_handle (int vers)
static int static int
internal_function internal_function
key_call_socket (u_long proc, xdrproc_t xdr_arg, char *arg, key_call_socket (u_long proc, xdrproc_t xdr_arg, char *arg,
xdrproc_t xdr_rslt, char *rslt) xdrproc_t xdr_rslt, char *rslt)
{ {
CLIENT *clnt; CLIENT *clnt;
struct timeval wait_time; struct timeval wait_time;

View File

@ -28,73 +28,73 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include "rpc/key_prot.h" #include <rpc/key_prot.h>
bool_t bool_t
xdr_keystatus (XDR * xdrs, keystatus * objp) xdr_keystatus (XDR * xdrs, keystatus * objp)
{ {
if (!INTUSE(xdr_enum) (xdrs, (enum_t *) objp)) if (!xdr_enum (xdrs, (enum_t *) objp))
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
INTDEF(xdr_keystatus) libc_hidden_nolink (xdr_keystatus, GLIBC_2_0)
bool_t bool_t
xdr_keybuf (XDR * xdrs, keybuf objp) xdr_keybuf (XDR * xdrs, keybuf objp)
{ {
if (!INTUSE(xdr_opaque) (xdrs, objp, HEXKEYBYTES)) if (!xdr_opaque (xdrs, objp, HEXKEYBYTES))
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
INTDEF(xdr_keybuf) libc_hidden_nolink (xdr_keybuf, GLIBC_2_0)
bool_t bool_t
xdr_netnamestr (XDR * xdrs, netnamestr * objp) xdr_netnamestr (XDR * xdrs, netnamestr * objp)
{ {
if (!INTUSE(xdr_string) (xdrs, objp, MAXNETNAMELEN)) if (!xdr_string (xdrs, objp, MAXNETNAMELEN))
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
INTDEF(xdr_netnamestr) libc_hidden_nolink (xdr_netnamestr, GLIBC_2_1)
bool_t bool_t
xdr_cryptkeyarg (XDR * xdrs, cryptkeyarg * objp) xdr_cryptkeyarg (XDR * xdrs, cryptkeyarg * objp)
{ {
if (!INTUSE(xdr_netnamestr) (xdrs, &objp->remotename)) if (!xdr_netnamestr (xdrs, &objp->remotename))
return FALSE; return FALSE;
if (!INTUSE(xdr_des_block) (xdrs, &objp->deskey)) if (!xdr_des_block (xdrs, &objp->deskey))
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
INTDEF(xdr_cryptkeyarg) libc_hidden_nolink (xdr_cryptkeyarg, GLIBC_2_0)
bool_t bool_t
xdr_cryptkeyarg2 (XDR * xdrs, cryptkeyarg2 * objp) xdr_cryptkeyarg2 (XDR * xdrs, cryptkeyarg2 * objp)
{ {
if (!INTUSE(xdr_netnamestr) (xdrs, &objp->remotename)) if (!xdr_netnamestr (xdrs, &objp->remotename))
return FALSE; return FALSE;
if (!INTUSE(xdr_netobj) (xdrs, &objp->remotekey)) if (!xdr_netobj (xdrs, &objp->remotekey))
return FALSE; return FALSE;
if (!INTUSE(xdr_des_block) (xdrs, &objp->deskey)) if (!xdr_des_block (xdrs, &objp->deskey))
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
INTDEF(xdr_cryptkeyarg2) libc_hidden_nolink (xdr_cryptkeyarg2, GLIBC_2_0)
bool_t bool_t
xdr_cryptkeyres (XDR * xdrs, cryptkeyres * objp) xdr_cryptkeyres (XDR * xdrs, cryptkeyres * objp)
{ {
if (!INTUSE(xdr_keystatus) (xdrs, &objp->status)) if (!xdr_keystatus (xdrs, &objp->status))
return FALSE; return FALSE;
switch (objp->status) switch (objp->status)
{ {
case KEY_SUCCESS: case KEY_SUCCESS:
if (!INTUSE(xdr_des_block) (xdrs, &objp->cryptkeyres_u.deskey)) if (!xdr_des_block (xdrs, &objp->cryptkeyres_u.deskey))
return FALSE; return FALSE;
break; break;
default: default:
@ -102,32 +102,32 @@ xdr_cryptkeyres (XDR * xdrs, cryptkeyres * objp)
} }
return TRUE; return TRUE;
} }
INTDEF(xdr_cryptkeyres) libc_hidden_nolink (xdr_cryptkeyres, GLIBC_2_0)
bool_t bool_t
xdr_unixcred (XDR * xdrs, unixcred * objp) xdr_unixcred (XDR * xdrs, unixcred * objp)
{ {
if (!INTUSE(xdr_u_int) (xdrs, &objp->uid)) if (!xdr_u_int (xdrs, &objp->uid))
return FALSE; return FALSE;
if (!INTUSE(xdr_u_int) (xdrs, &objp->gid)) if (!xdr_u_int (xdrs, &objp->gid))
return FALSE; return FALSE;
if (!INTUSE(xdr_array) (xdrs, (void *) &objp->gids.gids_val, if (!xdr_array (xdrs, (void *) &objp->gids.gids_val,
(u_int *) & objp->gids.gids_len, MAXGIDS, (u_int *) & objp->gids.gids_len, MAXGIDS,
sizeof (u_int), (xdrproc_t) INTUSE(xdr_u_int))) sizeof (u_int), (xdrproc_t) xdr_u_int))
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
INTDEF(xdr_unixcred) libc_hidden_nolink (xdr_unixcred, GLIBC_2_1)
bool_t bool_t
xdr_getcredres (XDR * xdrs, getcredres * objp) xdr_getcredres (XDR * xdrs, getcredres * objp)
{ {
if (!INTUSE(xdr_keystatus) (xdrs, &objp->status)) if (!xdr_keystatus (xdrs, &objp->status))
return FALSE; return FALSE;
switch (objp->status) switch (objp->status)
{ {
case KEY_SUCCESS: case KEY_SUCCESS:
if (!INTUSE(xdr_unixcred) (xdrs, &objp->getcredres_u.cred)) if (!xdr_unixcred (xdrs, &objp->getcredres_u.cred))
return FALSE; return FALSE;
break; break;
default: default:
@ -135,29 +135,30 @@ xdr_getcredres (XDR * xdrs, getcredres * objp)
} }
return TRUE; return TRUE;
} }
libc_hidden_nolink (xdr_getcredres, GLIBC_2_1)
bool_t bool_t
xdr_key_netstarg (XDR * xdrs, key_netstarg * objp) xdr_key_netstarg (XDR * xdrs, key_netstarg * objp)
{ {
if (!INTUSE(xdr_keybuf) (xdrs, objp->st_priv_key)) if (!xdr_keybuf (xdrs, objp->st_priv_key))
return FALSE; return FALSE;
if (!INTUSE(xdr_keybuf) (xdrs, objp->st_pub_key)) if (!xdr_keybuf (xdrs, objp->st_pub_key))
return FALSE; return FALSE;
if (!INTUSE(xdr_netnamestr) (xdrs, &objp->st_netname)) if (!xdr_netnamestr (xdrs, &objp->st_netname))
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
INTDEF(xdr_key_netstarg) libc_hidden_nolink (xdr_key_netstarg, GLIBC_2_0)
bool_t bool_t
xdr_key_netstres (XDR * xdrs, key_netstres * objp) xdr_key_netstres (XDR * xdrs, key_netstres * objp)
{ {
if (!INTUSE(xdr_keystatus) (xdrs, &objp->status)) if (!xdr_keystatus (xdrs, &objp->status))
return FALSE; return FALSE;
switch (objp->status) switch (objp->status)
{ {
case KEY_SUCCESS: case KEY_SUCCESS:
if (!INTUSE(xdr_key_netstarg) (xdrs, &objp->key_netstres_u.knet)) if (!xdr_key_netstarg (xdrs, &objp->key_netstres_u.knet))
return FALSE; return FALSE;
break; break;
default: default:
@ -165,4 +166,4 @@ xdr_key_netstres (XDR * xdrs, key_netstres * objp)
} }
return TRUE; return TRUE;
} }
INTDEF(xdr_key_netstres) libc_hidden_nolink (xdr_key_netstres, GLIBC_2_0)

View File

@ -55,7 +55,7 @@ user2netname (char netname[MAXNETNAMELEN + 1], const uid_t uid,
netname[i - 1] = '\0'; netname[i - 1] = '\0';
return 1; return 1;
} }
libc_hidden_def (user2netname) libc_hidden_nolink (user2netname, GLIBC_2_1)
int int
host2netname (char netname[MAXNETNAMELEN + 1], const char *host, host2netname (char netname[MAXNETNAMELEN + 1], const char *host,
@ -116,7 +116,11 @@ host2netname (char netname[MAXNETNAMELEN + 1], const char *host,
sprintf (netname, "%s.%s@%s", OPSYS, hostname, domainname); sprintf (netname, "%s.%s@%s", OPSYS, hostname, domainname);
return 1; return 1;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (host2netname) libc_hidden_def (host2netname)
#else
libc_hidden_nolink (host2netname, GLIBC_2_1)
#endif
int int
getnetname (char name[MAXNETNAMELEN + 1]) getnetname (char name[MAXNETNAMELEN + 1])
@ -131,7 +135,7 @@ getnetname (char name[MAXNETNAMELEN + 1])
dummy = user2netname (name, uid, NULL); dummy = user2netname (name, uid, NULL);
return (dummy); return (dummy);
} }
libc_hidden_def (getnetname) libc_hidden_nolink (getnetname, GLIBC_2_1)
/* Type of the lookup function for netname2user. */ /* Type of the lookup function for netname2user. */
typedef int (*netname2user_function) (const char netname[MAXNETNAMELEN + 1], typedef int (*netname2user_function) (const char netname[MAXNETNAMELEN + 1],
@ -181,7 +185,11 @@ netname2user (const char netname[MAXNETNAMELEN + 1], uid_t * uidp, gid_t * gidp,
return status == NSS_STATUS_SUCCESS; return status == NSS_STATUS_SUCCESS;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (netname2user) libc_hidden_def (netname2user)
#else
libc_hidden_nolink (netname2user, GLIBC_2_1)
#endif
int int
netname2host (const char netname[MAXNETNAMELEN + 1], char *hostname, netname2host (const char netname[MAXNETNAMELEN + 1], char *hostname,
@ -208,3 +216,4 @@ netname2host (const char netname[MAXNETNAMELEN + 1], char *hostname,
return 1; return 1;
} }
libc_hidden_nolink (netname2host, GLIBC_2_1)

View File

@ -43,6 +43,7 @@
#include <errno.h> #include <errno.h>
#include <libintl.h> #include <libintl.h>
#include <unistd.h> #include <unistd.h>
#include <not-cancel.h>
/* /*
@ -66,12 +67,11 @@ pmap_getmaps (struct sockaddr_in *address)
if (socket != -1) if (socket != -1)
closeit = true; closeit = true;
client = INTUSE(clnttcp_create) (address, PMAPPROG, client = clnttcp_create (address, PMAPPROG, PMAPVERS, &socket, 50, 500);
PMAPVERS, &socket, 50, 500);
if (client != (CLIENT *) NULL) if (client != (CLIENT *) NULL)
{ {
if (CLNT_CALL (client, PMAPPROC_DUMP, (xdrproc_t)INTUSE(xdr_void), NULL, if (CLNT_CALL (client, PMAPPROC_DUMP, (xdrproc_t)xdr_void, NULL,
(xdrproc_t)INTUSE(xdr_pmaplist), (caddr_t)&head, (xdrproc_t)xdr_pmaplist, (caddr_t)&head,
minutetimeout) != RPC_SUCCESS) minutetimeout) != RPC_SUCCESS)
{ {
clnt_perror (client, _("pmap_getmaps.c: rpc problem")); clnt_perror (client, _("pmap_getmaps.c: rpc problem"));
@ -80,7 +80,8 @@ pmap_getmaps (struct sockaddr_in *address)
} }
/* We only need to close the socket here if we opened it. */ /* We only need to close the socket here if we opened it. */
if (closeit) if (closeit)
(void) __close (socket); close_not_cancel (socket);
address->sin_port = 0; address->sin_port = 0;
return head; return head;
} }
libc_hidden_nolink (pmap_getmaps, GLIBC_2_0)

View File

@ -107,13 +107,12 @@ __libc_rpc_getport (address, program, version, protocol, timeout_sec,
socket = __get_socket(address); socket = __get_socket(address);
if (socket != -1) if (socket != -1)
closeit = true; closeit = true;
client = INTUSE(clnttcp_create) (address, PMAPPROG, PMAPVERS, &socket, client = clnttcp_create (address, PMAPPROG, PMAPVERS, &socket,
RPCSMALLMSGSIZE, RPCSMALLMSGSIZE); RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
} }
else else
client = INTUSE(clntudp_bufcreate) (address, PMAPPROG, PMAPVERS, timeout, client = clntudp_bufcreate (address, PMAPPROG, PMAPVERS, timeout,
&socket, RPCSMALLMSGSIZE, &socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
RPCSMALLMSGSIZE);
if (client != (CLIENT *) NULL) if (client != (CLIENT *) NULL)
{ {
struct rpc_createerr *ce = &get_rpc_createerr (); struct rpc_createerr *ce = &get_rpc_createerr ();
@ -121,8 +120,8 @@ __libc_rpc_getport (address, program, version, protocol, timeout_sec,
parms.pm_vers = version; parms.pm_vers = version;
parms.pm_prot = protocol; parms.pm_prot = protocol;
parms.pm_port = 0; /* not needed or used */ parms.pm_port = 0; /* not needed or used */
if (CLNT_CALL (client, PMAPPROC_GETPORT, (xdrproc_t)INTUSE(xdr_pmap), if (CLNT_CALL (client, PMAPPROC_GETPORT, (xdrproc_t)xdr_pmap,
(caddr_t)&parms, (xdrproc_t)INTUSE(xdr_u_short), (caddr_t)&parms, (xdrproc_t)xdr_u_short,
(caddr_t)&port, tottimeout) != RPC_SUCCESS) (caddr_t)&port, tottimeout) != RPC_SUCCESS)
{ {
ce->cf_stat = RPC_PMAPFAILURE; ce->cf_stat = RPC_PMAPFAILURE;
@ -140,7 +139,11 @@ __libc_rpc_getport (address, program, version, protocol, timeout_sec,
address->sin_port = 0; address->sin_port = 0;
return port; return port;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (__libc_rpc_getport) libc_hidden_def (__libc_rpc_getport)
#else
libc_hidden_nolink (__libc_rpc_getport, GLIBC_PRIVATE)
#endif
/* /*
@ -157,4 +160,4 @@ pmap_getport (address, program, version, protocol)
{ {
return __libc_rpc_getport (address, program, version, protocol, 5, 60); return __libc_rpc_getport (address, program, version, protocol, 5, 60);
} }
libc_hidden_def (pmap_getport) libc_hidden_nolink (pmap_getport, GLIBC_2_0)

View File

@ -112,17 +112,16 @@ pmap_set (u_long program, u_long version, int protocol, u_short port)
if (!__get_myaddress (&myaddress)) if (!__get_myaddress (&myaddress))
return FALSE; return FALSE;
client = INTUSE(clntudp_bufcreate) (&myaddress, PMAPPROG, PMAPVERS, client = clntudp_bufcreate (&myaddress, PMAPPROG, PMAPVERS, timeout, &socket,
timeout, &socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
RPCSMALLMSGSIZE);
if (client == (CLIENT *) NULL) if (client == (CLIENT *) NULL)
return (FALSE); return (FALSE);
parms.pm_prog = program; parms.pm_prog = program;
parms.pm_vers = version; parms.pm_vers = version;
parms.pm_prot = protocol; parms.pm_prot = protocol;
parms.pm_port = port; parms.pm_port = port;
if (CLNT_CALL (client, PMAPPROC_SET, (xdrproc_t)INTUSE(xdr_pmap), if (CLNT_CALL (client, PMAPPROC_SET, (xdrproc_t)xdr_pmap,
(caddr_t)&parms, (xdrproc_t)INTUSE(xdr_bool), (caddr_t)&rslt, (caddr_t)&parms, (xdrproc_t)xdr_bool, (caddr_t)&rslt,
tottimeout) != RPC_SUCCESS) tottimeout) != RPC_SUCCESS)
{ {
clnt_perror (client, _("Cannot register service")); clnt_perror (client, _("Cannot register service"));
@ -132,7 +131,7 @@ pmap_set (u_long program, u_long version, int protocol, u_short port)
/* (void)close(socket); CLNT_DESTROY closes it */ /* (void)close(socket); CLNT_DESTROY closes it */
return rslt; return rslt;
} }
libc_hidden_def (pmap_set) libc_hidden_nolink (pmap_set, GLIBC_2_0)
/* /*
* Remove the mapping between program,version and port. * Remove the mapping between program,version and port.
@ -149,19 +148,18 @@ pmap_unset (u_long program, u_long version)
if (!__get_myaddress (&myaddress)) if (!__get_myaddress (&myaddress))
return FALSE; return FALSE;
client = INTUSE(clntudp_bufcreate) (&myaddress, PMAPPROG, PMAPVERS, client = clntudp_bufcreate (&myaddress, PMAPPROG, PMAPVERS, timeout, &socket,
timeout, &socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
RPCSMALLMSGSIZE);
if (client == (CLIENT *) NULL) if (client == (CLIENT *) NULL)
return FALSE; return FALSE;
parms.pm_prog = program; parms.pm_prog = program;
parms.pm_vers = version; parms.pm_vers = version;
parms.pm_port = parms.pm_prot = 0; parms.pm_port = parms.pm_prot = 0;
CLNT_CALL (client, PMAPPROC_UNSET, (xdrproc_t)INTUSE(xdr_pmap), CLNT_CALL (client, PMAPPROC_UNSET, (xdrproc_t)xdr_pmap,
(caddr_t)&parms, (xdrproc_t)INTUSE(xdr_bool), (caddr_t)&rslt, (caddr_t)&parms, (xdrproc_t)xdr_bool, (caddr_t)&rslt,
tottimeout); tottimeout);
CLNT_DESTROY (client); CLNT_DESTROY (client);
/* (void)close(socket); CLNT_DESTROY already closed it */ /* (void)close(socket); CLNT_DESTROY already closed it */
return rslt; return rslt;
} }
libc_hidden_def (pmap_unset) libc_hidden_nolink (pmap_unset, GLIBC_2_0)

View File

@ -43,10 +43,10 @@ xdr_pmap (xdrs, regs)
struct pmap *regs; struct pmap *regs;
{ {
if (INTUSE(xdr_u_long) (xdrs, &regs->pm_prog) && if (xdr_u_long (xdrs, &regs->pm_prog) &&
INTUSE(xdr_u_long) (xdrs, &regs->pm_vers) && xdr_u_long (xdrs, &regs->pm_vers) &&
INTUSE(xdr_u_long) (xdrs, &regs->pm_prot)) xdr_u_long (xdrs, &regs->pm_prot))
return INTUSE(xdr_u_long) (xdrs, &regs->pm_port); return xdr_u_long (xdrs, &regs->pm_port);
return FALSE; return FALSE;
} }
INTDEF(xdr_pmap) libc_hidden_nolink (xdr_pmap, GLIBC_2_0)

View File

@ -92,7 +92,7 @@ xdr_pmaplist (xdrs, rp)
while (TRUE) while (TRUE)
{ {
more_elements = (bool_t) (*rp != NULL); more_elements = (bool_t) (*rp != NULL);
if (!INTUSE(xdr_bool) (xdrs, &more_elements)) if (!xdr_bool (xdrs, &more_elements))
return FALSE; return FALSE;
if (!more_elements) if (!more_elements)
return TRUE; /* we are done */ return TRUE; /* we are done */
@ -103,11 +103,11 @@ xdr_pmaplist (xdrs, rp)
*/ */
if (freeing) if (freeing)
next = (*rp)->pml_next; next = (*rp)->pml_next;
if (!INTUSE(xdr_reference) (xdrs, (caddr_t *) rp, if (!xdr_reference (xdrs, (caddr_t *) rp,
(u_int) sizeof (struct pmaplist), (u_int) sizeof (struct pmaplist),
(xdrproc_t) INTUSE(xdr_pmap))) (xdrproc_t) xdr_pmap))
return FALSE; return FALSE;
rp = freeing ? &next : &((*rp)->pml_next); rp = freeing ? &next : &((*rp)->pml_next);
} }
} }
INTDEF(xdr_pmaplist) libc_hidden_nolink (xdr_pmaplist, GLIBC_2_0)

View File

@ -79,7 +79,7 @@ pmap_rmtcall (addr, prog, vers, proc, xdrargs, argsp, xdrres, resp, tout, port_p
enum clnt_stat stat; enum clnt_stat stat;
addr->sin_port = htons (PMAPPORT); addr->sin_port = htons (PMAPPORT);
client = INTUSE(clntudp_create) (addr, PMAPPROG, PMAPVERS, timeout, &socket); client = clntudp_create (addr, PMAPPROG, PMAPVERS, timeout, &socket);
if (client != (CLIENT *) NULL) if (client != (CLIENT *) NULL)
{ {
a.prog = prog; a.prog = prog;
@ -91,8 +91,8 @@ pmap_rmtcall (addr, prog, vers, proc, xdrargs, argsp, xdrres, resp, tout, port_p
r.results_ptr = resp; r.results_ptr = resp;
r.xdr_results = xdrres; r.xdr_results = xdrres;
stat = CLNT_CALL (client, PMAPPROC_CALLIT, stat = CLNT_CALL (client, PMAPPROC_CALLIT,
(xdrproc_t)INTUSE(xdr_rmtcall_args), (xdrproc_t)xdr_rmtcall_args,
(caddr_t)&a, (xdrproc_t)INTUSE(xdr_rmtcallres), (caddr_t)&a, (xdrproc_t)xdr_rmtcallres,
(caddr_t)&r, tout); (caddr_t)&r, tout);
CLNT_DESTROY (client); CLNT_DESTROY (client);
} }
@ -104,6 +104,7 @@ pmap_rmtcall (addr, prog, vers, proc, xdrargs, argsp, xdrres, resp, tout, port_p
addr->sin_port = 0; addr->sin_port = 0;
return stat; return stat;
} }
libc_hidden_nolink (pmap_rmtcall, GLIBC_2_0)
/* /*
@ -115,13 +116,13 @@ xdr_rmtcall_args (XDR *xdrs, struct rmtcallargs *cap)
{ {
u_int lenposition, argposition, position; u_int lenposition, argposition, position;
if (INTUSE(xdr_u_long) (xdrs, &(cap->prog)) && if (xdr_u_long (xdrs, &(cap->prog)) &&
INTUSE(xdr_u_long) (xdrs, &(cap->vers)) && xdr_u_long (xdrs, &(cap->vers)) &&
INTUSE(xdr_u_long) (xdrs, &(cap->proc))) xdr_u_long (xdrs, &(cap->proc)))
{ {
u_long dummy_arglen = 0; u_long dummy_arglen = 0;
lenposition = XDR_GETPOS (xdrs); lenposition = XDR_GETPOS (xdrs);
if (!INTUSE(xdr_u_long) (xdrs, &dummy_arglen)) if (!xdr_u_long (xdrs, &dummy_arglen))
return FALSE; return FALSE;
argposition = XDR_GETPOS (xdrs); argposition = XDR_GETPOS (xdrs);
if (!(*(cap->xdr_args)) (xdrs, cap->args_ptr)) if (!(*(cap->xdr_args)) (xdrs, cap->args_ptr))
@ -129,14 +130,14 @@ xdr_rmtcall_args (XDR *xdrs, struct rmtcallargs *cap)
position = XDR_GETPOS (xdrs); position = XDR_GETPOS (xdrs);
cap->arglen = (u_long) position - (u_long) argposition; cap->arglen = (u_long) position - (u_long) argposition;
XDR_SETPOS (xdrs, lenposition); XDR_SETPOS (xdrs, lenposition);
if (!INTUSE(xdr_u_long) (xdrs, &(cap->arglen))) if (!xdr_u_long (xdrs, &(cap->arglen)))
return FALSE; return FALSE;
XDR_SETPOS (xdrs, position); XDR_SETPOS (xdrs, position);
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
} }
INTDEF(xdr_rmtcall_args) libc_hidden_nolink (xdr_rmtcall_args, GLIBC_2_0)
/* /*
* XDR remote call results * XDR remote call results
@ -150,16 +151,16 @@ xdr_rmtcallres (xdrs, crp)
caddr_t port_ptr; caddr_t port_ptr;
port_ptr = (caddr_t) crp->port_ptr; port_ptr = (caddr_t) crp->port_ptr;
if (INTUSE(xdr_reference) (xdrs, &port_ptr, sizeof (u_long), if (xdr_reference (xdrs, &port_ptr, sizeof (u_long),
(xdrproc_t) INTUSE(xdr_u_long)) (xdrproc_t) xdr_u_long)
&& INTUSE(xdr_u_long) (xdrs, &crp->resultslen)) && xdr_u_long (xdrs, &crp->resultslen))
{ {
crp->port_ptr = (u_long *) port_ptr; crp->port_ptr = (u_long *) port_ptr;
return (*(crp->xdr_results)) (xdrs, crp->results_ptr); return (*(crp->xdr_results)) (xdrs, crp->results_ptr);
} }
return FALSE; return FALSE;
} }
INTDEF(xdr_rmtcallres) libc_hidden_nolink (xdr_rmtcallres, GLIBC_2_0)
/* /*
@ -212,7 +213,7 @@ clnt_broadcast (prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
resultproc_t eachresult; /* call with each result obtained */ resultproc_t eachresult; /* call with each result obtained */
{ {
enum clnt_stat stat = RPC_FAILED; enum clnt_stat stat = RPC_FAILED;
AUTH *unix_auth = INTUSE(authunix_create_default) (); AUTH *unix_auth = authunix_create_default ();
XDR xdr_stream; XDR xdr_stream;
XDR *xdrs = &xdr_stream; XDR *xdrs = &xdr_stream;
struct timeval t; struct timeval t;
@ -276,9 +277,9 @@ clnt_broadcast (prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
r.port_ptr = &port; r.port_ptr = &port;
r.xdr_results = xresults; r.xdr_results = xresults;
r.results_ptr = resultsp; r.results_ptr = resultsp;
INTUSE(xdrmem_create) (xdrs, outbuf, MAX_BROADCAST_SIZE, XDR_ENCODE); xdrmem_create (xdrs, outbuf, MAX_BROADCAST_SIZE, XDR_ENCODE);
if ((!INTUSE(xdr_callmsg) (xdrs, &msg)) if ((!xdr_callmsg (xdrs, &msg))
|| (!INTUSE(xdr_rmtcall_args) (xdrs, &a))) || (!xdr_rmtcall_args (xdrs, &a)))
{ {
stat = RPC_CANTENCODEARGS; stat = RPC_CANTENCODEARGS;
goto done_broad; goto done_broad;
@ -311,7 +312,7 @@ clnt_broadcast (prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
recv_again: recv_again:
msg.acpted_rply.ar_verf = _null_auth; msg.acpted_rply.ar_verf = _null_auth;
msg.acpted_rply.ar_results.where = (caddr_t) & r; msg.acpted_rply.ar_results.where = (caddr_t) & r;
msg.acpted_rply.ar_results.proc = (xdrproc_t) INTUSE(xdr_rmtcallres); msg.acpted_rply.ar_results.proc = (xdrproc_t) xdr_rmtcallres;
milliseconds = t.tv_sec * 1000 + t.tv_usec / 1000; milliseconds = t.tv_sec * 1000 + t.tv_usec / 1000;
switch (__poll(&fd, 1, milliseconds)) switch (__poll(&fd, 1, milliseconds))
{ {
@ -346,8 +347,8 @@ clnt_broadcast (prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
* see if reply transaction id matches sent id. * see if reply transaction id matches sent id.
* If so, decode the results. * If so, decode the results.
*/ */
INTUSE(xdrmem_create) (xdrs, inbuf, (u_int) inlen, XDR_DECODE); xdrmem_create (xdrs, inbuf, (u_int) inlen, XDR_DECODE);
if (INTUSE(xdr_replymsg) (xdrs, &msg)) if (xdr_replymsg (xdrs, &msg))
{ {
if (((u_int32_t) msg.rm_xid == (u_int32_t) xid) && if (((u_int32_t) msg.rm_xid == (u_int32_t) xid) &&
(msg.rm_reply.rp_stat == MSG_ACCEPTED) && (msg.rm_reply.rp_stat == MSG_ACCEPTED) &&
@ -368,8 +369,8 @@ clnt_broadcast (prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
#endif #endif
} }
xdrs->x_op = XDR_FREE; xdrs->x_op = XDR_FREE;
msg.acpted_rply.ar_results.proc = (xdrproc_t)INTUSE(xdr_void); msg.acpted_rply.ar_results.proc = (xdrproc_t)xdr_void;
(void) INTUSE(xdr_replymsg) (xdrs, &msg); (void) xdr_replymsg (xdrs, &msg);
(void) (*xresults) (xdrs, resultsp); (void) (*xresults) (xdrs, resultsp);
xdr_destroy (xdrs); xdr_destroy (xdrs);
if (done) if (done)
@ -387,3 +388,4 @@ done_broad:
AUTH_DESTROY (unix_auth); AUTH_DESTROY (unix_auth);
return stat; return stat;
} }
libc_hidden_nolink (clnt_broadcast, GLIBC_2_0)

View File

@ -76,7 +76,7 @@ getpublickey (const char *name, char *key)
return status == NSS_STATUS_SUCCESS; return status == NSS_STATUS_SUCCESS;
} }
libc_hidden_def (getpublickey) libc_hidden_nolink (getpublickey, GLIBC_2_0)
int int
@ -119,3 +119,4 @@ getsecretkey (const char *name, char *key, const char *passwd)
return status == NSS_STATUS_SUCCESS; return status == NSS_STATUS_SUCCESS;
} }
libc_hidden_nolink (getsecretkey, GLIBC_2_0)

View File

@ -125,8 +125,8 @@ xdr_callmsg (XDR *xdrs, struct rpc_msg *cmsg)
buf = XDR_INLINE (xdrs, RNDUP (oa->oa_length)); buf = XDR_INLINE (xdrs, RNDUP (oa->oa_length));
if (buf == NULL) if (buf == NULL)
{ {
if (INTUSE(xdr_opaque) (xdrs, oa->oa_base, if (xdr_opaque (xdrs, oa->oa_base,
oa->oa_length) == FALSE) oa->oa_length) == FALSE)
return FALSE; return FALSE;
} }
else else
@ -142,8 +142,8 @@ xdr_callmsg (XDR *xdrs, struct rpc_msg *cmsg)
buf = XDR_INLINE (xdrs, 2 * BYTES_PER_XDR_UNIT); buf = XDR_INLINE (xdrs, 2 * BYTES_PER_XDR_UNIT);
if (buf == NULL) if (buf == NULL)
{ {
if (INTUSE(xdr_enum) (xdrs, &oa->oa_flavor) == FALSE || if (xdr_enum (xdrs, &oa->oa_flavor) == FALSE ||
INTUSE(xdr_u_int) (xdrs, &oa->oa_length) == FALSE) xdr_u_int (xdrs, &oa->oa_length) == FALSE)
{ {
return FALSE; return FALSE;
} }
@ -165,8 +165,8 @@ xdr_callmsg (XDR *xdrs, struct rpc_msg *cmsg)
buf = XDR_INLINE (xdrs, RNDUP (oa->oa_length)); buf = XDR_INLINE (xdrs, RNDUP (oa->oa_length));
if (buf == NULL) if (buf == NULL)
{ {
if (INTUSE(xdr_opaque) (xdrs, oa->oa_base, if (xdr_opaque (xdrs, oa->oa_base,
oa->oa_length) == FALSE) oa->oa_length) == FALSE)
return FALSE; return FALSE;
} }
else else
@ -182,16 +182,16 @@ xdr_callmsg (XDR *xdrs, struct rpc_msg *cmsg)
} }
} }
if ( if (
INTUSE(xdr_u_long) (xdrs, &(cmsg->rm_xid)) && xdr_u_long (xdrs, &(cmsg->rm_xid)) &&
INTUSE(xdr_enum) (xdrs, (enum_t *) & (cmsg->rm_direction)) && xdr_enum (xdrs, (enum_t *) & (cmsg->rm_direction)) &&
(cmsg->rm_direction == CALL) && (cmsg->rm_direction == CALL) &&
INTUSE(xdr_u_long) (xdrs, &(cmsg->rm_call.cb_rpcvers)) && xdr_u_long (xdrs, &(cmsg->rm_call.cb_rpcvers)) &&
(cmsg->rm_call.cb_rpcvers == RPC_MSG_VERSION) && (cmsg->rm_call.cb_rpcvers == RPC_MSG_VERSION) &&
INTUSE(xdr_u_long) (xdrs, &(cmsg->rm_call.cb_prog)) && xdr_u_long (xdrs, &(cmsg->rm_call.cb_prog)) &&
INTUSE(xdr_u_long) (xdrs, &(cmsg->rm_call.cb_vers)) && xdr_u_long (xdrs, &(cmsg->rm_call.cb_vers)) &&
INTUSE(xdr_u_long) (xdrs, &(cmsg->rm_call.cb_proc)) && xdr_u_long (xdrs, &(cmsg->rm_call.cb_proc)) &&
INTUSE(xdr_opaque_auth) (xdrs, &(cmsg->rm_call.cb_cred))) xdr_opaque_auth (xdrs, &(cmsg->rm_call.cb_cred)))
return INTUSE(xdr_opaque_auth) (xdrs, &(cmsg->rm_call.cb_verf)); return xdr_opaque_auth (xdrs, &(cmsg->rm_call.cb_verf));
return FALSE; return FALSE;
} }
INTDEF(xdr_callmsg) libc_hidden_nolink (xdr_callmsg, GLIBC_2_0)

View File

@ -28,6 +28,7 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <rpc/rpc.h> #include <rpc/rpc.h>
#include <shlib-compat.h>
#ifdef _RPC_THREAD_SAFE_ #ifdef _RPC_THREAD_SAFE_
#undef svc_fdset #undef svc_fdset
@ -44,7 +45,7 @@
section but we cannot add const to the type because this isn't how section but we cannot add const to the type because this isn't how
the variable is declared. So we use the section attribute. */ the variable is declared. So we use the section attribute. */
struct opaque_auth _null_auth __attribute__ ((nocommon)); struct opaque_auth _null_auth __attribute__ ((nocommon));
libc_hidden_def (_null_auth) libc_hidden_nolink (_null_auth, GLIBC_2_0)
fd_set svc_fdset; fd_set svc_fdset;
struct rpc_createerr rpc_createerr; struct rpc_createerr rpc_createerr;
struct pollfd *svc_pollfd; struct pollfd *svc_pollfd;

View File

@ -46,4 +46,4 @@ _rpc_dtablesize (void)
return size; return size;
} }
libc_hidden_def (_rpc_dtablesize) libc_hidden_nolink (_rpc_dtablesize, GLIBC_2_0)

View File

@ -52,12 +52,12 @@ bool_t
xdr_opaque_auth (XDR *xdrs, struct opaque_auth *ap) xdr_opaque_auth (XDR *xdrs, struct opaque_auth *ap)
{ {
if (INTUSE(xdr_enum) (xdrs, &(ap->oa_flavor))) if (xdr_enum (xdrs, &(ap->oa_flavor)))
return INTUSE(xdr_bytes) (xdrs, &ap->oa_base, return xdr_bytes (xdrs, &ap->oa_base,
&ap->oa_length, MAX_AUTH_BYTES); &ap->oa_length, MAX_AUTH_BYTES);
return FALSE; return FALSE;
} }
INTDEF(xdr_opaque_auth) libc_hidden_nolink (xdr_opaque_auth, GLIBC_2_0)
/* /*
* XDR a DES block * XDR a DES block
@ -65,9 +65,9 @@ INTDEF(xdr_opaque_auth)
bool_t bool_t
xdr_des_block (XDR *xdrs, des_block *blkp) xdr_des_block (XDR *xdrs, des_block *blkp)
{ {
return INTUSE(xdr_opaque) (xdrs, (caddr_t) blkp, sizeof (des_block)); return xdr_opaque (xdrs, (caddr_t) blkp, sizeof (des_block));
} }
INTDEF(xdr_des_block) libc_hidden_nolink (xdr_des_block, GLIBC_2_0)
/* * * * * * * * * * * * * * XDR RPC MESSAGE * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * XDR RPC MESSAGE * * * * * * * * * * * * * * * */
@ -78,24 +78,24 @@ bool_t
xdr_accepted_reply (XDR *xdrs, struct accepted_reply *ar) xdr_accepted_reply (XDR *xdrs, struct accepted_reply *ar)
{ {
/* personalized union, rather than calling xdr_union */ /* personalized union, rather than calling xdr_union */
if (!INTUSE(xdr_opaque_auth) (xdrs, &(ar->ar_verf))) if (!xdr_opaque_auth (xdrs, &(ar->ar_verf)))
return FALSE; return FALSE;
if (!INTUSE(xdr_enum) (xdrs, (enum_t *) & (ar->ar_stat))) if (!xdr_enum (xdrs, (enum_t *) & (ar->ar_stat)))
return FALSE; return FALSE;
switch (ar->ar_stat) switch (ar->ar_stat)
{ {
case SUCCESS: case SUCCESS:
return ((*(ar->ar_results.proc)) (xdrs, ar->ar_results.where)); return ((*(ar->ar_results.proc)) (xdrs, ar->ar_results.where));
case PROG_MISMATCH: case PROG_MISMATCH:
if (!INTUSE(xdr_u_long) (xdrs, &(ar->ar_vers.low))) if (!xdr_u_long (xdrs, &(ar->ar_vers.low)))
return FALSE; return FALSE;
return (INTUSE(xdr_u_long) (xdrs, &(ar->ar_vers.high))); return (xdr_u_long (xdrs, &(ar->ar_vers.high)));
default: default:
return TRUE; return TRUE;
} }
return TRUE; /* TRUE => open ended set of problems */ return TRUE; /* TRUE => open ended set of problems */
} }
INTDEF(xdr_accepted_reply) libc_hidden_nolink (xdr_accepted_reply, GLIBC_2_0)
/* /*
* XDR the MSG_DENIED part of a reply message union * XDR the MSG_DENIED part of a reply message union
@ -104,26 +104,26 @@ bool_t
xdr_rejected_reply (XDR *xdrs, struct rejected_reply *rr) xdr_rejected_reply (XDR *xdrs, struct rejected_reply *rr)
{ {
/* personalized union, rather than calling xdr_union */ /* personalized union, rather than calling xdr_union */
if (!INTUSE(xdr_enum) (xdrs, (enum_t *) & (rr->rj_stat))) if (!xdr_enum (xdrs, (enum_t *) & (rr->rj_stat)))
return FALSE; return FALSE;
switch (rr->rj_stat) switch (rr->rj_stat)
{ {
case RPC_MISMATCH: case RPC_MISMATCH:
if (!INTUSE(xdr_u_long) (xdrs, &(rr->rj_vers.low))) if (!xdr_u_long (xdrs, &(rr->rj_vers.low)))
return FALSE; return FALSE;
return INTUSE(xdr_u_long) (xdrs, &(rr->rj_vers.high)); return xdr_u_long (xdrs, &(rr->rj_vers.high));
case AUTH_ERROR: case AUTH_ERROR:
return INTUSE(xdr_enum) (xdrs, (enum_t *) & (rr->rj_why)); return xdr_enum (xdrs, (enum_t *) & (rr->rj_why));
} }
return FALSE; return FALSE;
} }
INTDEF(xdr_rejected_reply) libc_hidden_nolink (xdr_rejected_reply, GLIBC_2_0)
static const struct xdr_discrim reply_dscrm[3] = static const struct xdr_discrim reply_dscrm[3] =
{ {
{(int) MSG_ACCEPTED, (xdrproc_t) INTUSE(xdr_accepted_reply)}, {(int) MSG_ACCEPTED, (xdrproc_t) xdr_accepted_reply},
{(int) MSG_DENIED, (xdrproc_t) INTUSE(xdr_rejected_reply)}, {(int) MSG_DENIED, (xdrproc_t) xdr_rejected_reply},
{__dontcare__, NULL_xdrproc_t}}; {__dontcare__, NULL_xdrproc_t}};
/* /*
@ -134,15 +134,15 @@ xdr_replymsg (xdrs, rmsg)
XDR *xdrs; XDR *xdrs;
struct rpc_msg *rmsg; struct rpc_msg *rmsg;
{ {
if (INTUSE(xdr_u_long) (xdrs, &(rmsg->rm_xid)) && if (xdr_u_long (xdrs, &(rmsg->rm_xid)) &&
INTUSE(xdr_enum) (xdrs, (enum_t *) & (rmsg->rm_direction)) && xdr_enum (xdrs, (enum_t *) & (rmsg->rm_direction)) &&
(rmsg->rm_direction == REPLY)) (rmsg->rm_direction == REPLY))
return INTUSE(xdr_union) (xdrs, (enum_t *) & (rmsg->rm_reply.rp_stat), return xdr_union (xdrs, (enum_t *) & (rmsg->rm_reply.rp_stat),
(caddr_t) & (rmsg->rm_reply.ru), reply_dscrm, (caddr_t) & (rmsg->rm_reply.ru), reply_dscrm,
NULL_xdrproc_t); NULL_xdrproc_t);
return FALSE; return FALSE;
} }
INTDEF(xdr_replymsg) libc_hidden_nolink (xdr_replymsg, GLIBC_2_0)
/* /*
@ -160,14 +160,14 @@ xdr_callhdr (xdrs, cmsg)
cmsg->rm_call.cb_rpcvers = RPC_MSG_VERSION; cmsg->rm_call.cb_rpcvers = RPC_MSG_VERSION;
if ( if (
(xdrs->x_op == XDR_ENCODE) && (xdrs->x_op == XDR_ENCODE) &&
INTUSE(xdr_u_long) (xdrs, &(cmsg->rm_xid)) && xdr_u_long (xdrs, &(cmsg->rm_xid)) &&
INTUSE(xdr_enum) (xdrs, (enum_t *) & (cmsg->rm_direction)) && xdr_enum (xdrs, (enum_t *) & (cmsg->rm_direction)) &&
INTUSE(xdr_u_long) (xdrs, &(cmsg->rm_call.cb_rpcvers)) && xdr_u_long (xdrs, &(cmsg->rm_call.cb_rpcvers)) &&
INTUSE(xdr_u_long) (xdrs, &(cmsg->rm_call.cb_prog))) xdr_u_long (xdrs, &(cmsg->rm_call.cb_prog)))
return INTUSE(xdr_u_long) (xdrs, &(cmsg->rm_call.cb_vers)); return xdr_u_long (xdrs, &(cmsg->rm_call.cb_vers));
return FALSE; return FALSE;
} }
INTDEF(xdr_callhdr) libc_hidden_nolink (xdr_callhdr, GLIBC_2_0)
/* ************************** Client utility routine ************* */ /* ************************** Client utility routine ************* */
@ -277,4 +277,4 @@ _seterr_reply (struct rpc_msg *msg,
break; break;
} }
} }
libc_hidden_def (_seterr_reply) libc_hidden_nolink (_seterr_reply, GLIBC_2_0)

View File

@ -97,7 +97,7 @@ __rpc_thread_svc_fdset (void)
return &svc_fdset; return &svc_fdset;
return &tvp->svc_fdset_s; return &tvp->svc_fdset_s;
} }
libc_hidden_def (__rpc_thread_svc_fdset) libc_hidden_nolink (__rpc_thread_svc_fdset, GLIBC_2_2_3)
struct rpc_createerr * struct rpc_createerr *
__rpc_thread_createerr (void) __rpc_thread_createerr (void)
@ -109,7 +109,7 @@ __rpc_thread_createerr (void)
return &rpc_createerr; return &rpc_createerr;
return &tvp->rpc_createerr_s; return &tvp->rpc_createerr_s;
} }
libc_hidden_def (__rpc_thread_createerr) libc_hidden_nolink (__rpc_thread_createerr, GLIBC_2_2_3)
struct pollfd ** struct pollfd **
__rpc_thread_svc_pollfd (void) __rpc_thread_svc_pollfd (void)
@ -121,7 +121,11 @@ __rpc_thread_svc_pollfd (void)
return &svc_pollfd; return &svc_pollfd;
return &tvp->svc_pollfd_s; return &tvp->svc_pollfd_s;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (__rpc_thread_svc_pollfd) libc_hidden_def (__rpc_thread_svc_pollfd)
#else
libc_hidden_nolink (__rpc_thread_svc_pollfd, GLIBC_2_2_3)
#endif
int * int *
__rpc_thread_svc_max_pollfd (void) __rpc_thread_svc_max_pollfd (void)
@ -133,6 +137,10 @@ __rpc_thread_svc_max_pollfd (void)
return &svc_max_pollfd; return &svc_max_pollfd;
return &tvp->svc_max_pollfd_s; return &tvp->svc_max_pollfd_s;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (__rpc_thread_svc_max_pollfd) libc_hidden_def (__rpc_thread_svc_max_pollfd)
#else
libc_hidden_nolink (__rpc_thread_svc_max_pollfd, GLIBC_2_2_3)
#endif
#endif /* _RPC_THREAD_SAFE_ */ #endif /* _RPC_THREAD_SAFE_ */

View File

@ -140,4 +140,4 @@ rtime (struct sockaddr_in *addrp, struct rpc_timeval *timep,
timep->tv_usec = 0; timep->tv_usec = 0;
return 0; return 0;
} }
libc_hidden_def (rtime) libc_hidden_nolink (rtime, GLIBC_2_1)

View File

@ -115,7 +115,7 @@ xprt_register (SVCXPRT *xprt)
POLLRDNORM | POLLRDBAND); POLLRDNORM | POLLRDBAND);
} }
} }
libc_hidden_def (xprt_register) libc_hidden_nolink (xprt_register, GLIBC_2_0)
/* De-activate a transport handle. */ /* De-activate a transport handle. */
void void
@ -136,7 +136,11 @@ xprt_unregister (SVCXPRT *xprt)
svc_pollfd[i].fd = -1; svc_pollfd[i].fd = -1;
} }
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xprt_unregister) libc_hidden_def (xprt_unregister)
#else
libc_hidden_nolink (xprt_unregister, GLIBC_2_0)
#endif
/* ********************** CALLOUT list related stuff ************* */ /* ********************** CALLOUT list related stuff ************* */
@ -211,7 +215,11 @@ pmap_it:
return TRUE; return TRUE;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (svc_register) libc_hidden_def (svc_register)
#else
libc_hidden_nolink (svc_register, GLIBC_2_0)
#endif
/* Remove a service program from the callout list. */ /* Remove a service program from the callout list. */
void void
@ -234,7 +242,7 @@ svc_unregister (rpcprog_t prog, rpcvers_t vers)
if (! svc_is_mapped (prog, vers)) if (! svc_is_mapped (prog, vers))
pmap_unset (prog, vers); pmap_unset (prog, vers);
} }
libc_hidden_def (svc_unregister) libc_hidden_nolink (svc_unregister, GLIBC_2_0)
/* ******************* REPLY GENERATION ROUTINES ************ */ /* ******************* REPLY GENERATION ROUTINES ************ */
@ -253,7 +261,11 @@ svc_sendreply (register SVCXPRT *xprt, xdrproc_t xdr_results,
rply.acpted_rply.ar_results.proc = xdr_results; rply.acpted_rply.ar_results.proc = xdr_results;
return SVC_REPLY (xprt, &rply); return SVC_REPLY (xprt, &rply);
} }
INTDEF (svc_sendreply) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (svc_sendreply)
#else
libc_hidden_nolink (svc_sendreply, GLIBC_2_0)
#endif
/* No procedure error reply */ /* No procedure error reply */
void void
@ -267,6 +279,11 @@ svcerr_noproc (register SVCXPRT *xprt)
rply.acpted_rply.ar_stat = PROC_UNAVAIL; rply.acpted_rply.ar_stat = PROC_UNAVAIL;
SVC_REPLY (xprt, &rply); SVC_REPLY (xprt, &rply);
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (svcerr_noproc)
#else
libc_hidden_nolink (svcerr_noproc, GLIBC_2_0)
#endif
/* Can't decode args error reply */ /* Can't decode args error reply */
void void
@ -280,7 +297,11 @@ svcerr_decode (register SVCXPRT *xprt)
rply.acpted_rply.ar_stat = GARBAGE_ARGS; rply.acpted_rply.ar_stat = GARBAGE_ARGS;
SVC_REPLY (xprt, &rply); SVC_REPLY (xprt, &rply);
} }
INTDEF (svcerr_decode) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (svcerr_decode)
#else
libc_hidden_nolink (svcerr_decode, GLIBC_2_0)
#endif
/* Some system error */ /* Some system error */
void void
@ -294,6 +315,11 @@ svcerr_systemerr (register SVCXPRT *xprt)
rply.acpted_rply.ar_stat = SYSTEM_ERR; rply.acpted_rply.ar_stat = SYSTEM_ERR;
SVC_REPLY (xprt, &rply); SVC_REPLY (xprt, &rply);
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (svcerr_systemerr)
#else
libc_hidden_nolink (svcerr_systemerr, GLIBC_2_0)
#endif
/* Authentication error reply */ /* Authentication error reply */
void void
@ -307,7 +333,7 @@ svcerr_auth (SVCXPRT *xprt, enum auth_stat why)
rply.rjcted_rply.rj_why = why; rply.rjcted_rply.rj_why = why;
SVC_REPLY (xprt, &rply); SVC_REPLY (xprt, &rply);
} }
libc_hidden_def (svcerr_auth) libc_hidden_nolink (svcerr_auth, GLIBC_2_0)
/* Auth too weak error reply */ /* Auth too weak error reply */
void void
@ -315,6 +341,7 @@ svcerr_weakauth (SVCXPRT *xprt)
{ {
svcerr_auth (xprt, AUTH_TOOWEAK); svcerr_auth (xprt, AUTH_TOOWEAK);
} }
libc_hidden_nolink (svcerr_weakauth, GLIBC_2_0)
/* Program unavailable error reply */ /* Program unavailable error reply */
void void
@ -328,7 +355,7 @@ svcerr_noprog (register SVCXPRT *xprt)
rply.acpted_rply.ar_stat = PROG_UNAVAIL; rply.acpted_rply.ar_stat = PROG_UNAVAIL;
SVC_REPLY (xprt, &rply); SVC_REPLY (xprt, &rply);
} }
libc_hidden_def (svcerr_noprog) libc_hidden_nolink (svcerr_noprog, GLIBC_2_0)
/* Program version mismatch error reply */ /* Program version mismatch error reply */
void void
@ -345,7 +372,7 @@ svcerr_progvers (register SVCXPRT *xprt, rpcvers_t low_vers,
rply.acpted_rply.ar_vers.high = high_vers; rply.acpted_rply.ar_vers.high = high_vers;
SVC_REPLY (xprt, &rply); SVC_REPLY (xprt, &rply);
} }
libc_hidden_def (svcerr_progvers) libc_hidden_nolink (svcerr_progvers, GLIBC_2_0)
/* ******************* SERVER INPUT STUFF ******************* */ /* ******************* SERVER INPUT STUFF ******************* */
@ -372,9 +399,9 @@ svc_getreq (int rdfds)
FD_ZERO (&readfds); FD_ZERO (&readfds);
readfds.fds_bits[0] = rdfds; readfds.fds_bits[0] = rdfds;
INTUSE(svc_getreqset) (&readfds); svc_getreqset (&readfds);
} }
INTDEF (svc_getreq) libc_hidden_nolink (svc_getreq, GLIBC_2_0)
void void
svc_getreqset (fd_set *readfds) svc_getreqset (fd_set *readfds)
@ -391,9 +418,9 @@ svc_getreqset (fd_set *readfds)
maskp = readfds->fds_bits; maskp = readfds->fds_bits;
for (sock = 0; sock < setsize; sock += NFDBITS) for (sock = 0; sock < setsize; sock += NFDBITS)
for (mask = *maskp++; (bit = ffsl (mask)); mask ^= (1L << (bit - 1))) for (mask = *maskp++; (bit = ffsl (mask)); mask ^= (1L << (bit - 1)))
INTUSE(svc_getreq_common) (sock + bit - 1); svc_getreq_common (sock + bit - 1);
} }
INTDEF (svc_getreqset) libc_hidden_nolink (svc_getreqset, GLIBC_2_0)
void void
svc_getreq_poll (struct pollfd *pfdp, int pollretval) svc_getreq_poll (struct pollfd *pfdp, int pollretval)
@ -412,14 +439,18 @@ svc_getreq_poll (struct pollfd *pfdp, int pollretval)
if (p->revents & POLLNVAL) if (p->revents & POLLNVAL)
xprt_unregister (xports[p->fd]); xprt_unregister (xports[p->fd]);
else else
INTUSE(svc_getreq_common) (p->fd); svc_getreq_common (p->fd);
if (++fds_found >= pollretval) if (++fds_found >= pollretval)
break; break;
} }
} }
} }
INTDEF (svc_getreq_poll) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (svc_getreq_poll)
#else
libc_hidden_nolink (svc_getreq_poll, GLIBC_2_2)
#endif
void void
@ -465,7 +496,7 @@ svc_getreq_common (const int fd)
r.rq_xprt->xp_verf.oa_flavor = _null_auth.oa_flavor; r.rq_xprt->xp_verf.oa_flavor = _null_auth.oa_flavor;
r.rq_xprt->xp_verf.oa_length = 0; r.rq_xprt->xp_verf.oa_length = 0;
} }
else if ((why = INTUSE(_authenticate) (&r, &msg)) != AUTH_OK) else if ((why = _authenticate (&r, &msg)) != AUTH_OK)
{ {
svcerr_auth (xprt, why); svcerr_auth (xprt, why);
goto call_done; goto call_done;
@ -511,7 +542,7 @@ svc_getreq_common (const int fd)
} }
while (stat == XPRT_MOREREQS); while (stat == XPRT_MOREREQS);
} }
INTDEF (svc_getreq_common) libc_hidden_nolink (svc_getreq_common, GLIBC_2_2)
#ifdef _RPC_THREAD_SAFE_ #ifdef _RPC_THREAD_SAFE_

View File

@ -105,7 +105,7 @@ _authenticate (register struct svc_req *rqst, struct rpc_msg *msg)
return AUTH_REJECTEDCRED; return AUTH_REJECTEDCRED;
} }
INTDEF(_authenticate) libc_hidden_nolink (_authenticate, GLIBC_2_1)
static enum auth_stat static enum auth_stat
_svcauth_null (struct svc_req *rqst, struct rpc_msg *msg) _svcauth_null (struct svc_req *rqst, struct rpc_msg *msg)

View File

@ -67,8 +67,7 @@ _svcauth_unix (struct svc_req *rqst, struct rpc_msg *msg)
aup->aup_machname = area->area_machname; aup->aup_machname = area->area_machname;
aup->aup_gids = area->area_gids; aup->aup_gids = area->area_gids;
auth_len = (u_int) msg->rm_call.cb_cred.oa_length; auth_len = (u_int) msg->rm_call.cb_cred.oa_length;
INTUSE(xdrmem_create) (&xdrs, msg->rm_call.cb_cred.oa_base, auth_len, xdrmem_create (&xdrs, msg->rm_call.cb_cred.oa_base, auth_len, XDR_DECODE);
XDR_DECODE);
buf = XDR_INLINE (&xdrs, auth_len); buf = XDR_INLINE (&xdrs, auth_len);
if (buf != NULL) if (buf != NULL)
{ {
@ -106,10 +105,10 @@ _svcauth_unix (struct svc_req *rqst, struct rpc_msg *msg)
goto done; goto done;
} }
} }
else if (!INTUSE(xdr_authunix_parms) (&xdrs, aup)) else if (!xdr_authunix_parms (&xdrs, aup))
{ {
xdrs.x_op = XDR_FREE; xdrs.x_op = XDR_FREE;
(void) INTUSE(xdr_authunix_parms) (&xdrs, aup); (void) xdr_authunix_parms (&xdrs, aup);
stat = AUTH_BADCRED; stat = AUTH_BADCRED;
goto done; goto done;
} }

View File

@ -85,10 +85,10 @@ svcraw_create (void)
srp->server.xp_port = 0; srp->server.xp_port = 0;
srp->server.xp_ops = (struct xp_ops *) &server_ops; srp->server.xp_ops = (struct xp_ops *) &server_ops;
srp->server.xp_verf.oa_base = srp->verf_body; srp->server.xp_verf.oa_base = srp->verf_body;
INTUSE(xdrmem_create) (&srp->xdr_stream, srp->_raw_buf, UDPMSGSIZE, xdrmem_create (&srp->xdr_stream, srp->_raw_buf, UDPMSGSIZE, XDR_FREE);
XDR_FREE);
return &srp->server; return &srp->server;
} }
libc_hidden_nolink (svcraw_create, GLIBC_2_0)
static enum xprt_stat static enum xprt_stat
svcraw_stat (SVCXPRT *xprt) svcraw_stat (SVCXPRT *xprt)
@ -109,7 +109,7 @@ svcraw_recv (xprt, msg)
xdrs = &srp->xdr_stream; xdrs = &srp->xdr_stream;
xdrs->x_op = XDR_DECODE; xdrs->x_op = XDR_DECODE;
XDR_SETPOS (xdrs, 0); XDR_SETPOS (xdrs, 0);
if (!INTUSE(xdr_callmsg) (xdrs, msg)) if (!xdr_callmsg (xdrs, msg))
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
@ -125,7 +125,7 @@ svcraw_reply (SVCXPRT *xprt, struct rpc_msg *msg)
xdrs = &srp->xdr_stream; xdrs = &srp->xdr_stream;
xdrs->x_op = XDR_ENCODE; xdrs->x_op = XDR_ENCODE;
XDR_SETPOS (xdrs, 0); XDR_SETPOS (xdrs, 0);
if (!INTUSE(xdr_replymsg) (xdrs, msg)) if (!xdr_replymsg (xdrs, msg))
return FALSE; return FALSE;
(void) XDR_GETPOS (xdrs); /* called just for overhead */ (void) XDR_GETPOS (xdrs); /* called just for overhead */
return TRUE; return TRUE;

View File

@ -46,6 +46,7 @@ svc_exit (void)
svc_pollfd = NULL; svc_pollfd = NULL;
svc_max_pollfd = 0; svc_max_pollfd = 0;
} }
libc_hidden_nolink (svc_exit, GLIBC_2_0)
void void
svc_run (void) svc_run (void)
@ -92,7 +93,7 @@ svc_run (void)
case 0: case 0:
continue; continue;
default: default:
INTUSE(svc_getreq_poll) (my_pollfd, i); svc_getreq_poll (my_pollfd, i);
continue; continue;
} }
break; break;
@ -100,3 +101,4 @@ svc_run (void)
free (my_pollfd); free (my_pollfd);
} }
libc_hidden_nolink (svc_run, GLIBC_2_0)

View File

@ -69,8 +69,8 @@ static SVCXPRT *transp;
#endif #endif
int int
registerrpc (u_long prognum, u_long versnum, u_long procnum, __registerrpc (u_long prognum, u_long versnum, u_long procnum,
char *(*progname) (char *), xdrproc_t inproc, xdrproc_t outproc) char *(*progname) (char *), xdrproc_t inproc, xdrproc_t outproc)
{ {
struct proglst_ *pl; struct proglst_ *pl;
char *buf; char *buf;
@ -85,7 +85,7 @@ registerrpc (u_long prognum, u_long versnum, u_long procnum,
} }
if (transp == 0) if (transp == 0)
{ {
transp = INTUSE(svcudp_create) (RPC_ANYSOCK); transp = svcudp_create (RPC_ANYSOCK);
if (transp == NULL) if (transp == NULL)
{ {
buf = strdup (_("couldn't create an rpc server\n")); buf = strdup (_("couldn't create an rpc server\n"));
@ -123,6 +123,7 @@ registerrpc (u_long prognum, u_long versnum, u_long procnum,
free (buf); free (buf);
return -1; return -1;
} }
compat_symbol (libc, __registerrpc, registerrpc, GLIBC_2_0);
static void static void
universal (struct svc_req *rqstp, SVCXPRT *transp_l) universal (struct svc_req *rqstp, SVCXPRT *transp_l)
@ -138,8 +139,8 @@ universal (struct svc_req *rqstp, SVCXPRT *transp_l)
*/ */
if (rqstp->rq_proc == NULLPROC) if (rqstp->rq_proc == NULLPROC)
{ {
if (INTUSE(svc_sendreply) (transp_l, (xdrproc_t)INTUSE(xdr_void), if (svc_sendreply (transp_l, (xdrproc_t)xdr_void,
(char *) NULL) == FALSE) (char *) NULL) == FALSE)
{ {
__write (STDERR_FILENO, "xxx\n", 4); __write (STDERR_FILENO, "xxx\n", 4);
exit (1); exit (1);
@ -155,14 +156,14 @@ universal (struct svc_req *rqstp, SVCXPRT *transp_l)
__bzero (xdrbuf, sizeof (xdrbuf)); /* required ! */ __bzero (xdrbuf, sizeof (xdrbuf)); /* required ! */
if (!svc_getargs (transp_l, pl->p_inproc, xdrbuf)) if (!svc_getargs (transp_l, pl->p_inproc, xdrbuf))
{ {
INTUSE(svcerr_decode) (transp_l); svcerr_decode (transp_l);
return; return;
} }
outdata = (*(pl->p_progname)) (xdrbuf); outdata = (*(pl->p_progname)) (xdrbuf);
if (outdata == NULL && pl->p_outproc != (xdrproc_t)INTUSE(xdr_void)) if (outdata == NULL && pl->p_outproc != (xdrproc_t)xdr_void)
/* there was an error */ /* there was an error */
return; return;
if (!INTUSE(svc_sendreply) (transp_l, pl->p_outproc, outdata)) if (!svc_sendreply (transp_l, pl->p_outproc, outdata))
{ {
if (__asprintf (&buf, _("trouble replying to prog %d\n"), if (__asprintf (&buf, _("trouble replying to prog %d\n"),
pl->p_prognum) < 0) pl->p_prognum) < 0)

View File

@ -186,6 +186,11 @@ svctcp_create (int sock, u_int sendsize, u_int recvsize)
xprt_register (xprt); xprt_register (xprt);
return xprt; return xprt;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (svctcp_create)
#else
libc_hidden_nolink (svctcp_create, GLIBC_2_0)
#endif
/* /*
* Like svtcp_create(), except the routine takes any *open* UNIX file * Like svtcp_create(), except the routine takes any *open* UNIX file
@ -196,6 +201,7 @@ svcfd_create (int fd, u_int sendsize, u_int recvsize)
{ {
return makefd_xprt (fd, sendsize, recvsize); return makefd_xprt (fd, sendsize, recvsize);
} }
libc_hidden_nolink (svcfd_create, GLIBC_2_0)
static SVCXPRT * static SVCXPRT *
internal_function internal_function
@ -215,8 +221,8 @@ makefd_xprt (int fd, u_int sendsize, u_int recvsize)
return NULL; return NULL;
} }
cd->strm_stat = XPRT_IDLE; cd->strm_stat = XPRT_IDLE;
INTUSE(xdrrec_create) (&(cd->xdrs), sendsize, recvsize, xdrrec_create (&(cd->xdrs), sendsize, recvsize,
(caddr_t) xprt, readtcp, writetcp); (caddr_t) xprt, readtcp, writetcp);
xprt->xp_p2 = NULL; xprt->xp_p2 = NULL;
xprt->xp_p1 = (caddr_t) cd; xprt->xp_p1 = (caddr_t) cd;
xprt->xp_verf.oa_base = cd->verf_body; xprt->xp_verf.oa_base = cd->verf_body;
@ -308,9 +314,9 @@ readtcp (char *xprtptr, char *buf, int len)
case 0: case 0:
goto fatal_err; goto fatal_err;
default: default:
if ((pollfd.revents & POLLERR) || (pollfd.revents & POLLHUP) if ((pollfd.revents & POLLERR) || (pollfd.revents & POLLHUP)
|| (pollfd.revents & POLLNVAL)) || (pollfd.revents & POLLNVAL))
goto fatal_err; goto fatal_err;
break; break;
} }
} }
@ -353,7 +359,7 @@ svctcp_stat (SVCXPRT *xprt)
if (cd->strm_stat == XPRT_DIED) if (cd->strm_stat == XPRT_DIED)
return XPRT_DIED; return XPRT_DIED;
if (!INTUSE(xdrrec_eof) (&(cd->xdrs))) if (!xdrrec_eof (&(cd->xdrs)))
return XPRT_MOREREQS; return XPRT_MOREREQS;
return XPRT_IDLE; return XPRT_IDLE;
} }
@ -365,8 +371,8 @@ svctcp_recv (SVCXPRT *xprt, struct rpc_msg *msg)
XDR *xdrs = &(cd->xdrs); XDR *xdrs = &(cd->xdrs);
xdrs->x_op = XDR_DECODE; xdrs->x_op = XDR_DECODE;
(void) INTUSE(xdrrec_skiprecord) (xdrs); (void) xdrrec_skiprecord (xdrs);
if (INTUSE(xdr_callmsg) (xdrs, msg)) if (xdr_callmsg (xdrs, msg))
{ {
cd->x_id = msg->rm_xid; cd->x_id = msg->rm_xid;
return TRUE; return TRUE;
@ -400,7 +406,7 @@ svctcp_reply (SVCXPRT *xprt, struct rpc_msg *msg)
xdrs->x_op = XDR_ENCODE; xdrs->x_op = XDR_ENCODE;
msg->rm_xid = cd->x_id; msg->rm_xid = cd->x_id;
stat = INTUSE(xdr_replymsg) (xdrs, msg); stat = xdr_replymsg (xdrs, msg);
(void) INTUSE(xdrrec_endofrecord) (xdrs, TRUE); (void) xdrrec_endofrecord (xdrs, TRUE);
return stat; return stat;
} }

View File

@ -152,8 +152,7 @@ svcudp_bufcreate (sock, sendsz, recvsz)
} }
su->su_iosz = ((MAX (sendsz, recvsz) + 3) / 4) * 4; su->su_iosz = ((MAX (sendsz, recvsz) + 3) / 4) * 4;
rpc_buffer (xprt) = buf; rpc_buffer (xprt) = buf;
INTUSE(xdrmem_create) (&(su->su_xdrs), rpc_buffer (xprt), su->su_iosz, xdrmem_create (&(su->su_xdrs), rpc_buffer (xprt), su->su_iosz, XDR_DECODE);
XDR_DECODE);
su->su_cache = NULL; su->su_cache = NULL;
xprt->xp_p2 = (caddr_t) su; xprt->xp_p2 = (caddr_t) su;
xprt->xp_verf.oa_base = su->su_verfbody; xprt->xp_verf.oa_base = su->su_verfbody;
@ -184,15 +183,19 @@ svcudp_create: xp_pad is too small for IP_PKTINFO\n"));
xprt_register (xprt); xprt_register (xprt);
return xprt; return xprt;
} }
INTDEF (svcudp_bufcreate) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (svcudp_bufcreate)
#else
libc_hidden_nolink (svcudp_bufcreate, GLIBC_2_0)
#endif
SVCXPRT * SVCXPRT *
svcudp_create (sock) svcudp_create (sock)
int sock; int sock;
{ {
return INTUSE(svcudp_bufcreate) (sock, UDPMSGSIZE, UDPMSGSIZE); return svcudp_bufcreate (sock, UDPMSGSIZE, UDPMSGSIZE);
} }
INTDEF (svcudp_create) libc_hidden_nolink (svcudp_create, GLIBC_2_0)
static enum xprt_stat static enum xprt_stat
svcudp_stat (xprt) svcudp_stat (xprt)
@ -278,7 +281,7 @@ again:
return FALSE; return FALSE;
xdrs->x_op = XDR_DECODE; xdrs->x_op = XDR_DECODE;
XDR_SETPOS (xdrs, 0); XDR_SETPOS (xdrs, 0);
if (!INTUSE(xdr_callmsg) (xdrs, msg)) if (!xdr_callmsg (xdrs, msg))
return FALSE; return FALSE;
su->su_xid = msg->rm_xid; su->su_xid = msg->rm_xid;
if (su->su_cache != NULL) if (su->su_cache != NULL)
@ -319,7 +322,7 @@ svcudp_reply (xprt, msg)
xdrs->x_op = XDR_ENCODE; xdrs->x_op = XDR_ENCODE;
XDR_SETPOS (xdrs, 0); XDR_SETPOS (xdrs, 0);
msg->rm_xid = su->su_xid; msg->rm_xid = su->su_xid;
if (INTUSE(xdr_replymsg) (xdrs, msg)) if (xdr_replymsg (xdrs, msg))
{ {
slen = (int) XDR_GETPOS (xdrs); slen = (int) XDR_GETPOS (xdrs);
#ifdef IP_PKTINFO #ifdef IP_PKTINFO
@ -495,6 +498,7 @@ svcudp_enablecache (SVCXPRT *transp, u_long size)
su->su_cache = (char *) uc; su->su_cache = (char *) uc;
return 1; return 1;
} }
libc_hidden_nolink (svcudp_enablecache, GLIBC_2_0)
/* /*
@ -553,8 +557,7 @@ cache_set (SVCXPRT *xprt, u_long replylen)
victim->cache_replylen = replylen; victim->cache_replylen = replylen;
victim->cache_reply = rpc_buffer (xprt); victim->cache_reply = rpc_buffer (xprt);
rpc_buffer (xprt) = newbuf; rpc_buffer (xprt) = newbuf;
INTUSE(xdrmem_create) (&(su->su_xdrs), rpc_buffer (xprt), su->su_iosz, xdrmem_create (&(su->su_xdrs), rpc_buffer (xprt), su->su_iosz, XDR_ENCODE);
XDR_ENCODE);
victim->cache_xid = su->su_xid; victim->cache_xid = su->su_xid;
victim->cache_proc = uc->uc_proc; victim->cache_proc = uc->uc_proc;
victim->cache_vers = uc->uc_vers; victim->cache_vers = uc->uc_vers;

View File

@ -187,6 +187,7 @@ svcunix_create (int sock, u_int sendsize, u_int recvsize, char *path)
xprt_register (xprt); xprt_register (xprt);
return xprt; return xprt;
} }
libc_hidden_nolink (svcunix_create, GLIBC_2_1)
/* /*
* Like svunix_create(), except the routine takes any *open* UNIX file * Like svunix_create(), except the routine takes any *open* UNIX file
@ -197,6 +198,7 @@ svcunixfd_create (int fd, u_int sendsize, u_int recvsize)
{ {
return makefd_xprt (fd, sendsize, recvsize); return makefd_xprt (fd, sendsize, recvsize);
} }
libc_hidden_nolink (svcunixfd_create, GLIBC_2_1)
static SVCXPRT * static SVCXPRT *
internal_function internal_function
@ -216,8 +218,8 @@ makefd_xprt (int fd, u_int sendsize, u_int recvsize)
return NULL; return NULL;
} }
cd->strm_stat = XPRT_IDLE; cd->strm_stat = XPRT_IDLE;
INTUSE(xdrrec_create) (&(cd->xdrs), sendsize, recvsize, xdrrec_create (&(cd->xdrs), sendsize, recvsize,
(caddr_t) xprt, readunix, writeunix); (caddr_t) xprt, readunix, writeunix);
xprt->xp_p2 = NULL; xprt->xp_p2 = NULL;
xprt->xp_p1 = (caddr_t) cd; xprt->xp_p1 = (caddr_t) cd;
xprt->xp_verf.oa_base = cd->verf_body; xprt->xp_verf.oa_base = cd->verf_body;
@ -332,9 +334,9 @@ __msgread (int sock, void *data, size_t cnt)
if (len >= 0) if (len >= 0)
{ {
if (msg.msg_flags & MSG_CTRUNC || len == 0) if (msg.msg_flags & MSG_CTRUNC || len == 0)
return 0; return 0;
else else
return len; return len;
} }
if (errno == EINTR) if (errno == EINTR)
goto restart; goto restart;
@ -460,7 +462,7 @@ svcunix_stat (SVCXPRT *xprt)
if (cd->strm_stat == XPRT_DIED) if (cd->strm_stat == XPRT_DIED)
return XPRT_DIED; return XPRT_DIED;
if (!INTUSE(xdrrec_eof) (&(cd->xdrs))) if (!xdrrec_eof (&(cd->xdrs)))
return XPRT_MOREREQS; return XPRT_MOREREQS;
return XPRT_IDLE; return XPRT_IDLE;
} }
@ -472,8 +474,8 @@ svcunix_recv (SVCXPRT *xprt, struct rpc_msg *msg)
XDR *xdrs = &(cd->xdrs); XDR *xdrs = &(cd->xdrs);
xdrs->x_op = XDR_DECODE; xdrs->x_op = XDR_DECODE;
INTUSE(xdrrec_skiprecord) (xdrs); xdrrec_skiprecord (xdrs);
if (INTUSE(xdr_callmsg) (xdrs, msg)) if (xdr_callmsg (xdrs, msg))
{ {
cd->x_id = msg->rm_xid; cd->x_id = msg->rm_xid;
/* set up verifiers */ /* set up verifiers */
@ -513,7 +515,7 @@ svcunix_reply (SVCXPRT *xprt, struct rpc_msg *msg)
xdrs->x_op = XDR_ENCODE; xdrs->x_op = XDR_ENCODE;
msg->rm_xid = cd->x_id; msg->rm_xid = cd->x_id;
stat = INTUSE(xdr_replymsg) (xdrs, msg); stat = xdr_replymsg (xdrs, msg);
(void) INTUSE(xdrrec_endofrecord) (xdrs, TRUE); (void) xdrrec_endofrecord (xdrs, TRUE);
return stat; return stat;
} }

View File

@ -583,6 +583,7 @@ authdes_getucred (const struct authdes_cred *adc, uid_t * uid, gid_t * gid,
groups[i] = cred->groups[i]; groups[i] = cred->groups[i];
return 1; return 1;
} }
libc_hidden_nolink (authdes_getucred, GLIBC_2_1)
static void static void
internal_function internal_function

View File

@ -89,7 +89,7 @@ passwd2des_internal (char *pw, char *key)
#ifdef _LIBC #ifdef _LIBC
libc_hidden_def (passwd2des_internal) libc_hidden_def (passwd2des_internal)
strong_alias (passwd2des_internal, passwd2des) compat_symbol (libc, passwd2des_internal, passwd2des, GLIBC_2_1);
#else #else
void passwd2des (char *pw, char *key) void passwd2des (char *pw, char *key)
{ {
@ -127,6 +127,7 @@ xencrypt (char *secret, char *passwd)
free (buf); free (buf);
return 1; return 1;
} }
libc_hidden_nolink (xencrypt, GLIBC_2_0)
/* /*
* Decrypt secret key using passwd * Decrypt secret key using passwd
@ -159,6 +160,11 @@ xdecrypt (char *secret, char *passwd)
free (buf); free (buf);
return 1; return 1;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdecrypt)
#else
libc_hidden_nolink (xdecrypt, GLIBC_2_1)
#endif
/* /*
* Hex to binary conversion * Hex to binary conversion

View File

@ -71,6 +71,11 @@ xdr_free (xdrproc_t proc, char *objp)
x.x_op = XDR_FREE; x.x_op = XDR_FREE;
(*proc) (&x, objp); (*proc) (&x, objp);
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_free)
#else
libc_hidden_nolink (xdr_free, GLIBC_2_0)
#endif
/* /*
* XDR nothing * XDR nothing
@ -80,7 +85,11 @@ xdr_void (void)
{ {
return TRUE; return TRUE;
} }
INTDEF(xdr_void) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_void)
#else
libc_hidden_nolink (xdr_void, GLIBC_2_0)
#endif
/* /*
* XDR integers * XDR integers
@ -109,14 +118,18 @@ xdr_int (XDR *xdrs, int *ip)
} }
return FALSE; return FALSE;
#elif INT_MAX == LONG_MAX #elif INT_MAX == LONG_MAX
return INTUSE(xdr_long) (xdrs, (long *) ip); return xdr_long (xdrs, (long *) ip);
#elif INT_MAX == SHRT_MAX #elif INT_MAX == SHRT_MAX
return INTUSE(xdr_short) (xdrs, (short *) ip); return xdr_short (xdrs, (short *) ip);
#else #else
#error unexpected integer sizes in_xdr_int() #error unexpected integer sizes in_xdr_int()
#endif #endif
} }
INTDEF(xdr_int) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_int)
#else
libc_hidden_nolink (xdr_int, GLIBC_2_0)
#endif
/* /*
* XDR unsigned integers * XDR unsigned integers
@ -144,14 +157,18 @@ xdr_u_int (XDR *xdrs, u_int *up)
} }
return FALSE; return FALSE;
#elif UINT_MAX == ULONG_MAX #elif UINT_MAX == ULONG_MAX
return INTUSE(xdr_u_long) (xdrs, (u_long *) up); return xdr_u_long (xdrs, (u_long *) up);
#elif UINT_MAX == USHRT_MAX #elif UINT_MAX == USHRT_MAX
return INTUSE(xdr_short) (xdrs, (short *) up); return xdr_short (xdrs, (short *) up);
#else #else
#error unexpected integer sizes in_xdr_u_int() #error unexpected integer sizes in_xdr_u_int()
#endif #endif
} }
INTDEF(xdr_u_int) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_u_int)
#else
libc_hidden_nolink (xdr_u_int, GLIBC_2_0)
#endif
/* /*
* XDR long integers * XDR long integers
@ -175,7 +192,11 @@ xdr_long (XDR *xdrs, long *lp)
return FALSE; return FALSE;
} }
INTDEF(xdr_long) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_long)
#else
libc_hidden_nolink (xdr_long, GLIBC_2_0)
#endif
/* /*
* XDR unsigned long integers * XDR unsigned long integers
@ -210,7 +231,11 @@ xdr_u_long (XDR *xdrs, u_long *ulp)
} }
return FALSE; return FALSE;
} }
INTDEF(xdr_u_long) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_u_long)
#else
libc_hidden_nolink (xdr_u_long, GLIBC_2_0)
#endif
/* /*
* XDR hyper integers * XDR hyper integers
@ -242,8 +267,11 @@ xdr_hyper (XDR *xdrs, quad_t *llp)
return FALSE; return FALSE;
} }
INTDEF(xdr_hyper) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_hyper)
#else
libc_hidden_nolink (xdr_hyper, GLIBC_2_1_1)
#endif
/* /*
* XDR hyper integers * XDR hyper integers
@ -275,19 +303,33 @@ xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
return FALSE; return FALSE;
} }
INTDEF(xdr_u_hyper) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_u_hyper)
#else
libc_hidden_nolink (xdr_u_hyper, GLIBC_2_1_1)
#endif
bool_t bool_t
xdr_longlong_t (XDR *xdrs, quad_t *llp) xdr_longlong_t (XDR *xdrs, quad_t *llp)
{ {
return INTUSE(xdr_hyper) (xdrs, llp); return xdr_hyper (xdrs, llp);
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_longlong_t)
#else
libc_hidden_nolink (xdr_longlong_t, GLIBC_2_1_1)
#endif
bool_t bool_t
xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp) xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp)
{ {
return INTUSE(xdr_u_hyper) (xdrs, ullp); return xdr_u_hyper (xdrs, ullp);
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_u_longlong_t)
#else
libc_hidden_nolink (xdr_u_longlong_t, GLIBC_2_1_1)
#endif
/* /*
* XDR short integers * XDR short integers
@ -316,7 +358,11 @@ xdr_short (XDR *xdrs, short *sp)
} }
return FALSE; return FALSE;
} }
INTDEF(xdr_short) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_short)
#else
libc_hidden_nolink (xdr_short, GLIBC_2_0)
#endif
/* /*
* XDR unsigned short integers * XDR unsigned short integers
@ -345,7 +391,11 @@ xdr_u_short (XDR *xdrs, u_short *usp)
} }
return FALSE; return FALSE;
} }
INTDEF(xdr_u_short) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_u_short)
#else
libc_hidden_nolink (xdr_u_short, GLIBC_2_0)
#endif
/* /*
@ -357,13 +407,18 @@ xdr_char (XDR *xdrs, char *cp)
int i; int i;
i = (*cp); i = (*cp);
if (!INTUSE(xdr_int) (xdrs, &i)) if (!xdr_int (xdrs, &i))
{ {
return FALSE; return FALSE;
} }
*cp = i; *cp = i;
return TRUE; return TRUE;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_char)
#else
libc_hidden_nolink (xdr_char, GLIBC_2_0)
#endif
/* /*
* XDR an unsigned char * XDR an unsigned char
@ -374,13 +429,18 @@ xdr_u_char (XDR *xdrs, u_char *cp)
u_int u; u_int u;
u = (*cp); u = (*cp);
if (!INTUSE(xdr_u_int) (xdrs, &u)) if (!xdr_u_int (xdrs, &u))
{ {
return FALSE; return FALSE;
} }
*cp = u; *cp = u;
return TRUE; return TRUE;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_u_char)
#else
libc_hidden_nolink (xdr_u_char, GLIBC_2_0)
#endif
/* /*
* XDR booleans * XDR booleans
@ -409,7 +469,11 @@ xdr_bool (XDR *xdrs, bool_t *bp)
} }
return FALSE; return FALSE;
} }
INTDEF(xdr_bool) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_bool)
#else
libc_hidden_nolink (xdr_bool, GLIBC_2_0)
#endif
/* /*
* XDR enumerations * XDR enumerations
@ -448,19 +512,23 @@ xdr_enum (XDR *xdrs, enum_t *ep)
} }
return FALSE; return FALSE;
#else #else
return INTUSE(xdr_long) (xdrs, (long *) ep); return xdr_long (xdrs, (long *) ep);
#endif #endif
} }
else if (sizeof (enum sizecheck) == sizeof (short)) else if (sizeof (enum sizecheck) == sizeof (short))
{ {
return INTUSE(xdr_short) (xdrs, (short *) ep); return xdr_short (xdrs, (short *) ep);
} }
else else
{ {
return FALSE; return FALSE;
} }
} }
INTDEF(xdr_enum) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_enum)
#else
libc_hidden_nolink (xdr_enum, GLIBC_2_0)
#endif
/* /*
* XDR opaque data * XDR opaque data
@ -511,7 +579,11 @@ xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)
} }
return FALSE; return FALSE;
} }
INTDEF(xdr_opaque) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_opaque)
#else
libc_hidden_nolink (xdr_opaque, GLIBC_2_0)
#endif
/* /*
* XDR counted bytes * XDR counted bytes
@ -531,7 +603,7 @@ xdr_bytes (xdrs, cpp, sizep, maxsize)
/* /*
* first deal with the length since xdr bytes are counted * first deal with the length since xdr bytes are counted
*/ */
if (!INTUSE(xdr_u_int) (xdrs, sizep)) if (!xdr_u_int (xdrs, sizep))
{ {
return FALSE; return FALSE;
} }
@ -563,7 +635,7 @@ xdr_bytes (xdrs, cpp, sizep, maxsize)
/* fall into ... */ /* fall into ... */
case XDR_ENCODE: case XDR_ENCODE:
return INTUSE(xdr_opaque) (xdrs, sp, nodesize); return xdr_opaque (xdrs, sp, nodesize);
case XDR_FREE: case XDR_FREE:
if (sp != NULL) if (sp != NULL)
@ -575,7 +647,11 @@ xdr_bytes (xdrs, cpp, sizep, maxsize)
} }
return FALSE; return FALSE;
} }
INTDEF(xdr_bytes) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_bytes)
#else
libc_hidden_nolink (xdr_bytes, GLIBC_2_0)
#endif
/* /*
* Implemented here due to commonality of the object. * Implemented here due to commonality of the object.
@ -586,9 +662,13 @@ xdr_netobj (xdrs, np)
struct netobj *np; struct netobj *np;
{ {
return INTUSE(xdr_bytes) (xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ); return xdr_bytes (xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ);
} }
INTDEF(xdr_netobj) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_netobj)
#else
libc_hidden_nolink (xdr_netobj, GLIBC_2_0)
#endif
/* /*
* XDR a discriminated union * XDR a discriminated union
@ -614,7 +694,7 @@ xdr_union (xdrs, dscmp, unp, choices, dfault)
/* /*
* we deal with the discriminator; it's an enum * we deal with the discriminator; it's an enum
*/ */
if (!INTUSE(xdr_enum) (xdrs, dscmp)) if (!xdr_enum (xdrs, dscmp))
{ {
return FALSE; return FALSE;
} }
@ -636,7 +716,7 @@ xdr_union (xdrs, dscmp, unp, choices, dfault)
return ((dfault == NULL_xdrproc_t) ? FALSE : return ((dfault == NULL_xdrproc_t) ? FALSE :
(*dfault) (xdrs, unp, LASTUNSIGNED)); (*dfault) (xdrs, unp, LASTUNSIGNED));
} }
INTDEF(xdr_union) libc_hidden_nolink (xdr_union, GLIBC_2_0)
/* /*
@ -682,7 +762,7 @@ xdr_string (xdrs, cpp, maxsize)
case XDR_DECODE: case XDR_DECODE:
break; break;
} }
if (!INTUSE(xdr_u_int) (xdrs, &size)) if (!xdr_u_int (xdrs, &size))
{ {
return FALSE; return FALSE;
} }
@ -716,7 +796,7 @@ xdr_string (xdrs, cpp, maxsize)
/* fall into ... */ /* fall into ... */
case XDR_ENCODE: case XDR_ENCODE:
return INTUSE(xdr_opaque) (xdrs, sp, size); return xdr_opaque (xdrs, sp, size);
case XDR_FREE: case XDR_FREE:
mem_free (sp, nodesize); mem_free (sp, nodesize);
@ -725,7 +805,11 @@ xdr_string (xdrs, cpp, maxsize)
} }
return FALSE; return FALSE;
} }
INTDEF(xdr_string) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_string)
#else
libc_hidden_nolink (xdr_string, GLIBC_2_0)
#endif
/* /*
* Wrapper for xdr_string that can be called directly from * Wrapper for xdr_string that can be called directly from
@ -736,9 +820,14 @@ xdr_wrapstring (xdrs, cpp)
XDR *xdrs; XDR *xdrs;
char **cpp; char **cpp;
{ {
if (INTUSE(xdr_string) (xdrs, cpp, LASTUNSIGNED)) if (xdr_string (xdrs, cpp, LASTUNSIGNED))
{ {
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_wrapstring)
#else
libc_hidden_nolink (xdr_wrapstring, GLIBC_2_0)
#endif

View File

@ -70,7 +70,7 @@ xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
bool_t stat = TRUE; bool_t stat = TRUE;
/* like strings, arrays are really counted arrays */ /* like strings, arrays are really counted arrays */
if (!INTUSE(xdr_u_int) (xdrs, sizep)) if (!xdr_u_int (xdrs, sizep))
{ {
return FALSE; return FALSE;
} }
@ -127,7 +127,11 @@ xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
} }
return stat; return stat;
} }
INTDEF(xdr_array) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_array)
#else
libc_hidden_nolink (xdr_array, GLIBC_2_0)
#endif
/* /*
* xdr_vector(): * xdr_vector():
@ -161,3 +165,4 @@ xdr_vector (xdrs, basep, nelem, elemsize, xdr_elem)
} }
return TRUE; return TRUE;
} }
libc_hidden_nolink (xdr_vector, GLIBC_2_0)

View File

@ -158,6 +158,7 @@ xdr_float(xdrs, fp)
} }
return (FALSE); return (FALSE);
} }
libc_hidden_nolink (xdr_float, GLIBC_2_0)
/* /*
* This routine works on Suns (Sky / 68000's) and Vaxen. * This routine works on Suns (Sky / 68000's) and Vaxen.
@ -299,3 +300,4 @@ xdr_double(xdrs, dp)
} }
return (FALSE); return (FALSE);
} }
libc_hidden_nolink (xdr_double, GLIBC_2_0)

View File

@ -20,11 +20,7 @@
#include <rpc/types.h> #include <rpc/types.h>
/* We play dirty tricks with aliases. */ /* We play dirty tricks with aliases. */
#define xdr_quad_t Xdr_quad_t
#define xdr_u_quad_t Xdr_u_quad_t
#include <rpc/xdr.h> #include <rpc/xdr.h>
#undef xdr_quad_t
#undef xdr_u_quad_t
/* XDR 64bit integers */ /* XDR 64bit integers */
@ -41,7 +37,7 @@ xdr_int64_t (XDR *xdrs, int64_t *ip)
return (XDR_PUTINT32(xdrs, &t1) && XDR_PUTINT32(xdrs, &t2)); return (XDR_PUTINT32(xdrs, &t1) && XDR_PUTINT32(xdrs, &t2));
case XDR_DECODE: case XDR_DECODE:
if (!XDR_GETINT32(xdrs, &t1) || !XDR_GETINT32(xdrs, &t2)) if (!XDR_GETINT32(xdrs, &t1) || !XDR_GETINT32(xdrs, &t2))
return FALSE; return FALSE;
*ip = ((int64_t) t1) << 32; *ip = ((int64_t) t1) << 32;
*ip |= (uint32_t) t2; /* Avoid sign extension. */ *ip |= (uint32_t) t2; /* Avoid sign extension. */
return TRUE; return TRUE;
@ -51,7 +47,14 @@ xdr_int64_t (XDR *xdrs, int64_t *ip)
return FALSE; return FALSE;
} }
} }
strong_alias (xdr_int64_t, xdr_quad_t) libc_hidden_nolink (xdr_int64_t, GLIBC_2_1_1)
bool_t
xdr_quad_t (XDR *xdrs, quad_t *ip)
{
return xdr_int64_t (xdrs, (int64_t *) ip);
}
libc_hidden_nolink (xdr_quad_t, GLIBC_2_3_4)
/* XDR 64bit unsigned integers */ /* XDR 64bit unsigned integers */
bool_t bool_t
@ -70,7 +73,7 @@ xdr_uint64_t (XDR *xdrs, uint64_t *uip)
case XDR_DECODE: case XDR_DECODE:
if (!XDR_GETINT32(xdrs, (int32_t *) &t1) || if (!XDR_GETINT32(xdrs, (int32_t *) &t1) ||
!XDR_GETINT32(xdrs, (int32_t *) &t2)) !XDR_GETINT32(xdrs, (int32_t *) &t2))
return FALSE; return FALSE;
*uip = ((uint64_t) t1) << 32; *uip = ((uint64_t) t1) << 32;
*uip |= t2; *uip |= t2;
return TRUE; return TRUE;
@ -80,7 +83,14 @@ xdr_uint64_t (XDR *xdrs, uint64_t *uip)
return FALSE; return FALSE;
} }
} }
strong_alias (xdr_int64_t, xdr_u_quad_t) libc_hidden_nolink (xdr_uint64_t, GLIBC_2_1_1)
bool_t
xdr_u_quad_t (XDR *xdrs, u_quad_t *ip)
{
return xdr_uint64_t (xdrs, (uint64_t *) ip);
}
libc_hidden_nolink (xdr_u_quad_t, GLIBC_2_3_4)
/* XDR 32bit integers */ /* XDR 32bit integers */
bool_t bool_t
@ -98,6 +108,7 @@ xdr_int32_t (XDR *xdrs, int32_t *lp)
return FALSE; return FALSE;
} }
} }
libc_hidden_nolink (xdr_int32_t, GLIBC_2_1)
/* XDR 32bit unsigned integers */ /* XDR 32bit unsigned integers */
bool_t bool_t
@ -115,6 +126,11 @@ xdr_uint32_t (XDR *xdrs, uint32_t *ulp)
return FALSE; return FALSE;
} }
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_uint32_t)
#else
libc_hidden_nolink (xdr_uint32_t, GLIBC_2_1)
#endif
/* XDR 16bit integers */ /* XDR 16bit integers */
bool_t bool_t
@ -138,6 +154,7 @@ xdr_int16_t (XDR *xdrs, int16_t *ip)
return FALSE; return FALSE;
} }
} }
libc_hidden_nolink (xdr_int16_t, GLIBC_2_1)
/* XDR 16bit unsigned integers */ /* XDR 16bit unsigned integers */
bool_t bool_t
@ -161,6 +178,7 @@ xdr_uint16_t (XDR *xdrs, uint16_t *uip)
return FALSE; return FALSE;
} }
} }
libc_hidden_nolink (xdr_uint16_t, GLIBC_2_1)
/* XDR 8bit integers */ /* XDR 8bit integers */
bool_t bool_t
@ -184,6 +202,7 @@ xdr_int8_t (XDR *xdrs, int8_t *ip)
return FALSE; return FALSE;
} }
} }
libc_hidden_nolink (xdr_int8_t, GLIBC_2_1)
/* XDR 8bit unsigned integers */ /* XDR 8bit unsigned integers */
bool_t bool_t
@ -207,3 +226,4 @@ xdr_uint8_t (XDR *xdrs, uint8_t *uip)
return FALSE; return FALSE;
} }
} }
libc_hidden_nolink (xdr_uint8_t, GLIBC_2_1)

View File

@ -78,7 +78,11 @@ xdrmem_create (XDR *xdrs, const caddr_t addr, u_int size, enum xdr_op op)
xdrs->x_private = xdrs->x_base = addr; xdrs->x_private = xdrs->x_base = addr;
xdrs->x_handy = size; xdrs->x_handy = size;
} }
INTDEF(xdrmem_create) #ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdrmem_create)
#else
libc_hidden_nolink (xdrmem_create, GLIBC_2_0)
#endif
/* /*
* Nothing needs to be done for the memory case. The argument is clearly * Nothing needs to be done for the memory case. The argument is clearly

View File

@ -192,7 +192,7 @@ xdrrec_create (XDR *xdrs, u_int sendsize,
rstrm->fbtbc = 0; rstrm->fbtbc = 0;
rstrm->last_frag = TRUE; rstrm->last_frag = TRUE;
} }
INTDEF(xdrrec_create) libc_hidden_nolink (xdrrec_create, GLIBC_2_0)
/* /*
@ -480,7 +480,7 @@ xdrrec_skiprecord (XDR *xdrs)
rstrm->last_frag = FALSE; rstrm->last_frag = FALSE;
return TRUE; return TRUE;
} }
INTDEF(xdrrec_skiprecord) libc_hidden_nolink (xdrrec_skiprecord, GLIBC_2_0)
/* /*
* Lookahead function. * Lookahead function.
@ -504,7 +504,7 @@ xdrrec_eof (XDR *xdrs)
return TRUE; return TRUE;
return FALSE; return FALSE;
} }
INTDEF(xdrrec_eof) libc_hidden_nolink (xdrrec_eof, GLIBC_2_0)
/* /*
* The client must tell the package when an end-of-record has occurred. * The client must tell the package when an end-of-record has occurred.
@ -531,7 +531,7 @@ xdrrec_endofrecord (XDR *xdrs, bool_t sendnow)
rstrm->out_finger += BYTES_PER_XDR_UNIT; rstrm->out_finger += BYTES_PER_XDR_UNIT;
return TRUE; return TRUE;
} }
INTDEF(xdrrec_endofrecord) libc_hidden_nolink (xdrrec_endofrecord, GLIBC_2_0)
/* /*

View File

@ -93,7 +93,7 @@ xdr_reference (xdrs, pp, size, proc)
} }
return stat; return stat;
} }
INTDEF(xdr_reference) libc_hidden_nolink (xdr_reference, GLIBC_2_0)
/* /*
@ -126,7 +126,7 @@ xdr_pointer (xdrs, objpp, obj_size, xdr_obj)
bool_t more_data; bool_t more_data;
more_data = (*objpp != NULL); more_data = (*objpp != NULL);
if (!INTUSE(xdr_bool) (xdrs, &more_data)) if (!xdr_bool (xdrs, &more_data))
{ {
return FALSE; return FALSE;
} }
@ -135,5 +135,10 @@ xdr_pointer (xdrs, objpp, obj_size, xdr_obj)
*objpp = NULL; *objpp = NULL;
return TRUE; return TRUE;
} }
return INTUSE(xdr_reference) (xdrs, objpp, obj_size, xdr_obj); return xdr_reference (xdrs, objpp, obj_size, xdr_obj);
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_pointer)
#else
libc_hidden_nolink (xdr_pointer, GLIBC_2_0)
#endif

View File

@ -158,3 +158,8 @@ xdr_sizeof (xdrproc_t func, void *data)
free (x.x_private); free (x.x_private);
return stat == TRUE ? x.x_handy : 0; return stat == TRUE ? x.x_handy : 0;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_sizeof)
#else
libc_hidden_nolink (xdr_sizeof, GLIBC_2_1)
#endif

View File

@ -190,5 +190,8 @@ xdrstdio_putint32 (XDR *xdrs, const int32_t *ip)
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdrstdio_create) libc_hidden_def (xdrstdio_create)
#else
libc_hidden_nolink (xdrstdio_create, GLIBC_2_0)
#endif