aboutsummaryrefslogtreecommitdiff
path: root/sunrpc
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-04-16 21:59:36 -0400
committerUlrich Drepper <drepper@gmail.com>2011-04-16 21:59:36 -0400
commit7b57bfe5988e476ea40934457dfd1c8a231e2391 (patch)
tree33dbec2b9a1a8fd8472a214945090f31d5372a8e /sunrpc
parente6c61494125126d2ba77e5d99f83887a2ed49783 (diff)
downloadglibc-7b57bfe5988e476ea40934457dfd1c8a231e2391.tar.xz
glibc-7b57bfe5988e476ea40934457dfd1c8a231e2391.zip
Obsolete RPC implementation in libc.
Diffstat (limited to 'sunrpc')
-rw-r--r--sunrpc/Makefile67
-rw-r--r--sunrpc/auth_des.c25
-rw-r--r--sunrpc/auth_none.c10
-rw-r--r--sunrpc/auth_unix.c38
-rw-r--r--sunrpc/authdes_prot.c29
-rw-r--r--sunrpc/authuxprot.c24
-rw-r--r--sunrpc/clnt_gen.c12
-rw-r--r--sunrpc/clnt_perr.c15
-rw-r--r--sunrpc/clnt_raw.c16
-rw-r--r--sunrpc/clnt_simp.c3
-rw-r--r--sunrpc/clnt_tcp.c30
-rw-r--r--sunrpc/clnt_udp.c38
-rw-r--r--sunrpc/clnt_unix.c50
-rw-r--r--sunrpc/des_crypt.c5
-rw-r--r--sunrpc/des_soft.c3
-rw-r--r--sunrpc/get_myaddr.c5
-rw-r--r--sunrpc/key_call.c90
-rw-r--r--sunrpc/key_prot.c65
-rw-r--r--sunrpc/netname.c13
-rw-r--r--sunrpc/pm_getmaps.c11
-rw-r--r--sunrpc/pm_getport.c19
-rw-r--r--sunrpc/pmap_clnt.c22
-rw-r--r--sunrpc/pmap_prot.c10
-rw-r--r--sunrpc/pmap_prot2.c10
-rw-r--r--sunrpc/pmap_rmt.c46
-rw-r--r--sunrpc/publickey.c3
-rw-r--r--sunrpc/rpc_cmsg.c30
-rw-r--r--sunrpc/rpc_common.c3
-rw-r--r--sunrpc/rpc_dtable.c2
-rw-r--r--sunrpc/rpc_prot.c60
-rw-r--r--sunrpc/rpc_thread.c12
-rw-r--r--sunrpc/rtime.c2
-rw-r--r--sunrpc/svc.c61
-rw-r--r--sunrpc/svc_auth.c2
-rw-r--r--sunrpc/svc_authux.c7
-rw-r--r--sunrpc/svc_raw.c8
-rw-r--r--sunrpc/svc_run.c4
-rw-r--r--sunrpc/svc_simple.c17
-rw-r--r--sunrpc/svc_tcp.c26
-rw-r--r--sunrpc/svc_udp.c21
-rw-r--r--sunrpc/svc_unix.c20
-rw-r--r--sunrpc/svcauth_des.c1
-rw-r--r--sunrpc/xcrypt.c8
-rw-r--r--sunrpc/xdr.c157
-rw-r--r--sunrpc/xdr_array.c9
-rw-r--r--sunrpc/xdr_float.c2
-rw-r--r--sunrpc/xdr_intXX_t.c36
-rw-r--r--sunrpc/xdr_mem.c6
-rw-r--r--sunrpc/xdr_rec.c8
-rw-r--r--sunrpc/xdr_ref.c11
-rw-r--r--sunrpc/xdr_sizeof.c5
-rw-r--r--sunrpc/xdr_stdio.c5
52 files changed, 730 insertions, 452 deletions
diff --git a/sunrpc/Makefile b/sunrpc/Makefile
index 30f74dc135..f067e92398 100644
--- a/sunrpc/Makefile
+++ b/sunrpc/Makefile
@@ -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.
# 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 \
yppasswd.x klm_prot.x rex.x sm_inter.x mount.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 \
- pmap_prot.h pmap_rmt.h rpc.h rpc_msg.h svc.h \
- svc_auth.h types.h xdr.h auth_des.h \
- des_crypt.h key_prot.h rpc_des.h) \
- $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.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 svc_auth.h types.h xdr.h auth_des.h \
+ des_crypt.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
generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
$(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
generated-dirs := rpcsvc
-routines := auth_none auth_unix authuxprot bindrsvprt \
- 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
+include ../Makeconfig
+
+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-sbin := rpcinfo
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_tblout.o rpc_sample.o
# These headers are part of rpcgen.
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 \
errqueue.h
extra-objs = $(rpcgen-objs)
all: # Make this the default target; it will be defined in Rules.
-include ../Makeconfig
-
tests = tst-xdrmem tst-xdrmem2
xtests := tst-getmyaddr
@@ -108,6 +116,17 @@ librpcsvc-inhibit-o = .os # Build no shared rpcsvc library.
omit-deps = $(librpcsvc-routines)
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-xnlm_prot.c = -Wno-unused $(PIC-ccflag)
CFLAGS-xrstat.c = -Wno-unused $(PIC-ccflag)
@@ -131,6 +150,10 @@ CPPFLAGS += -D_RPC_THREAD_SAFE_
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)) \
$(sort $(filter $(common-objpfx)libc%,$(link-libc))) \
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
diff --git a/sunrpc/auth_des.c b/sunrpc/auth_des.c
index 0228562b89..96bbcfc328 100644
--- a/sunrpc/auth_des.c
+++ b/sunrpc/auth_des.c
@@ -51,8 +51,6 @@
#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
@@ -79,8 +77,8 @@ static const struct auth_ops authdes_ops = {
*/
struct ad_private {
char *ad_fullname; /* client's full name */
- u_int ad_fullnamelen; /* length of name, rounded up */
- char *ad_servername; /* server's full name */
+ u_int ad_fullnamelen; /* length of name, rounded up */
+ char *ad_servername; /* server's full name */
u_int ad_servernamelen; /* length of name, rounded up */
uint32_t ad_window; /* client specified window */
bool_t ad_dosync; /* synchronize? */
@@ -91,7 +89,7 @@ struct ad_private {
struct authdes_verf ad_verf; /* storage for verifier */
struct rpc_timeval ad_timestamp; /* timestamp sent */
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_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 *
authdes_pk_create (const char *servername, netobj *pkey, u_int window,
@@ -205,7 +208,11 @@ failed:
}
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
@@ -309,7 +316,7 @@ authdes_marshal (AUTH *auth, XDR *xdrs)
ATTEMPT (xdr_putint32 (xdrs, &auth->ah_cred.oa_flavor));
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;
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, &len));
}
- ATTEMPT (INTUSE(xdr_authdes_verf) (xdrs, verf));
+ ATTEMPT (xdr_authdes_verf (xdrs, verf));
return TRUE;
}
diff --git a/sunrpc/auth_none.c b/sunrpc/auth_none.c
index 57b3418c51..5f252a9544 100644
--- a/sunrpc/auth_none.c
+++ b/sunrpc/auth_none.c
@@ -81,10 +81,10 @@ authnone_create_once (void)
ap->no_client.ah_cred = ap->no_client.ah_verf = _null_auth;
ap->no_client.ah_ops = (struct auth_ops *) &ops;
xdrs = &xdr_stream;
- INTUSE(xdrmem_create) (xdrs, ap->marshalled_client,
- (u_int) MAX_MARSHAL_SIZE, XDR_ENCODE);
- (void) INTUSE(xdr_opaque_auth) (xdrs, &ap->no_client.ah_cred);
- (void) INTUSE(xdr_opaque_auth) (xdrs, &ap->no_client.ah_verf);
+ xdrmem_create (xdrs, ap->marshalled_client,
+ (u_int) MAX_MARSHAL_SIZE, XDR_ENCODE);
+ (void) xdr_opaque_auth (xdrs, &ap->no_client.ah_cred);
+ (void) xdr_opaque_auth (xdrs, &ap->no_client.ah_verf);
ap->mcnt = XDR_GETPOS (xdrs);
XDR_DESTROY (xdrs);
}
@@ -95,7 +95,7 @@ authnone_create (void)
__libc_once (authnone_private_guard, authnone_create_once);
return &authnone_private.no_client;
}
-INTDEF (authnone_create)
+libc_hidden_nolink (authnone_create, GLIBC_2_0)
static bool_t
authnone_marshal (AUTH *client, XDR *xdrs)
diff --git a/sunrpc/auth_unix.c b/sunrpc/auth_unix.c
index 301055bf16..858523eb8d 100644
--- a/sunrpc/auth_unix.c
+++ b/sunrpc/auth_unix.c
@@ -134,8 +134,8 @@ no_memory:
/*
* Serialize the parameters into origcred
*/
- INTUSE(xdrmem_create) (&xdrs, mymem, MAX_AUTH_BYTES, XDR_ENCODE);
- if (!INTUSE(xdr_authunix_parms) (&xdrs, &aup))
+ xdrmem_create (&xdrs, mymem, MAX_AUTH_BYTES, XDR_ENCODE);
+ if (!xdr_authunix_parms (&xdrs, &aup))
abort ();
au->au_origcred.oa_length = len = XDR_GETPOS (&xdrs);
au->au_origcred.oa_flavor = AUTH_UNIX;
@@ -151,7 +151,7 @@ no_memory:
marshal_new_auth (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
@@ -208,15 +208,18 @@ authunix_create_default (void)
/* This braindamaged Sun code forces us here to truncate the
list of groups to NGRPS members since the code in
authuxprot.c transforms a fixed array. Grrr. */
- AUTH *result = INTUSE(authunix_create) (machname, uid, gid, MIN (NGRPS, len),
- gids);
+ AUTH *result = authunix_create (machname, uid, gid, MIN (NGRPS, len), gids);
if (max_nr_groups >= ALLOCA_LIMIT || retry)
free (gids);
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
@@ -245,8 +248,7 @@ authunix_validate (AUTH *auth, struct opaque_auth *verf)
if (verf->oa_flavor == AUTH_SHORT)
{
au = AUTH_PRIVATE (auth);
- INTUSE(xdrmem_create) (&xdrs, verf->oa_base, verf->oa_length,
- XDR_DECODE);
+ xdrmem_create (&xdrs, verf->oa_base, verf->oa_length, XDR_DECODE);
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_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;
}
else
{
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;
auth->ah_cred = au->au_origcred;
}
@@ -289,9 +291,9 @@ authunix_refresh (AUTH *auth)
/* first deserialize the creds back into a struct authunix_parms */
aup.aup_machname = NULL;
aup.aup_gids = (gid_t *) NULL;
- INTUSE(xdrmem_create) (&xdrs, au->au_origcred.oa_base,
- au->au_origcred.oa_length, XDR_DECODE);
- stat = INTUSE(xdr_authunix_parms) (&xdrs, &aup);
+ xdrmem_create (&xdrs, au->au_origcred.oa_base,
+ au->au_origcred.oa_length, XDR_DECODE);
+ stat = xdr_authunix_parms (&xdrs, &aup);
if (!stat)
goto done;