[libtirpc/f19] Update to latest RC release: libtirpc-0-2-5-rc1

Steve Dickson steved at fedoraproject.org
Thu Jan 23 16:41:51 UTC 2014


commit 4b31404272f4eaf23f38d7b759084940c744389a
Author: Steve Dickson <steved at redhat.com>
Date:   Thu Jan 23 11:35:11 2014 -0500

    Update to latest RC release: libtirpc-0-2-5-rc1
    
    Signed-off-by: Steve Dickson <steved at redhat.com>

 libtirpc-0.2.5-rc1.patch |  744 ++++++++++++++++++++++++++++++++++++++++++++++
 libtirpc.spec            |    9 +-
 2 files changed, 752 insertions(+), 1 deletions(-)
---
diff --git a/libtirpc-0.2.5-rc1.patch b/libtirpc-0.2.5-rc1.patch
new file mode 100644
index 0000000..25bbcd5
--- /dev/null
+++ b/libtirpc-0.2.5-rc1.patch
@@ -0,0 +1,744 @@
+diff --git a/configure.ac b/configure.ac
+index 11df020..10d17ea 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1,7 +1,6 @@
+ AC_INIT(libtirpc, 0.2.4)
+ AM_INIT_AUTOMAKE([silent-rules])
+ AM_SILENT_RULES([yes])
+-AM_MAINTAINER_MODE
+ AC_CONFIG_SRCDIR([src/auth_des.c])
+ AC_CONFIG_MACRO_DIR([m4])
+ 
+diff --git a/man/Makefile.am b/man/Makefile.am
+index 8f764b7..a37c7da 100644
+--- a/man/Makefile.am
++++ b/man/Makefile.am
+@@ -1,11 +1,19 @@
++LOOKUP_MANS		= getrpcent.3t getrpcport.3t
++NETCONFIG_MANS		= getnetconfig.3t getnetpath.3t
++BIND_MANS		= bindresvport.3t
++COMPAT_MANS		= des_crypt.3t rpc_soc.3t rpc_secure.3t rtime.3t
++CLIENT_MANS		= rpc_clnt_auth.3t rpc_clnt_calls.3t rpc_clnt_create.3t \
++			  rpcbind.3t
++SERVER_MANS		= rpc_svc_calls.3t rpc_svc_create.3t rpc_svc_err.3t \
++			  rpc_svc_reg.3t
++GENERIC_MANS		= rpc.3t rpc_xdr.3t
+ 
+-man5_MANS = netconfig.5
+-man3_MANS = bindresvport.3t des_crypt.3t getnetconfig.3t getnetpath.3t \
+-		getrpcent.3t getrpcport.3t rpc.3t rpc_clnt_auth.3t rpc_clnt_calls.3t \
+-		rpc_clnt_create.3t rpc_secure.3t rpc_soc.3t rpc_svc_calls.3t \
+-		rpc_svc_create.3t rpc_svc_err.3t rpc_svc_reg.3t rpc_xdr.3t rtime.3t
++dist_man5_MANS		= netconfig.5
++dist_man3_MANS		= $(LOOKUP_MANS) $(NETCONFIG_MANS) \
++			  $(BIND_MANS) $(GENERIC_MANS) $(COMPAT_MANS) \
++			  $(CLIENT_MANS) $(SERVER_MANS)
+ 
+-EXTRA_DIST = $(man5_MANS) $(man3_MANS)
++EXTRA_DIST		= publickey.3t publickey.5 rpc.5
+ 
+-CLEANFILES	       = cscope.* *~
+-DISTCLEANFILES	       = Makefile.in
++CLEANFILES		= cscope.* *~
++DISTCLEANFILES		= Makefile.in
+diff --git a/man/bindresvport.3t b/man/bindresvport.3t
+index 6724663..476e678 100644
+--- a/man/bindresvport.3t
++++ b/man/bindresvport.3t
+@@ -7,8 +7,6 @@
+ .Nm bindresvport ,
+ .Nm bindresvport_sa
+ .Nd bind a socket to a privileged IP port
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In sys/types.h
+ .In rpc/rpc.h
+@@ -94,8 +92,11 @@ for any of the errors specified for the calls
+ .Xr getsockopt 2 ,
+ or
+ .Xr setsockopt 2 .
++.Sh AVAILABILITY
++The
++.Fn bindresvport
++function is part of libtirpc.
+ .Sh SEE ALSO
+ .Xr bind 2 ,
+ .Xr getsockopt 2 ,
+-.Xr setsockopt 2 ,
+-.Xr ip 4
++.Xr setsockopt 2
+diff --git a/man/des_crypt.3t b/man/des_crypt.3t
+index b708f76..a2be1bd 100644
+--- a/man/des_crypt.3t
++++ b/man/des_crypt.3t
+@@ -6,8 +6,6 @@
+ .Sh NAME
+ .Nm des_crypt , ecb_crypt , cbc_crypt , des_setparity
+ .Nd "fast DES encryption"
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In rpc/des_crypt.h
+ .Ft int
+@@ -118,6 +116,13 @@ Given a result status
+ the macro
+ .Fn DES_FAILED stat
+ is false only for the first two statuses.
++.Sh AVAILABILITY
++The
++.Fn ecb_crypt ,
++.Fn cbc_crypt ,
++and
++.Fn des_setparity
++functions are part of libtirpc.
+ .Sh SEE ALSO
+ .\" .Xr des 1 ,
+ .Xr crypt 3
+diff --git a/man/getnetconfig.3t b/man/getnetconfig.3t
+index fbaa14d..6682319 100644
+--- a/man/getnetconfig.3t
++++ b/man/getnetconfig.3t
+@@ -12,8 +12,6 @@
+ .Nm nc_perror ,
+ .Nm nc_sperror
+ .Nd get network configuration database entry
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In netconfig.h
+ .Ft "struct netconfig *"
+@@ -215,6 +213,8 @@ implemented as thread-specific data.
+ .Bl -tag -width /etc/netconfig -compact
+ .It Pa /etc/netconfig
+ .El
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr getnetpath 3 ,
+ .Xr netconfig 5
+diff --git a/man/getnetpath.3t b/man/getnetpath.3t
+index b3712ad..474acf9 100644
+--- a/man/getnetpath.3t
++++ b/man/getnetpath.3t
+@@ -12,8 +12,6 @@
+ entry corresponding to
+ .Ev NETPATH
+ component
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In netconfig.h
+ .Ft "struct netconfig *"
+@@ -162,6 +160,8 @@ has been exhausted,
+ .Fn getnetpath
+ returns
+ .Dv NULL .
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr getnetconfig 3 ,
+ .Xr netconfig 5 ,
+diff --git a/man/getrpcent.3t b/man/getrpcent.3t
+index 261a8f4..2796de9 100644
+--- a/man/getrpcent.3t
++++ b/man/getrpcent.3t
+@@ -10,8 +10,6 @@
+ .Nm endrpcent ,
+ .Nm setrpcent
+ .Nd get RPC entry
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In rpc/rpc.h
+ .Ft struct rpcent *
+@@ -89,10 +87,11 @@ program number is found, or until end-of-file is encountered.
+ .Bl -tag -width /etc/rpc -compact
+ .It Pa /etc/rpc
+ .El
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr rpc 5 ,
+-.Xr rpcinfo 8 ,
+-.Xr ypserv 8
++.Xr rpcinfo 8
+ .Sh DIAGNOSTICS
+ A
+ .Dv NULL
+diff --git a/man/getrpcport.3t b/man/getrpcport.3t
+index 8a072c7..1aa5773 100644
+--- a/man/getrpcport.3t
++++ b/man/getrpcport.3t
+@@ -6,8 +6,6 @@
+ .Sh NAME
+ .Nm getrpcport
+ .Nd get RPC port number
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .Ft int
+ .Fn getrpcport "char *host" "int prognum" "int versnum" "int proto"
+@@ -32,3 +30,7 @@ is registered but not with version
+ it will still return a port number (for some version of the program)
+ indicating that the program is indeed registered.
+ The version mismatch will be detected upon the first call to the service.
++.Sh AVAILABILITY
++The
++.Fn getrpcport
++function is part of libtirpc.
+diff --git a/man/rpc.3t b/man/rpc.3t
+index b2927b1..9ff7423 100644
+--- a/man/rpc.3t
++++ b/man/rpc.3t
+@@ -6,8 +6,6 @@
+ .Sh NAME
+ .Nm rpc
+ .Nd library routines for remote procedure calls
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In rpc/rpc.h
+ .In netconfig.h
+@@ -499,6 +497,8 @@ pages on which they are described:
+ .Bl -tag -width /etc/netconfig
+ .It Pa /etc/netconfig
+ .El
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr getnetconfig 3 ,
+ .Xr getnetpath 3 ,
+diff --git a/man/rpc_clnt_auth.3t b/man/rpc_clnt_auth.3t
+index ee8fd1d..e20f322 100644
+--- a/man/rpc_clnt_auth.3t
++++ b/man/rpc_clnt_auth.3t
+@@ -13,8 +13,6 @@
+ .Nm authsys_create ,
+ .Nm authsys_create_default
+ .Nd library routines for client side remote procedure call authentication
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In rpc/rpc.h
+ .Ft "void"
+@@ -90,6 +88,8 @@ Call
+ .Fn authsys_create
+ with the appropriate arguments.
+ .El
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr rpc 3 ,
+ .Xr rpc_clnt_calls 3 ,
+diff --git a/man/rpc_clnt_calls.3t b/man/rpc_clnt_calls.3t
+index 38b29d5..8c3804b 100644
+--- a/man/rpc_clnt_calls.3t
++++ b/man/rpc_clnt_calls.3t
+@@ -19,8 +19,6 @@
+ .Nm rpc_broadcast_exp ,
+ .Nm rpc_call
+ .Nd library routines for client side calls
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In rpc/rpc.h
+ .Ft "enum clnt_stat"
+@@ -309,6 +307,8 @@ on which it can create a connection.
+ You do not have control of timeouts or authentication
+ using this routine.
+ .El
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr printf 3 ,
+ .Xr rpc 3 ,
+diff --git a/man/rpc_clnt_create.3t b/man/rpc_clnt_create.3t
+index acdbab4..95b6fc8 100644
+--- a/man/rpc_clnt_create.3t
++++ b/man/rpc_clnt_create.3t
+@@ -27,8 +27,6 @@
+ .Nd "library routines for dealing with creation and manipulation of"
+ .Vt CLIENT
+ handles
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In rpc/rpc.h
+ .Ft bool_t
+@@ -507,6 +505,8 @@ It is used by the routine
+ .Fn clnt_pcreateerror
+ to print the reason for the failure.
+ .El
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr rpc 3 ,
+ .Xr rpc_clnt_auth 3 ,
+diff --git a/man/rpc_secure.3t b/man/rpc_secure.3t
+index 7969a91..7ad6e49 100644
+--- a/man/rpc_secure.3t
++++ b/man/rpc_secure.3t
+@@ -258,10 +258,11 @@ if it succeeds and
+ if it fails.
+ Inverse of
+ .Fn netname2user .
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr rpc 3 ,
+-.Xr xdr 3 ,
+-.Xr keyserv 8
++.Xr xdr 3
+ .Pp
+ The following manuals:
+ .Rs
+diff --git a/man/rpc_soc.3t b/man/rpc_soc.3t
+index 59058c0..f26c0af 100644
+--- a/man/rpc_soc.3t
++++ b/man/rpc_soc.3t
+@@ -72,8 +72,6 @@
+ .Nm xprt_register ,
+ .Nm xprt_unregister
+ .Nd "library routines for remote procedure calls"
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In rpc/rpc.h
+ .Pp
+@@ -1707,6 +1705,8 @@ This routine modifies the global variable
+ .Va svc_fds .
+ Service implementors usually do not need this routine.
+ .El
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr rpc_secure 3 ,
+ .Xr xdr 3
+diff --git a/man/rpc_svc_calls.3t b/man/rpc_svc_calls.3t
+index 582b45d..4b3c08b 100644
+--- a/man/rpc_svc_calls.3t
++++ b/man/rpc_svc_calls.3t
+@@ -21,8 +21,6 @@
+ .Nm svc_run ,
+ .Nm svc_sendreply
+ .Nd library routines for RPC servers
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In rpc/rpc.h
+ .Ft int
+@@ -258,6 +256,8 @@ if it succeeds,
+ .Dv FALSE
+ otherwise.
+ .El
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr poll 2 ,
+ .Xr select 2 ,
+diff --git a/man/rpc_svc_create.3t b/man/rpc_svc_create.3t
+index d47be2b..6e28d2e 100644
+--- a/man/rpc_svc_create.3t
++++ b/man/rpc_svc_create.3t
+@@ -18,8 +18,6 @@
+ .Nm svc_tp_create ,
+ .Nm svc_vc_create
+ .Nd library routines for the creation of server handles
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In rpc/rpc.h
+ .Ft bool_t
+@@ -329,6 +327,8 @@ The server is not registered with the
+ .Xr rpcbind 8
+ service.
+ .El
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr rpc 3 ,
+ .Xr rpc_svc_calls 3 ,
+diff --git a/man/rpc_svc_err.3t b/man/rpc_svc_err.3t
+index 49139cb..ffc7f53 100644
+--- a/man/rpc_svc_err.3t
++++ b/man/rpc_svc_err.3t
+@@ -17,8 +17,6 @@
+ .Nm svcerr_systemerr ,
+ .Nm svcerr_weakauth
+ .Nd library routines for server side remote procedure call errors
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In rpc/rpc.h
+ .Ft void
+@@ -90,6 +88,8 @@ authentication arguments.
+ The routine calls
+ .Fn svcerr_auth "xprt" "AUTH_TOOWEAK" .
+ .El
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr rpc 3 ,
+ .Xr rpc_svc_calls 3 ,
+diff --git a/man/rpc_svc_reg.3t b/man/rpc_svc_reg.3t
+index 56dd530..e74f7fc 100644
+--- a/man/rpc_svc_reg.3t
++++ b/man/rpc_svc_reg.3t
+@@ -16,8 +16,6 @@
+ .Nm xprt_register ,
+ .Nm xprt_unregister
+ .Nd library routines for registering servers
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In rpc/rpc.h
+ .Ft int
+@@ -173,6 +171,8 @@ This routine modifies the global variable
+ .Xr rpc_svc_calls 3 ) .
+ Service implementors usually do not need this routine.
+ .El
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr select 2 ,
+ .Xr rpc 3 ,
+diff --git a/man/rpc_xdr.3t b/man/rpc_xdr.3t
+index feb708b..ae3d663 100644
+--- a/man/rpc_xdr.3t
++++ b/man/rpc_xdr.3t
+@@ -15,8 +15,6 @@
+ .Nm xdr_rejected_reply ,
+ .Nm xdr_replymsg
+ .Nd XDR library routines for remote procedure calls
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In rpc/rpc.h
+ .Ft bool_t
+@@ -96,6 +94,8 @@ This reply could be either an acceptance,
+ rejection or
+ .Dv NULL .
+ .El
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr rpc 3 ,
+ .Xr xdr 3
+diff --git a/man/rpcbind.3t b/man/rpcbind.3t
+index 99b03cf..ec492cc 100644
+--- a/man/rpcbind.3t
++++ b/man/rpcbind.3t
+@@ -14,8 +14,6 @@
+ .Nm rpcb_set ,
+ .Nm rpcb_unset
+ .Nd library routines for RPC bind service
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In rpc/rpc.h
+ .Ft "rpcblist *"
+@@ -187,6 +185,8 @@ Only the owner of the service or the super-user can destroy the mapping.
+ in
+ .Xr rpc_svc_calls 3 . )
+ .El
++.Sh AVAILABILITY
++These functions are part of libtirpc.
+ .Sh SEE ALSO
+ .Xr rpc_clnt_calls 3 ,
+ .Xr rpc_svc_calls 3 ,
+diff --git a/man/rtime.3t b/man/rtime.3t
+index 6e61350..bc93af6 100644
+--- a/man/rtime.3t
++++ b/man/rtime.3t
+@@ -7,8 +7,6 @@
+ .Sh NAME
+ .Nm rtime
+ .Nd "get remote time"
+-.Sh LIBRARY
+-.Lb libc
+ .Sh SYNOPSIS
+ .In sys/types.h
+ .In sys/time.h
+@@ -46,5 +44,7 @@ however, the routine will instead use
+ and block until a reply is received from the time server.
+ .Sh RETURN VALUES
+ .Rv -std rtime
+-.Sh SEE ALSO
+-.Xr timed 8
++.Sh AVAILABILITY
++The
++.Fn rtime
++function is part of libtirpc.
+diff --git a/src/auth_gss.c b/src/auth_gss.c
+index 703bc3f..fd6191b 100644
+--- a/src/auth_gss.c
++++ b/src/auth_gss.c
+@@ -49,14 +49,14 @@
+ #include <netinet/in.h>
+ #include <gssapi/gssapi.h>
+ 
+-static void	authgss_nextverf();
+-static bool_t	authgss_marshal();
+-static bool_t	authgss_refresh();
+-static bool_t	authgss_validate();
+-static void	authgss_destroy();
+-static void	authgss_destroy_context();
+-static bool_t	authgss_wrap();
+-static bool_t	authgss_unwrap();
++static void	authgss_nextverf(AUTH *);
++static bool_t	authgss_marshal(AUTH *, XDR *);
++static bool_t	authgss_refresh(AUTH *, void *);
++static bool_t	authgss_validate(AUTH *, struct opaque_auth *);
++static void	authgss_destroy(AUTH *);
++static void	authgss_destroy_context(AUTH *);
++static bool_t	authgss_wrap(AUTH *, XDR *, xdrproc_t, caddr_t);
++static bool_t	authgss_unwrap(AUTH *, XDR *, xdrproc_t, caddr_t);
+ 
+ 
+ /*
+@@ -198,7 +198,7 @@ authgss_create(CLIENT *clnt, gss_name_t name, struct rpc_gss_sec *sec)
+ 	save_auth = clnt->cl_auth;
+ 	clnt->cl_auth = auth;
+ 
+-	if (!authgss_refresh(auth))
++	if (!authgss_refresh(auth, NULL))
+ 		auth = NULL;
+ 	else
+ 		auth_get(auth); /* Reference for caller */
+@@ -418,7 +418,7 @@ authgss_validate(AUTH *auth, struct opaque_auth *verf)
+ }
+ 
+ static bool_t
+-authgss_refresh(AUTH *auth)
++authgss_refresh(AUTH *auth, void *dummy)
+ {
+ 	struct rpc_gss_data	*gd;
+ 	struct rpc_gss_init_res	 gr;
+@@ -639,7 +639,7 @@ authgss_destroy(AUTH *auth)
+ 	free(auth);
+ }
+ 
+-bool_t
++static bool_t
+ authgss_wrap(AUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr)
+ {
+ 	struct rpc_gss_data	*gd;
+@@ -656,7 +656,7 @@ authgss_wrap(AUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr)
+ 				 gd->sec.svc, gd->gc.gc_seq));
+ }
+ 
+-bool_t
++static bool_t
+ authgss_unwrap(AUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr)
+ {
+ 	struct rpc_gss_data	*gd;
+diff --git a/src/clnt_simple.c b/src/clnt_simple.c
+index e66da6a..7ee9542 100644
+--- a/src/clnt_simple.c
++++ b/src/clnt_simple.c
+@@ -104,9 +104,9 @@ rpc_call(host, prognum, versnum, procnum, inproc, in, outproc, out, nettype)
+ 	extern thread_key_t rpc_call_key;
+ 	extern mutex_t tsd_lock;
+ 
+-	if (rpc_call_key == -1) {
++	if (rpc_call_key == KEY_INITIALIZER) {
+ 		mutex_lock(&tsd_lock);
+-		if (rpc_call_key == -1)
++		if (rpc_call_key == KEY_INITIALIZER)
+ 			thr_keycreate(&rpc_call_key, rpc_call_destroy);
+ 		mutex_unlock(&tsd_lock);
+ 	}
+diff --git a/src/getnetconfig.c b/src/getnetconfig.c
+index 78de0f6..635c03a 100644
+--- a/src/getnetconfig.c
++++ b/src/getnetconfig.c
+@@ -137,10 +137,10 @@ __nc_error()
+ 	 * (including non-threaded programs), or if an allocation
+ 	 * fails.
+ 	 */
+-	if (nc_key == -1) {
++	if (nc_key == KEY_INITIALIZER) {
+ 		error = 0;
+ 		mutex_lock(&nc_lock);
+-		if (nc_key == -1)
++		if (nc_key == KEY_INITIALIZER)
+ 			error = thr_keycreate(&nc_key, free);
+ 		mutex_unlock(&nc_lock);
+ 		if (error)
+diff --git a/src/mt_misc.c b/src/mt_misc.c
+index d459dec..093086e 100644
+--- a/src/mt_misc.c
++++ b/src/mt_misc.c
+@@ -78,12 +78,12 @@ pthread_mutex_t	svcraw_lock = PTHREAD_MUTEX_INITIALIZER;
+ pthread_mutex_t	tsd_lock = PTHREAD_MUTEX_INITIALIZER;
+ 
+ /* Library global tsd keys */
+-thread_key_t clnt_broadcast_key;
+-thread_key_t rpc_call_key = -1;
+-thread_key_t tcp_key = -1;
+-thread_key_t udp_key = -1;
+-thread_key_t nc_key = -1;
+-thread_key_t rce_key = -1;
++thread_key_t clnt_broadcast_key = KEY_INITIALIZER;
++thread_key_t rpc_call_key = KEY_INITIALIZER;
++thread_key_t tcp_key = KEY_INITIALIZER;
++thread_key_t udp_key = KEY_INITIALIZER;
++thread_key_t nc_key = KEY_INITIALIZER;
++thread_key_t rce_key = KEY_INITIALIZER;
+ 
+ /* xprtlist (svc_generic.c) */
+ pthread_mutex_t	xprtlist_lock = PTHREAD_MUTEX_INITIALIZER;
+@@ -110,7 +110,7 @@ __rpc_createerr()
+ 	struct rpc_createerr *rce_addr;
+ 
+ 	mutex_lock(&tsd_lock);
+-	if (rce_key == -1)
++	if (rce_key == KEY_INITIALIZER)
+ 		thr_keycreate(&rce_key, free);
+ 	mutex_unlock(&tsd_lock);
+ 
+@@ -131,17 +131,17 @@ __rpc_createerr()
+ 
+ void tsd_key_delete(void)
+ {
+-	if (clnt_broadcast_key != -1)
++	if (clnt_broadcast_key != KEY_INITIALIZER)
+ 		pthread_key_delete(clnt_broadcast_key);
+-	if (rpc_call_key != -1)
++	if (rpc_call_key != KEY_INITIALIZER)
+ 		pthread_key_delete(rpc_call_key);
+-	if (tcp_key != -1)
++	if (tcp_key != KEY_INITIALIZER)
+ 		pthread_key_delete(tcp_key);
+-	if (udp_key != -1)
++	if (udp_key != KEY_INITIALIZER)
+ 		pthread_key_delete(udp_key);
+-	if (nc_key != -1)
++	if (nc_key != KEY_INITIALIZER)
+ 		pthread_key_delete(nc_key);
+-	if (rce_key != -1)
++	if (rce_key != KEY_INITIALIZER)
+ 		pthread_key_delete(rce_key);
+ 	return;
+ }
+diff --git a/src/rpc_generic.c b/src/rpc_generic.c
+index 2eb91ad..a43906c 100644
+--- a/src/rpc_generic.c
++++ b/src/rpc_generic.c
+@@ -228,16 +228,16 @@ __rpc_getconfip(nettype)
+ 	extern thread_key_t tcp_key, udp_key;
+ 	extern mutex_t tsd_lock;
+ 
+-	if (tcp_key == -1) {
++	if (tcp_key == KEY_INITIALIZER) {
+ 		mutex_lock(&tsd_lock);
+-		if (tcp_key == -1)
++		if (tcp_key == KEY_INITIALIZER)
+ 			thr_keycreate(&tcp_key, free);
+ 		mutex_unlock(&tsd_lock);
+ 	}
+ 	netid_tcp = (char *)thr_getspecific(tcp_key);
+-	if (udp_key == -1) {
++	if (udp_key == KEY_INITIALIZER) {
+ 		mutex_lock(&tsd_lock);
+-		if (udp_key == -1)
++		if (udp_key == KEY_INITIALIZER)
+ 			thr_keycreate(&udp_key, free);
+ 		mutex_unlock(&tsd_lock);
+ 	}
+diff --git a/src/rpc_soc.c b/src/rpc_soc.c
+index 4213ca0..338edbb 100644
+--- a/src/rpc_soc.c
++++ b/src/rpc_soc.c
+@@ -508,9 +508,9 @@ clnt_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
+ {
+ 	extern mutex_t tsd_lock;
+ 
+-	if (clnt_broadcast_key == -1) {
++	if (clnt_broadcast_key == KEY_INITIALIZER) {
+ 		mutex_lock(&tsd_lock);
+-		if (clnt_broadcast_key == -1)
++		if (clnt_broadcast_key == KEY_INITIALIZER)
+ 			thr_keycreate(&clnt_broadcast_key, free);
+ 		mutex_unlock(&tsd_lock);
+ 	}
+diff --git a/src/svc_auth_gss.c b/src/svc_auth_gss.c
+index 9c74313..601a691 100644
+--- a/src/svc_auth_gss.c
++++ b/src/svc_auth_gss.c
+@@ -53,11 +53,11 @@ typedef struct gss_union_ctx_id_t {
+ 
+ 
+ 
+-static bool_t	svcauth_gss_destroy();
+-static bool_t   svcauth_gss_wrap();
+-static bool_t   svcauth_gss_unwrap();
++static bool_t	svcauth_gss_wrap(SVCAUTH *, XDR *, xdrproc_t, caddr_t);
++static bool_t	svcauth_gss_unwrap(SVCAUTH *, XDR *, xdrproc_t, caddr_t);
++static bool_t	svcauth_gss_destroy(SVCAUTH *);
+ 
+-struct svc_auth_ops svc_auth_gss_ops = {
++static struct svc_auth_ops svc_auth_gss_ops = {
+ 	svcauth_gss_wrap,
+ 	svcauth_gss_unwrap,
+ 	svcauth_gss_destroy
+@@ -79,7 +79,7 @@ struct svc_rpc_gss_data {
+ 	((struct svc_rpc_gss_data *)(auth)->svc_ah_private)
+ 
+ /* Global server credentials. */
+-gss_cred_id_t		_svcauth_gss_creds;
++static gss_cred_id_t	_svcauth_gss_creds;
+ static gss_name_t	_svcauth_gss_name = NULL;
+ 
+ bool_t
+@@ -332,7 +332,7 @@ svcauth_gss_validate(struct svc_rpc_gss_data *gd, struct rpc_msg *msg)
+ 	return (TRUE);
+ }
+ 
+-bool_t
++static bool_t
+ svcauth_gss_nextverf(struct svc_req *rqst, u_int num)
+ {
+ 	struct svc_rpc_gss_data	*gd;
+@@ -513,7 +513,7 @@ _svcauth_gss(struct svc_req *rqst, struct rpc_msg *msg, bool_t *no_dispatch)
+ 	return (AUTH_OK);
+ }
+ 
+-bool_t
++static bool_t
+ svcauth_gss_destroy(SVCAUTH *auth)
+ {
+ 	struct svc_rpc_gss_data	*gd;
+@@ -535,7 +535,7 @@ svcauth_gss_destroy(SVCAUTH *auth)
+ 	return (TRUE);
+ }
+ 
+-bool_t
++static bool_t
+ svcauth_gss_wrap(SVCAUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr)
+ {
+ 	struct svc_rpc_gss_data	*gd;
+@@ -552,7 +552,7 @@ svcauth_gss_wrap(SVCAUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr)
+ 				 gd->sec.svc, gd->seq));
+ }
+ 
+-bool_t
++static bool_t
+ svcauth_gss_unwrap(SVCAUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr)
+ {
+ 	struct svc_rpc_gss_data	*gd;
+diff --git a/tirpc/reentrant.h b/tirpc/reentrant.h
+index 9489b15..5f5c96e 100644
+--- a/tirpc/reentrant.h
++++ b/tirpc/reentrant.h
+@@ -46,6 +46,8 @@
+ #define once_t			pthread_once_t
+ 
+ #define thread_key_t		pthread_key_t
++
++#define KEY_INITIALIZER		((thread_key_t)-1)
+ #define MUTEX_INITIALIZER	PTHREAD_MUTEX_INITIALIZER
+ #define RWLOCK_INITIALIZER	PTHREAD_RWLOCK_INITIALIZER
+ #define ONCE_INITIALIZER	PTHREAD_ONCE_INIT
diff --git a/libtirpc.spec b/libtirpc.spec
index 067cbbc..8eb89d1 100644
--- a/libtirpc.spec
+++ b/libtirpc.spec
@@ -2,7 +2,7 @@
 
 Name:		   libtirpc
 Version:		0.2.4
-Release:		0%{?dist}
+Release:		1.0%{?dist}
 Summary:		Transport Independent RPC Library
 Group:		  	System Environment/Libraries
 License:		SISSL and BSD
@@ -14,6 +14,8 @@ Source0:	http://downloads.sourceforge.net/libtirpc/libtirpc-%{version}.tar.bz2
 BuildRequires:		automake, autoconf, libtool, pkgconfig
 BuildRequires:		krb5-devel
 
+Patch001: libtirpc-0.2.5-rc1.patch
+
 %description
 This package contains SunLib's implementation of transport-independent
 RPC (TI-RPC) documentation.  This library forms a piece of the base of 
@@ -40,6 +42,8 @@ developing programs which use the tirpc library.
 %prep
 %setup -q
 
+%patch001 -p1
+
 # Remove .orig files
 find . -name "*.orig" | xargs rm -f
 
@@ -127,6 +131,9 @@ rm -rf %{buildroot}
 %{_mandir}/*/*
 
 %changelog
+* Thu Jan 23 2014 Steve Dickson <steved at redhat.com> 0.2.4-1.0
+- Update to latest RC release: libtirpc-0-2-5-rc1
+
 * Mon Dec  9 2013 Steve Dickson <steved at redhat.com> 0.2.4-0
 - Update to the latest upstream release: 0.2.4 (bz 862318)
 


More information about the scm-commits mailing list