steved pushed to libtirpc (master). "Updated to latest upstream release: libtirpc-0-3-3 (..more)"

notifications at fedoraproject.org notifications at fedoraproject.org
Thu May 7 14:35:18 UTC 2015


From c6fe6a5e927861f73a870cf89c8ff6e42b752da3 Mon Sep 17 00:00:00 2001
From: Steve Dickson <steved at redhat.com>
Date: Thu, 7 May 2015 10:34:27 -0400
Subject: Updated to latest upstream release: libtirpc-0-3-3

Signed-off-by: Steve Dickson <steved at redhat.com>

diff --git a/.gitignore b/.gitignore
index 36c6b1a..441d5b9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,5 @@
+Makefile
 cscope*
-/libtirpc-0.2.2.tar.bz2
-libtirpc-0.2.2/
 x86_64/
-/libtirpc-0.2.3.tar.bz2
-/libtirpc-0.2.4.tar.bz2
-/libtirpc-0.2.5.tar.bz2
+/libtirpc-0.3.0.tar.bz2
+libtirpc-0.3.0
diff --git a/libtirpc-0.2.5-rc1.patch b/libtirpc-0.2.5-rc1.patch
deleted file mode 100644
index 25bbcd5..0000000
--- a/libtirpc-0.2.5-rc1.patch
+++ /dev/null
@@ -1,744 +0,0 @@
-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-0.2.5-rc3.patch b/libtirpc-0.2.5-rc3.patch
deleted file mode 100644
index f126a5e..0000000
--- a/libtirpc-0.2.5-rc3.patch
+++ /dev/null
@@ -1,893 +0,0 @@
-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.c b/src/svc.c
-index 08cd6c9..8afd15d 100644
---- a/src/svc.c
-+++ b/src/svc.c
-@@ -649,6 +649,7 @@ svc_getreq_common (fd)
-     {
-       if (SVC_RECV (xprt, &msg))
- 	{
-+	  bool_t no_dispatch;
- 
- 	  /* now find the exported program and call it */
- 	  struct svc_callout *s;
-@@ -660,11 +661,14 @@ svc_getreq_common (fd)
- 	  r.rq_proc = msg.rm_call.cb_proc;
- 	  r.rq_cred = msg.rm_call.cb_cred;
- 	  /* first authenticate the message */
--	  if ((why = _authenticate (&r, &msg)) != AUTH_OK)
-+	  why = _gss_authenticate(&r, &msg, &no_dispatch);
-+	  if (why != AUTH_OK)
- 	    {
- 	      svcerr_auth (xprt, why);
- 	      goto call_done;
- 	    }
-+	  if (no_dispatch)
-+	    goto call_done;
- 	  /* now match message with a registered service */
- 	  prog_found = FALSE;
- 	  low_vers = (rpcvers_t) - 1L;
-diff --git a/src/svc_auth.c b/src/svc_auth.c
-index e80d5f9..31241c9 100644
---- a/src/svc_auth.c
-+++ b/src/svc_auth.c
-@@ -82,9 +82,10 @@ static struct authsvc *Auths = NULL;
-  * invalid.
-  */
- enum auth_stat
--_authenticate(rqst, msg)
-+_gss_authenticate(rqst, msg, no_dispatch)
- 	struct svc_req *rqst;
- 	struct rpc_msg *msg;
-+	bool_t *no_dispatch;
- {
- 	int cred_flavor;
- 	struct authsvc *asp;
-@@ -97,6 +98,7 @@ _authenticate(rqst, msg)
- 	rqst->rq_xprt->xp_verf.oa_flavor = _null_auth.oa_flavor;
- 	rqst->rq_xprt->xp_verf.oa_length = 0;
- 	cred_flavor = rqst->rq_cred.oa_flavor;
-+	*no_dispatch = FALSE;
- 	switch (cred_flavor) {
- 	case AUTH_NONE:
- 		dummy = _svcauth_none(rqst, msg);
-@@ -112,6 +114,11 @@ _authenticate(rqst, msg)
- 		dummy = _svcauth_des(rqst, msg);
- 		return (dummy);
- #endif
-+#ifdef HAVE_RPCSEC_GSS
-+	case RPCSEC_GSS:
-+		dummy = _svcauth_gss(rqst, msg, no_dispatch);
-+		return (dummy);
-+#endif
- 	default:
- 		break;
- 	}
-@@ -132,6 +139,13 @@ _authenticate(rqst, msg)
- 	return (AUTH_REJECTEDCRED);
- }
- 
-+enum auth_stat
-+_authenticate(struct svc_req *rqst, struct rpc_msg *msg)
-+{
-+	bool_t no_dispatch;
-+	return _gss_authenticate(rqst, msg, &no_dispatch);
-+}
-+
- /*
-  *  Allow the rpc service to register new authentication types that it is
-  *  prepared to handle.  When an authentication flavor is registered,
-@@ -161,6 +175,9 @@ svc_auth_reg(cred_flavor, handler)
- #ifdef DES_BUILTIN
- 	    case AUTH_DES:
- #endif
-+#ifdef HAVE_RPCSEC_GSS
-+	    case RPCSEC_GSS:
-+#endif
- 		/* already registered */
- 		return (1);
- 
-diff --git a/src/svc_auth_gss.c b/src/svc_auth_gss.c
-index 9c74313..26c1065 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
-@@ -286,21 +286,19 @@ svcauth_gss_validate(struct svc_rpc_gss_data *gd, struct rpc_msg *msg)
- 	struct opaque_auth	*oa;
- 	gss_buffer_desc		 rpcbuf, checksum;
- 	OM_uint32		 maj_stat, min_stat, qop_state;
--	u_char			 rpchdr[128];
-+	u_char			 *rpchdr;
- 	int32_t			*buf;
- 
- 	gss_log_debug("in svcauth_gss_validate()");
- 
--	memset(rpchdr, 0, sizeof(rpchdr));
--
- 	/* XXX - Reconstruct RPC header for signing (from xdr_callmsg). */
- 	oa = &msg->rm_call.cb_cred;
- 	if (oa->oa_length > MAX_AUTH_BYTES)
- 		return (FALSE);
--	
--	/* 8 XDR units from the IXDR macro calls. */
--	if (sizeof(rpchdr) < (8 * BYTES_PER_XDR_UNIT +
--			RNDUP(oa->oa_length)))
-+
-+	rpchdr = (u_char *)calloc(((8 * BYTES_PER_XDR_UNIT) + 
-+			RNDUP(oa->oa_length)), 1);
-+	if (rpchdr == NULL)
- 		return (FALSE);
- 
- 	buf = (int32_t *)rpchdr;
-@@ -325,6 +323,8 @@ svcauth_gss_validate(struct svc_rpc_gss_data *gd, struct rpc_msg *msg)
- 	maj_stat = gss_verify_mic(&min_stat, gd->ctx, &rpcbuf, &checksum,
- 				  &qop_state);
- 
-+	free(rpchdr);
-+
- 	if (maj_stat != GSS_S_COMPLETE) {
- 		gss_log_status("gss_verify_mic", maj_stat, min_stat);
- 		return (FALSE);
-@@ -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/tirpc/rpc/auth.h b/tirpc/rpc/auth.h
-index 4ce11f0..7c8f813 100644
---- a/tirpc/rpc/auth.h
-+++ b/tirpc/rpc/auth.h
-@@ -399,6 +399,7 @@ struct rpc_msg;
- enum auth_stat _svcauth_none (struct svc_req *, struct rpc_msg *);
- enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *);
- enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *);
-+enum auth_stat _svcauth_gss (struct svc_req *, struct rpc_msg *, bool_t *);
- __END_DECLS
- 
- #define AUTH_NONE	0		/* no authentication */
-diff --git a/tirpc/rpc/svc_auth.h b/tirpc/rpc/svc_auth.h
-index 14269d1..723c989 100644
---- a/tirpc/rpc/svc_auth.h
-+++ b/tirpc/rpc/svc_auth.h
-@@ -66,6 +66,8 @@ typedef struct SVCAUTH {
-  * Server side authenticator
-  */
- __BEGIN_DECLS
-+extern enum auth_stat _gss_authenticate(struct svc_req *, struct rpc_msg *,
-+		bool_t *);
- extern enum auth_stat _authenticate(struct svc_req *, struct rpc_msg *);
- extern int svc_auth_reg(int, enum auth_stat (*)(struct svc_req *,
- 			  struct rpc_msg *));
diff --git a/libtirpc-0.2.6-rc2.patch b/libtirpc-0.2.6-rc2.patch
deleted file mode 100644
index bbb2cbd..0000000
--- a/libtirpc-0.2.6-rc2.patch
+++ /dev/null
@@ -1,270 +0,0 @@
-diff --git a/INSTALL b/INSTALL
-index 8b641e3..f812f5a 120000
---- a/INSTALL
-+++ b/INSTALL
-@@ -1 +1 @@
--/usr/share/automake-1.13/INSTALL
-\ No newline at end of file
-+/usr/share/automake-1.14/INSTALL
-\ No newline at end of file
-diff --git a/configure.ac b/configure.ac
-index bcbe911..10d17ea 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1,4 +1,4 @@
--AC_INIT(libtirpc, 0.2.5)
-+AC_INIT(libtirpc, 0.2.4)
- AM_INIT_AUTOMAKE([silent-rules])
- AM_SILENT_RULES([yes])
- AC_CONFIG_SRCDIR([src/auth_des.c])
-diff --git a/libtirpc.pc.in b/libtirpc.pc.in
-index ec4cf75..38034c5 100644
---- a/libtirpc.pc.in
-+++ b/libtirpc.pc.in
-@@ -8,4 +8,5 @@ Description: Transport Independent RPC Library
- Requires:
- Version: @PACKAGE_VERSION@
- Libs: -L at libdir@ -ltirpc
-+Libs.private: -lpthread
- Cflags: -I at includedir@/tirpc
-diff --git a/src/clnt_bcast.c b/src/clnt_bcast.c
-index 373d8a5..ddcb694 100644
---- a/src/clnt_bcast.c
-+++ b/src/clnt_bcast.c
-@@ -142,7 +142,8 @@ __rpc_getbroadifs(int af, int proto, int socktype, broadlist_t *list)
- 		return 0;
- 
- 	for (ifap = ifp; ifap != NULL; ifap = ifap->ifa_next) {
--		if (ifap->ifa_addr->sa_family != af ||
-+		if (ifap->ifa_addr == NULL ||		/* happens for eg tuntap devices */
-+		    ifap->ifa_addr->sa_family != af ||
- 		    !(ifap->ifa_flags & IFF_UP))
- 			continue;
- 		bip = (struct broadif *)malloc(sizeof *bip);
-@@ -588,9 +589,11 @@ rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp,
- 						LIBTIRPC_DEBUG(3, ("rpc_broadcast_exp: uaddr %s\n", uaddrp));
- 						np = uaddr2taddr(
- 						    fdlist[i].nconf, uaddrp);
--						done = (*eachresult)(resultsp,
--						    np, fdlist[i].nconf);
--						free(np);
-+						if (np != NULL) {
-+							done = (*eachresult)(resultsp,
-+							    np, fdlist[i].nconf);
-+							free(np);
-+						}
- #ifdef PORTMAP
- 					}
- #endif				/* PORTMAP */
-diff --git a/src/debug.h b/src/debug.h
-index afc8d57..c971ac3 100644
---- a/src/debug.h
-+++ b/src/debug.h
-@@ -21,6 +21,8 @@
- 
- #ifndef _DEBUG_H
- #define _DEBUG_H
-+
-+#include <stdarg.h>
- #include <syslog.h>
- 
- extern int libtirpc_debug_level;
-diff --git a/src/rpc_generic.c b/src/rpc_generic.c
-index a43906c..764a25c 100644
---- a/src/rpc_generic.c
-+++ b/src/rpc_generic.c
-@@ -608,6 +608,7 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf)
- 	struct sockaddr_in6 *sin6;
- 	char namebuf6[INET6_ADDRSTRLEN];
- #endif
-+	int path_len;
- 	u_int16_t port;
- 
- 	if (nbuf->len <= 0)
-@@ -638,13 +639,12 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf)
- #endif
- 	case AF_LOCAL:
- 		sun = nbuf->buf;
--		/*	if (asprintf(&ret, "%.*s", (int)(sun->sun_len -
--		    offsetof(struct sockaddr_un, sun_path)),
--		    sun->sun_path) < 0)*/
--		if (asprintf(&ret, "%.*s", (int)(sizeof(*sun) -
--						 offsetof(struct sockaddr_un, sun_path)),
--			     sun->sun_path) < 0)
- 
-+		path_len = nbuf->len - offsetof(struct sockaddr_un, sun_path);
-+		if (path_len < 0)
-+			return NULL;
-+
-+		if (asprintf(&ret, "%.*s", path_len, sun->sun_path) < 0)
- 			return (NULL);
- 		break;
- 	default:
-diff --git a/src/rpc_soc.c b/src/rpc_soc.c
-index 338edbb..e146ed4 100644
---- a/src/rpc_soc.c
-+++ b/src/rpc_soc.c
-@@ -564,16 +564,12 @@ clntunix_create(raddr, prog, vers, sockp, sendsz, recvsz)
- 	u_int sendsz;
- 	u_int recvsz;
- {
--	struct netbuf *svcaddr;
--	CLIENT *cl;
-+	struct netbuf svcaddr = {0, 0, NULL};
-+	CLIENT *cl = NULL;
- 	int len;
- 
--	cl = NULL;
--	svcaddr = NULL;
--	if (((svcaddr = malloc(sizeof(struct netbuf))) == NULL ) ||
--	    ((svcaddr->buf = malloc(sizeof(struct sockaddr_un))) == NULL)) {
--		if (svcaddr != NULL)
--			free(svcaddr);
-+	memset(&svcaddr, 0, sizeof(svcaddr));
-+	if (__rpc_set_netbuf(&svcaddr, raddr, sizeof(*raddr)) == NULL) {
- 		rpc_createerr.cf_stat = RPC_SYSTEMERROR;
- 		rpc_createerr.cf_error.re_errno = errno;
- 		return(cl);
-@@ -590,14 +586,10 @@ clntunix_create(raddr, prog, vers, sockp, sendsz, recvsz)
- 			goto done;
- 		}
- 	}
--	svcaddr->buf = raddr;
--	svcaddr->len = sizeof(raddr);
--	svcaddr->maxlen = sizeof (struct sockaddr_un);
--	cl = clnt_vc_create(*sockp, svcaddr, prog,
-+	cl = clnt_vc_create(*sockp, &svcaddr, prog,
- 	    vers, sendsz, recvsz);
- done:
--	free(svcaddr->buf);
--	free(svcaddr);
-+	free(svcaddr.buf);
- 	return(cl);
- }
- 
-diff --git a/src/rpcb_clnt.c b/src/rpcb_clnt.c
-index a796593..f1c71a2 100644
---- a/src/rpcb_clnt.c
-+++ b/src/rpcb_clnt.c
-@@ -401,6 +401,44 @@ out_err:
- 	return (client);
- }
- 
-+/*
-+ * Create a PMAP client handle.
-+ */
-+static CLIENT *
-+getpmaphandle(nconf, hostname, tgtaddr)
-+	const struct netconfig *nconf;
-+	const char *hostname;
-+	char **tgtaddr;
-+{
-+	CLIENT *client = NULL;
-+	rpcvers_t pmapvers = 2;
-+
-+	/*
-+	 * Try UDP only - there are some portmappers out
-+	 * there that use UDP only.
-+	 */
-+	if (nconf == NULL || strcmp(nconf->nc_proto, NC_TCP) == 0) {
-+		struct netconfig *newnconf;
-+
-+		if ((newnconf = getnetconfigent("udp")) == NULL) {
-+			rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
-+			return NULL;
-+		}
-+		client = getclnthandle(hostname, newnconf, tgtaddr);
-+		freenetconfigent(newnconf);
-+	} else if (strcmp(nconf->nc_proto, NC_UDP) == 0) {
-+		if (strcmp(nconf->nc_protofmly, NC_INET) != 0)
-+			return NULL;
-+		client = getclnthandle(hostname, nconf, tgtaddr);
-+	}
-+
-+	/* Set version */
-+	if (client != NULL)
-+		CLNT_CONTROL(client, CLSET_VERS, (char *)&pmapvers);
-+
-+	return client;
-+}
-+
- /* XXX */
- #define IN4_LOCALHOST_STRING	"127.0.0.1"
- #define IN6_LOCALHOST_STRING	"::1"
-@@ -733,34 +771,20 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp)
- 	if (strcmp(nconf->nc_protofmly, NC_INET) == 0) {
- 		u_short port = 0;
- 		struct netbuf remote;
--		rpcvers_t pmapvers = 2;
- 		struct pmap pmapparms;
- 
--		/*
--		 * Try UDP only - there are some portmappers out
--		 * there that use UDP only.
--		 */
--		if (strcmp(nconf->nc_proto, NC_TCP) == 0) {
--			struct netconfig *newnconf;
--
--			if ((newnconf = getnetconfigent("udp")) == NULL) {
--				rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
--				return (NULL);
--			}
--			client = getclnthandle(host, newnconf, &parms.r_addr);
--			freenetconfigent(newnconf);
--		} else if (strcmp(nconf->nc_proto, NC_UDP) == 0)
--			client = getclnthandle(host, nconf, &parms.r_addr);
--		else
-+		if (strcmp(nconf->nc_proto, NC_UDP) != 0
-+		 && strcmp(nconf->nc_proto, NC_TCP) != 0)
- 			goto try_rpcbind;
-+
-+		client = getpmaphandle(nconf, host, &parms.r_addr);
- 		if (client == NULL)
- 			return (NULL);
- 
- 		/*
--		 * Set version and retry timeout.
-+		 * Set retry timeout.
- 		 */
- 		CLNT_CONTROL(client, CLSET_RETRY_TIMEOUT, (char *)&rpcbrmttime);
--		CLNT_CONTROL(client, CLSET_VERS, (char *)&pmapvers);
- 
- 		pmapparms.pm_prog = program;
- 		pmapparms.pm_vers = version;
-diff --git a/src/svc_vc.c b/src/svc_vc.c
-index 4c70de8..4d3ea51 100644
---- a/src/svc_vc.c
-+++ b/src/svc_vc.c
-@@ -559,20 +559,19 @@ write_vc(xprtp, buf, len)
- 				cd->strm_stat = XPRT_DIED;
- 				return (-1);
- 			}
--			if (cd->nonblock && i != cnt) {
--				/*
--				 * For non-blocking connections, do not
--				 * take more than 2 seconds writing the
--				 * data out.
--				 *
--				 * XXX 2 is an arbitrary amount.
--				 */
--				gettimeofday(&tv1, NULL);
--				if (tv1.tv_sec - tv0.tv_sec >= 2) {
--					cd->strm_stat = XPRT_DIED;
--					return (-1);
--				}
-+			/*
-+			 * For non-blocking connections, do not
-+			 * take more than 2 seconds writing the
-+			 * data out.
-+			 *
-+			 * XXX 2 is an arbitrary amount.
-+			 */
-+			gettimeofday(&tv1, NULL);
-+			if (tv1.tv_sec - tv0.tv_sec >= 2) {
-+				cd->strm_stat = XPRT_DIED;
-+				return (-1);
- 			}
-+			i = 0; /* Don't change buf and cnt */
- 		}
- 	}
- 
diff --git a/libtirpc-0.2.6-rc3.patch b/libtirpc-0.2.6-rc3.patch
deleted file mode 100644
index 5df66ef..0000000
--- a/libtirpc-0.2.6-rc3.patch
+++ /dev/null
@@ -1,2721 +0,0 @@
-diff --git a/HACKING b/HACKING
-new file mode 100644
-index 0000000..d562427
---- /dev/null
-+++ b/HACKING
-@@ -0,0 +1,2 @@
-+Patches can be sent to libtirpc-devel at lists.sourceforge.net with a CC
-+to linux-nfs at vger.kernel.org
-diff --git a/INSTALL b/INSTALL
-new file mode 100644
-index 0000000..2099840
---- /dev/null
-+++ b/INSTALL
-@@ -0,0 +1,370 @@
-+Installation Instructions
-+*************************
-+
-+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
-+Inc.
-+
-+   Copying and distribution of this file, with or without modification,
-+are permitted in any medium without royalty provided the copyright
-+notice and this notice are preserved.  This file is offered as-is,
-+without warranty of any kind.
-+
-+Basic Installation
-+==================
-+
-+   Briefly, the shell command `./configure && make && make install'
-+should configure, build, and install this package.  The following
-+more-detailed instructions are generic; see the `README' file for
-+instructions specific to this package.  Some packages provide this
-+`INSTALL' file but do not implement all of the features documented
-+below.  The lack of an optional feature in a given package is not
-+necessarily a bug.  More recommendations for GNU packages can be found
-+in *note Makefile Conventions: (standards)Makefile Conventions.
-+
-+   The `configure' shell script attempts to guess correct values for
-+various system-dependent variables used during compilation.  It uses
-+those values to create a `Makefile' in each directory of the package.
-+It may also create one or more `.h' files containing system-dependent
-+definitions.  Finally, it creates a shell script `config.status' that
-+you can run in the future to recreate the current configuration, and a
-+file `config.log' containing compiler output (useful mainly for
-+debugging `configure').
-+
-+   It can also use an optional file (typically called `config.cache'
-+and enabled with `--cache-file=config.cache' or simply `-C') that saves
-+the results of its tests to speed up reconfiguring.  Caching is
-+disabled by default to prevent problems with accidental use of stale
-+cache files.
-+
-+   If you need to do unusual things to compile the package, please try
-+to figure out how `configure' could check whether to do them, and mail
-+diffs or instructions to the address given in the `README' so they can
-+be considered for the next release.  If you are using the cache, and at
-+some point `config.cache' contains results you don't want to keep, you
-+may remove or edit it.
-+
-+   The file `configure.ac' (or `configure.in') is used to create
-+`configure' by a program called `autoconf'.  You need `configure.ac' if
-+you want to change it or regenerate `configure' using a newer version
-+of `autoconf'.
-+
-+   The simplest way to compile this package is:
-+
-+  1. `cd' to the directory containing the package's source code and type
-+     `./configure' to configure the package for your system.
-+
-+     Running `configure' might take a while.  While running, it prints
-+     some messages telling which features it is checking for.
-+
-+  2. Type `make' to compile the package.
-+
-+  3. Optionally, type `make check' to run any self-tests that come with
-+     the package, generally using the just-built uninstalled binaries.
-+
-+  4. Type `make install' to install the programs and any data files and
-+     documentation.  When installing into a prefix owned by root, it is
-+     recommended that the package be configured and built as a regular
-+     user, and only the `make install' phase executed with root
-+     privileges.
-+
-+  5. Optionally, type `make installcheck' to repeat any self-tests, but
-+     this time using the binaries in their final installed location.
-+     This target does not install anything.  Running this target as a
-+     regular user, particularly if the prior `make install' required
-+     root privileges, verifies that the installation completed
-+     correctly.
-+
-+  6. You can remove the program binaries and object files from the
-+     source code directory by typing `make clean'.  To also remove the
-+     files that `configure' created (so you can compile the package for
-+     a different kind of computer), type `make distclean'.  There is
-+     also a `make maintainer-clean' target, but that is intended mainly
-+     for the package's developers.  If you use it, you may have to get
-+     all sorts of other programs in order to regenerate files that came
-+     with the distribution.
-+
-+  7. Often, you can also type `make uninstall' to remove the installed
-+     files again.  In practice, not all packages have tested that
-+     uninstallation works correctly, even though it is required by the
-+     GNU Coding Standards.
-+
-+  8. Some packages, particularly those that use Automake, provide `make
-+     distcheck', which can by used by developers to test that all other
-+     targets like `make install' and `make uninstall' work correctly.
-+     This target is generally not run by end users.
-+
-+Compilers and Options
-+=====================
-+
-+   Some systems require unusual options for compilation or linking that
-+the `configure' script does not know about.  Run `./configure --help'
-+for details on some of the pertinent environment variables.
-+
-+   You can give `configure' initial values for configuration parameters
-+by setting variables in the command line or in the environment.  Here
-+is an example:
-+
-+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
-+
-+   *Note Defining Variables::, for more details.
-+
-+Compiling For Multiple Architectures
-+====================================
-+
-+   You can compile the package for more than one kind of computer at the
-+same time, by placing the object files for each architecture in their
-+own directory.  To do this, you can use GNU `make'.  `cd' to the
-+directory where you want the object files and executables to go and run
-+the `configure' script.  `configure' automatically checks for the
-+source code in the directory that `configure' is in and in `..'.  This
-+is known as a "VPATH" build.
-+
-+   With a non-GNU `make', it is safer to compile the package for one
-+architecture at a time in the source code directory.  After you have
-+installed the package for one architecture, use `make distclean' before
-+reconfiguring for another architecture.
-+
-+   On MacOS X 10.5 and later systems, you can create libraries and
-+executables that work on multiple system types--known as "fat" or
-+"universal" binaries--by specifying multiple `-arch' options to the
-+compiler but only a single `-arch' option to the preprocessor.  Like
-+this:
-+
-+     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
-+                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
-+                 CPP="gcc -E" CXXCPP="g++ -E"
-+
-+   This is not guaranteed to produce working output in all cases, you
-+may have to build one architecture at a time and combine the results
-+using the `lipo' tool if you have problems.
-+
-+Installation Names
-+==================
-+
-+   By default, `make install' installs the package's commands under
-+`/usr/local/bin', include files under `/usr/local/include', etc.  You
-+can specify an installation prefix other than `/usr/local' by giving
-+`configure' the option `--prefix=PREFIX', where PREFIX must be an
-+absolute file name.
-+
-+   You can specify separate installation prefixes for
-+architecture-specific files and architecture-independent files.  If you
-+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
-+PREFIX as the prefix for installing programs and libraries.
-+Documentation and other data files still use the regular prefix.
-+
-+   In addition, if you use an unusual directory layout you can give
-+options like `--bindir=DIR' to specify different values for particular
-+kinds of files.  Run `configure --help' for a list of the directories
-+you can set and what kinds of files go in them.  In general, the
-+default for these options is expressed in terms of `${prefix}', so that
-+specifying just `--prefix' will affect all of the other directory
-+specifications that were not explicitly provided.
-+
-+   The most portable way to affect installation locations is to pass the
-+correct locations to `configure'; however, many packages provide one or
-+both of the following shortcuts of passing variable assignments to the
-+`make install' command line to change installation locations without
-+having to reconfigure or recompile.
-+
-+   The first method involves providing an override variable for each
-+affected directory.  For example, `make install
-+prefix=/alternate/directory' will choose an alternate location for all
-+directory configuration variables that were expressed in terms of
-+`${prefix}'.  Any directories that were specified during `configure',
-+but not in terms of `${prefix}', must each be overridden at install
-+time for the entire installation to be relocated.  The approach of
-+makefile variable overrides for each directory variable is required by
-+the GNU Coding Standards, and ideally causes no recompilation.
-+However, some platforms have known limitations with the semantics of
-+shared libraries that end up requiring recompilation when using this
-+method, particularly noticeable in packages that use GNU Libtool.
-+
-+   The second method involves providing the `DESTDIR' variable.  For
-+example, `make install DESTDIR=/alternate/directory' will prepend
-+`/alternate/directory' before all installation names.  The approach of
-+`DESTDIR' overrides is not required by the GNU Coding Standards, and
-+does not work on platforms that have drive letters.  On the other hand,
-+it does better at avoiding recompilation issues, and works well even
-+when some directory options were not specified in terms of `${prefix}'
-+at `configure' time.
-+
-+Optional Features
-+=================
-+
-+   If the package supports it, you can cause programs to be installed
-+with an extra prefix or suffix on their names by giving `configure' the
-+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-+
-+   Some packages pay attention to `--enable-FEATURE' options to
-+`configure', where FEATURE indicates an optional part of the package.
-+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-+is something like `gnu-as' or `x' (for the X Window System).  The
-+`README' should mention any `--enable-' and `--with-' options that the
-+package recognizes.
-+
-+   For packages that use the X Window System, `configure' can usually
-+find the X include and library files automatically, but if it doesn't,
-+you can use the `configure' options `--x-includes=DIR' and
-+`--x-libraries=DIR' to specify their locations.
-+
-+   Some packages offer the ability to configure how verbose the
-+execution of `make' will be.  For these packages, running `./configure
-+--enable-silent-rules' sets the default to minimal output, which can be
-+overridden with `make V=1'; while running `./configure
-+--disable-silent-rules' sets the default to verbose, which can be
-+overridden with `make V=0'.
-+
-+Particular systems
-+==================
-+
-+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
-+CC is not installed, it is recommended to use the following options in
-+order to use an ANSI C compiler:
-+
-+     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
-+
-+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
-+
-+   HP-UX `make' updates targets which have the same time stamps as
-+their prerequisites, which makes it generally unusable when shipped
-+generated files such as `configure' are involved.  Use GNU `make'
-+instead.
-+
-+   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
-+parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
-+a workaround.  If GNU CC is not installed, it is therefore recommended
-+to try
-+
-+     ./configure CC="cc"
-+
-+and if that doesn't work, try
-+
-+     ./configure CC="cc -nodtk"
-+
-+   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
-+directory contains several dysfunctional programs; working variants of
-+these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
-+in your `PATH', put it _after_ `/usr/bin'.
-+
-+   On Haiku, software installed for all users goes in `/boot/common',
-+not `/usr/local'.  It is recommended to use the following options:
-+
-+     ./configure --prefix=/boot/common
-+
-+Specifying the System Type
-+==========================
-+
-+   There may be some features `configure' cannot figure out
-+automatically, but needs to determine by the type of machine the package
-+will run on.  Usually, assuming the package is built to be run on the
-+_same_ architectures, `configure' can figure that out, but if it prints
-+a message saying it cannot guess the machine type, give it the
-+`--build=TYPE' option.  TYPE can either be a short name for the system
-+type, such as `sun4', or a canonical name which has the form:
-+
-+     CPU-COMPANY-SYSTEM
-+
-+where SYSTEM can have one of these forms:
-+
-+     OS
-+     KERNEL-OS
-+
-+   See the file `config.sub' for the possible values of each field.  If
-+`config.sub' isn't included in this package, then this package doesn't
-+need to know the machine type.
-+
-+   If you are _building_ compiler tools for cross-compiling, you should
-+use the option `--target=TYPE' to select the type of system they will
-+produce code for.
-+
-+   If you want to _use_ a cross compiler, that generates code for a
-+platform different from the build platform, you should specify the
-+"host" platform (i.e., that on which the generated programs will
-+eventually be run) with `--host=TYPE'.
-+
-+Sharing Defaults
-+================
-+
-+   If you want to set default values for `configure' scripts to share,
-+you can create a site shell script called `config.site' that gives
-+default values for variables like `CC', `cache_file', and `prefix'.
-+`configure' looks for `PREFIX/share/config.site' if it exists, then
-+`PREFIX/etc/config.site' if it exists.  Or, you can set the
-+`CONFIG_SITE' environment variable to the location of the site script.
-+A warning: not all `configure' scripts look for a site script.
-+
-+Defining Variables
-+==================
-+
-+   Variables not defined in a site shell script can be set in the
-+environment passed to `configure'.  However, some packages may run
-+configure again during the build, and the customized values of these
-+variables may be lost.  In order to avoid this problem, you should set
-+them in the `configure' command line, using `VAR=value'.  For example:
-+
-+     ./configure CC=/usr/local2/bin/gcc
-+
-+causes the specified `gcc' to be used as the C compiler (unless it is
-+overridden in the site shell script).
-+
-+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-+an Autoconf limitation.  Until the limitation is lifted, you can use
-+this workaround:
-+
-+     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
-+
-+`configure' Invocation
-+======================
-+
-+   `configure' recognizes the following options to control how it
-+operates.
-+
-+`--help'
-+`-h'
-+     Print a summary of all of the options to `configure', and exit.
-+
-+`--help=short'
-+`--help=recursive'
-+     Print a summary of the options unique to this package's
-+     `configure', and exit.  The `short' variant lists options used
-+     only in the top level, while the `recursive' variant lists options
-+     also present in any nested packages.
-+
-+`--version'
-+`-V'
-+     Print the version of Autoconf used to generate the `configure'
-+     script, and exit.
-+
-+`--cache-file=FILE'
-+     Enable the cache: use and save the results of the tests in FILE,
-+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
-+     disable caching.
-+
-+`--config-cache'
-+`-C'
-+     Alias for `--cache-file=config.cache'.
-+
-+`--quiet'
-+`--silent'
-+`-q'
-+     Do not print messages saying which checks are being made.  To
-+     suppress all normal output, redirect it to `/dev/null' (any error
-+     messages will still be shown).
-+
-+`--srcdir=DIR'
-+     Look for the package's source code in directory DIR.  Usually
-+     `configure' can determine that directory automatically.
-+
-+`--prefix=DIR'
-+     Use DIR as the installation prefix.  *note Installation Names::
-+     for more details, including other options available for fine-tuning
-+     the installation locations.
-+
-+`--no-create'
-+`-n'
-+     Run the configure checks, but stop before creating any output
-+     files.
-+
-+`configure' also accepts some other, not widely useful, options.  Run
-+`configure --help' for more details.
-diff --git a/autogen.sh b/autogen.sh
-index 3aef4d9..1613b6d 100644
---- a/autogen.sh
-+++ b/autogen.sh
-@@ -37,6 +37,6 @@ fi
- 
- aclocal
- libtoolize --force --copy
--#autoheader
-+autoheader
- automake --add-missing --copy --gnu # -Wall
- autoconf # -Wall
-diff --git a/bootstrap b/bootstrap
-index dde1a77..9f35619 100755
---- a/bootstrap
-+++ b/bootstrap
-@@ -3,8 +3,10 @@ rm -rf autom4te.cache configure Makefile stamp-h1
- rm -rf src/Makefile src/.deps
- rm -rf Makefile.in aclocal.m4 config.log config.h
- rm -rf depcomp missing install-sh config.status
--aclocal
-+mkdir -p m4
-+aclocal -I m4
- autoheader
-+libtoolize --automake --copy
- automake --gnu --add-missing -c
- autoconf
- rm -rf autom4te.cache config.log libtool stamp-h1* 
-diff --git a/configure.ac b/configure.ac
-index bcbe911..80dec85 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1,4 +1,4 @@
--AC_INIT(libtirpc, 0.2.5)
-+AC_INIT(libtirpc, 0.2.4)
- AM_INIT_AUTOMAKE([silent-rules])
- AM_SILENT_RULES([yes])
- AC_CONFIG_SRCDIR([src/auth_des.c])
-@@ -15,6 +15,12 @@ if test x$enable_gssapi = xyes; then
- 	AC_SUBST([GSSAPI_CFLAGS])
- 	AC_SUBST([GSSAPI_LIBS])
- fi
-+
-+AC_ARG_ENABLE(authdes,
-+	[AC_HELP_STRING([--disable-authdes], [Disable DES authentication @<:@default=no@:>@])],
-+      [],[enable_authdes=yes])
-+AM_CONDITIONAL(AUTHDES, test x$enable_authdes = xyes)
-+
- AC_ARG_ENABLE(ipv6,
- 	[AC_HELP_STRING([--disable-ipv6], [Disable IPv6 support @<:@default=no@:>@])],
- 	[],[enable_ipv6=yes])
-@@ -24,14 +30,16 @@ if test "x$enable_ipv6" != xno; then
- fi
- 
- AC_PROG_CC
--m4_pattern_allow(AM_CONFIG_HEADERS(config.h))
-+AC_CONFIG_HEADERS([config.h])
- AC_PROG_LIBTOOL
- AC_HEADER_DIRENT
- AC_PREFIX_DEFAULT(/usr)
--AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h sys/param.h sys/socket.h sys/time.h syslog.h unistd.h])
-+AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h sys/param.h sys/socket.h sys/time.h syslog.h unistd.h features.h])
- AC_CHECK_LIB([pthread], [pthread_create])
- AC_CHECK_LIB([nsl], [yp_get_default_domain])
--
-+AC_CHECK_FUNCS([getrpcbyname getrpcbynumber])
- 
- AC_CONFIG_FILES([Makefile src/Makefile man/Makefile doc/Makefile])
- AC_OUTPUT(libtirpc.pc)
-+
-+
-diff --git a/libtirpc.pc.in b/libtirpc.pc.in
-index ec4cf75..38034c5 100644
---- a/libtirpc.pc.in
-+++ b/libtirpc.pc.in
-@@ -8,4 +8,5 @@ Description: Transport Independent RPC Library
- Requires:
- Version: @PACKAGE_VERSION@
- Libs: -L at libdir@ -ltirpc
-+Libs.private: -lpthread
- Cflags: -I at includedir@/tirpc
-diff --git a/src/Makefile.am b/src/Makefile.am
-index de57c8f..26ccbdf 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -42,6 +42,7 @@ lib_LTLIBRARIES = libtirpc.la
- # misunderstanding of the purpose of library versions."
- #
- libtirpc_la_LDFLAGS = -lpthread -version-info 1:10:0
-+libtirpc_la_CFLAGS =
- 
- libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c bindresvport.c clnt_bcast.c \
-         clnt_dg.c clnt_generic.c clnt_perror.c clnt_raw.c clnt_simple.c \
-@@ -51,7 +52,7 @@ libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c bindresvport.c cln
-         rpc_callmsg.c rpc_generic.c rpc_soc.c rpcb_clnt.c rpcb_prot.c \
-         rpcb_st_xdr.c svc.c svc_auth.c svc_dg.c svc_auth_unix.c svc_auth_none.c \
-         svc_generic.c svc_raw.c svc_run.c svc_simple.c svc_vc.c getpeereid.c \
--        auth_time.c auth_des.c authdes_prot.c debug.c
-+        auth_time.c debug.c
- 
- ## XDR
- libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c xdr_reference.c xdr_stdio.c
-@@ -60,9 +61,16 @@ libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c xdr_ref
- if GSS
-     libtirpc_la_SOURCES += auth_gss.c authgss_prot.c svc_auth_gss.c
-     libtirpc_la_LDFLAGS += $(GSSAPI_LIBS)
--    libtirpc_la_CFLAGS = -DHAVE_RPCSEC_GSS $(GSSAPI_CFLAGS)
-+    libtirpc_la_CFLAGS += -DHAVE_RPCSEC_GSS $(GSSAPI_CFLAGS)
- endif
- 
-+## DES authentication
-+if AUTHDES
-+    libtirpc_la_SOURCES += auth_des.c authdes_prot.c
-+    libtirpc_la_CFLAGS += -DHAVE_AUTHDES
-+endif
-+
-+
- ## libtirpc_a_SOURCES += key_call.c key_prot_xdr.c getpublickey.c
- ## libtirpc_a_SOURCES += netname.c netnamer.c rpcdname.c \
- ## libtirpc_a_SOURCES += rtime.c \
-diff --git a/src/auth_des.c b/src/auth_des.c
-index cff777c..f8749b0 100644
---- a/src/auth_des.c
-+++ b/src/auth_des.c
-@@ -38,7 +38,6 @@
- #include <string.h>
- #include <stdlib.h>
- #include <unistd.h>
--#include <sys/cdefs.h>
- #include <rpc/des_crypt.h>
- #include <syslog.h>
- #include <rpc/types.h>
-@@ -52,7 +51,6 @@
- 
- #if defined(LIBC_SCCS) && !defined(lint)
- #endif
--#include <sys/cdefs.h>
- 
- #include "debug.h"
- 
-@@ -66,7 +64,7 @@
- 
- extern bool_t xdr_authdes_cred( XDR *, struct authdes_cred *);
- extern bool_t xdr_authdes_verf( XDR *, struct authdes_verf *);
--extern int key_encryptsession_pk();
-+extern int key_encryptsession_pk( char *, netobj *, des_block *);
- 
- extern bool_t __rpc_get_time_offset(struct timeval *, nis_server *, char *,
- 	char **, char **);
-diff --git a/src/auth_none.c b/src/auth_none.c
-index affc92b..0b0bbd1 100644
---- a/src/auth_none.c
-+++ b/src/auth_none.c
-@@ -31,7 +31,6 @@
- static char *sccsid = "@(#)auth_none.c 1.19 87/08/11 Copyr 1984 Sun Micro";
- static char *sccsid = "@(#)auth_none.c	2.1 88/07/29 4.0 RPCSRC";
- #endif
--#include <sys/cdefs.h>
- __FBSDID("$FreeBSD: src/lib/libc/rpc/auth_none.c,v 1.12 2002/03/22 23:18:35 obrien Exp $");
- */
- 
-diff --git a/src/auth_time.c b/src/auth_time.c
-index 7cfbb7e..13717ff 100644
---- a/src/auth_time.c
-+++ b/src/auth_time.c
-@@ -25,15 +25,14 @@
-  *	needed to deal with TCP connections.
-  */
- 
--#include <sys/cdefs.h>
- #include <stdio.h>
- #include <syslog.h>
- #include <string.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <netdb.h>
--#include <sys/signal.h>
--#include <sys/errno.h>
-+#include <signal.h>
-+#include <errno.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
-diff --git a/src/auth_unix.c b/src/auth_unix.c
-index 4b9b13f..3009543 100644
---- a/src/auth_unix.c
-+++ b/src/auth_unix.c
-@@ -26,7 +26,6 @@
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * auth_unix.c, Implements UNIX style authentication parameters.
-diff --git a/src/authdes_prot.c b/src/authdes_prot.c
-index ed061a5..227d08a 100644
---- a/src/authdes_prot.c
-+++ b/src/authdes_prot.c
-@@ -1,4 +1,3 @@
--#include <sys/cdefs.h>
- /*
-  * Copyright (c) 2009, Sun Microsystems, Inc.
-  * All rights reserved.
-diff --git a/src/authgss_prot.c b/src/authgss_prot.c
-index 669eab7..d80ba17 100644
---- a/src/authgss_prot.c
-+++ b/src/authgss_prot.c
-@@ -37,6 +37,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdarg.h>
-+#include <string.h>
- #include <rpc/types.h>
- #include <rpc/xdr.h>
- #include <rpc/auth.h>
-diff --git a/src/authunix_prot.c b/src/authunix_prot.c
-index bf76a9d..0a04336 100644
---- a/src/authunix_prot.c
-+++ b/src/authunix_prot.c
-@@ -26,7 +26,6 @@
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * authunix_prot.c
-diff --git a/src/bindresvport.c b/src/bindresvport.c
-index d6d9c14..2d8f2bc 100644
---- a/src/bindresvport.c
-+++ b/src/bindresvport.c
-@@ -26,7 +26,6 @@
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * Copyright (c) 1987 by Sun Microsystems, Inc.
-@@ -37,6 +36,7 @@
- #include <sys/types.h>
- #include <sys/socket.h>
- 
-+#include <netdb.h>
- #include <netinet/in.h>
- 
- #include <errno.h>
-diff --git a/src/clnt_bcast.c b/src/clnt_bcast.c
-index 373d8a5..98cf061 100644
---- a/src/clnt_bcast.c
-+++ b/src/clnt_bcast.c
-@@ -28,7 +28,6 @@
- /*
-  * Copyright (c) 1986-1991 by Sun Microsystems Inc. 
-  */
--#include <sys/cdefs.h>
- 
- /*
-  * clnt_bcast.c
-@@ -46,7 +45,7 @@
- #include <net/if.h>
- #include <netinet/in.h>
- #include <ifaddrs.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <rpc/rpc.h>
- #ifdef PORTMAP
- #include <rpc/pmap_prot.h>
-@@ -142,7 +141,8 @@ __rpc_getbroadifs(int af, int proto, int socktype, broadlist_t *list)
- 		return 0;
- 
- 	for (ifap = ifp; ifap != NULL; ifap = ifap->ifa_next) {
--		if (ifap->ifa_addr->sa_family != af ||
-+		if (ifap->ifa_addr == NULL ||		/* happens for eg tuntap devices */
-+		    ifap->ifa_addr->sa_family != af ||
- 		    !(ifap->ifa_flags & IFF_UP))
- 			continue;
- 		bip = (struct broadif *)malloc(sizeof *bip);
-@@ -222,6 +222,39 @@ __rpc_broadenable(int af, int s, struct broadif *bip)
- 	return 0;
- }
- 
-+/*
-+ * Some rpcbind implementations use an IPv6 socket to serve both 
-+ * IPv4 and IPv6 messages, but neglect to check for the caller's
-+ * address family when sending broadcast replies. These rpcbind
-+ * implementations return an IPv6 address in reply to an IPv4
-+ * broadcast. We can either ignore them, or try to patch them up.
-+ */
-+static struct netbuf *
-+__ipv6v4_fixup(struct sockaddr_storage *ss, const char *uaddr)
-+{
-+	struct sockaddr_in sin;
-+	struct netbuf *np;
-+
-+	/* ss is the remote rpcbind server's address */
-+	if (ss->ss_family != AF_INET)
-+		return NULL;
-+	memcpy(&sin, ss, sizeof(sin));
-+
-+	np = __rpc_uaddr2taddr_af(AF_INET6, uaddr);
-+	if (np == NULL)
-+		return NULL;
-+
-+	/* Overwrite the port with that of the service we
-+	 * wanted to talk to. */
-+	sin.sin_port = ((struct sockaddr_in6 *) np)->sin6_port;
-+
-+	/* We know netbuf holds a sockaddr_in6, so it can easily
-+	 * hold a sockaddr_in as well. */
-+	memcpy(np->buf, &sin, sizeof(sin));
-+	np->len = sizeof(sin);
-+
-+	return np;
-+}
- 
- enum clnt_stat
- rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp,
-@@ -588,9 +621,18 @@ rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp,
- 						LIBTIRPC_DEBUG(3, ("rpc_broadcast_exp: uaddr %s\n", uaddrp));
- 						np = uaddr2taddr(
- 						    fdlist[i].nconf, uaddrp);
--						done = (*eachresult)(resultsp,
--						    np, fdlist[i].nconf);
--						free(np);
-+						/* Some misguided rpcbind implemenations
-+						 * seem to return an IPv6 uaddr in IPv4
-+						 * responses. */
-+						if (np == NULL)
-+							np = __ipv6v4_fixup(
-+								&fdlist[i].raddr,
-+								uaddrp);
-+						if (np != NULL) {
-+							done = (*eachresult)(resultsp,
-+							    np, fdlist[i].nconf);
-+							free(np);
-+						}
- #ifdef PORTMAP
- 					}
- #endif				/* PORTMAP */
-diff --git a/src/clnt_dg.c b/src/clnt_dg.c
-index dcc621c..248138b 100644
---- a/src/clnt_dg.c
-+++ b/src/clnt_dg.c
-@@ -37,7 +37,7 @@
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <stdint.h>
--#include <sys/poll.h>
-+#include <poll.h>
- 
- #include <sys/time.h>
- 
-diff --git a/src/clnt_generic.c b/src/clnt_generic.c
-index b9b07bc..3f3dabf 100644
---- a/src/clnt_generic.c
-+++ b/src/clnt_generic.c
-@@ -29,7 +29,7 @@
- #include <pthread.h>
- #include <reentrant.h>
- #include <sys/types.h>
--#include <sys/fcntl.h>
-+#include <fcntl.h>
- #include <fcntl.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
-diff --git a/src/clnt_perror.c b/src/clnt_perror.c
-index bcd8af8..fb7fb80 100644
---- a/src/clnt_perror.c
-+++ b/src/clnt_perror.c
-@@ -27,9 +27,6 @@
-  */
- 
- /*
--#include <sys/cdefs.h>
--*/
--/*
-  * clnt_perror.c
-  *
-  * Copyright (C) 1984, Sun Microsystems, Inc.
-diff --git a/src/clnt_simple.c b/src/clnt_simple.c
-index 7ee9542..1700060 100644
---- a/src/clnt_simple.c
-+++ b/src/clnt_simple.c
-@@ -29,7 +29,6 @@
-  * Copyright (c) 1986-1991 by Sun Microsystems Inc. 
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * clnt_simple.c
-diff --git a/src/clnt_vc.c b/src/clnt_vc.c
-index 61264d4..a72f9f7 100644
---- a/src/clnt_vc.c
-+++ b/src/clnt_vc.c
-@@ -48,7 +48,7 @@
- 
- #include <reentrant.h>
- #include <sys/types.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/syslog.h>
- #include <sys/un.h>
- #include <sys/uio.h>
-diff --git a/src/crypt_client.c b/src/crypt_client.c
-index 670b253..f393926 100644
---- a/src/crypt_client.c
-+++ b/src/crypt_client.c
-@@ -30,7 +30,6 @@
-  * SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
- 
- #include <err.h>
- #include <sys/types.h>
-diff --git a/src/debug.h b/src/debug.h
-index afc8d57..c971ac3 100644
---- a/src/debug.h
-+++ b/src/debug.h
-@@ -21,6 +21,8 @@
- 
- #ifndef _DEBUG_H
- #define _DEBUG_H
-+
-+#include <stdarg.h>
- #include <syslog.h>
- 
- extern int libtirpc_debug_level;
-diff --git a/src/des_crypt.c b/src/des_crypt.c
-index 37a1022..980a6cb 100644
---- a/src/des_crypt.c
-+++ b/src/des_crypt.c
-@@ -39,7 +39,6 @@
- static char sccsid[] = "@(#)des_crypt.c	2.2 88/08/10 4.0 RPCSRC; from 1.13 88/02/08 SMI";
- #endif
- #endif
--#include <sys/cdefs.h>
- 
- static int common_crypt( char *, char *, unsigned, unsigned, struct desparams * );
- int (*__des_crypt_LOCAL)() = 0;
-diff --git a/src/getnetconfig.c b/src/getnetconfig.c
-index 635c03a..92e7c43 100644
---- a/src/getnetconfig.c
-+++ b/src/getnetconfig.c
-@@ -32,7 +32,6 @@
-  
- #include <pthread.h>
- #include <reentrant.h>
--#include <sys/cdefs.h>
- #include <stdio.h>
- #include <errno.h>
- #include <netconfig.h>
-diff --git a/src/getnetpath.c b/src/getnetpath.c
-index cd80dca..7c19932 100644
---- a/src/getnetpath.c
-+++ b/src/getnetpath.c
-@@ -25,13 +25,11 @@
-  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
--#include <sys/cdefs.h>
- 
- /*
-  * Copyright (c) 1989 by Sun Microsystems, Inc.
-  */
- 
--#include <sys/cdefs.h>
- #include <stdio.h>
- #include <errno.h>
- #include <netconfig.h>
-diff --git a/src/getpeereid.c b/src/getpeereid.c
-index 57ee197..dd85270 100644
---- a/src/getpeereid.c
-+++ b/src/getpeereid.c
-@@ -24,7 +24,6 @@
-  * SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
- 
- #include <sys/param.h>
- #include <sys/socket.h>
-diff --git a/src/getpublickey.c b/src/getpublickey.c
-index 85935d8..764a5f9 100644
---- a/src/getpublickey.c
-+++ b/src/getpublickey.c
-@@ -25,9 +25,6 @@
-  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
--/*
--#include <sys/cdefs.h>
--*/
- 
- /*
-  * publickey.c
-diff --git a/src/getrpcent.c b/src/getrpcent.c
-index 1b54b6d..6da006a 100644
---- a/src/getrpcent.c
-+++ b/src/getrpcent.c
-@@ -50,6 +50,10 @@
- #include <libc_private.h>
- #endif
- 
-+#if HAVE_CONFIG_H
-+#include "config.h"
-+#endif
-+
- /*
-  * Internet version.
-  */
-@@ -89,7 +93,7 @@ _rpcdata()
- 	return (d);
- }
- 
--#ifdef GQ
-+#if !HAVE_GETRPCBYNYMBER
- struct rpcent *
- getrpcbynumber(number)
- 	int number;
-@@ -135,7 +139,9 @@ no_yp:
- 	endrpcent();
- 	return (p);
- }
-+#endif /* !HAVE_GETRPCBYNUMBER */
- 
-+#if !HAVE_GETRPCBYNAME
- struct rpcent *
- getrpcbyname(name)
- 	const char *name;
-@@ -158,7 +164,7 @@ done:
- 	endrpcent();
- 	return (rpc);
- }
--#endif /* GQ */
-+#endif /* !HAVE_GETRPCBYNAME */
- 
- void
- setrpcent(f)
-diff --git a/src/key_call.c b/src/key_call.c
-index 8b9f388..589fd6f 100644
---- a/src/key_call.c
-+++ b/src/key_call.c
-@@ -30,7 +30,6 @@
-  */
- 
- 
--#include <sys/cdefs.h>
- 
- /*
-  * key_call.c, Interface to keyserver
-@@ -57,7 +56,7 @@
- #include <stdlib.h>
- #include <signal.h>
- #include <sys/wait.h>
--#include <sys/fcntl.h>
-+#include <fcntl.h>
- 
- #include "dump.h"
- 
-diff --git a/src/key_prot_xdr.c b/src/key_prot_xdr.c
-index df2842f..772f582 100644
---- a/src/key_prot_xdr.c
-+++ b/src/key_prot_xdr.c
-@@ -33,7 +33,6 @@
-  */
- /* Copyright (c)  1990, 1991 Sun Microsystems, Inc. */
- 
--#include <sys/cdefs.h>
- 
- /* 
-  * Compiled from key_prot.x using rpcgen.
-diff --git a/src/mt_misc.c b/src/mt_misc.c
-index 093086e..a50f385 100644
---- a/src/mt_misc.c
-+++ b/src/mt_misc.c
-@@ -1,5 +1,4 @@
- 
--#include <sys/cdefs.h>
- #include <pthread.h>
- #include <reentrant.h>
- #include <rpc/rpc.h>
-diff --git a/src/pmap_clnt.c b/src/pmap_clnt.c
-index 1d5d153..4b5fd85 100644
---- a/src/pmap_clnt.c
-+++ b/src/pmap_clnt.c
-@@ -26,7 +26,6 @@
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * pmap_clnt.c
-diff --git a/src/pmap_getmaps.c b/src/pmap_getmaps.c
-index 54338f7..853f724 100644
---- a/src/pmap_getmaps.c
-+++ b/src/pmap_getmaps.c
-@@ -26,7 +26,6 @@
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * pmap_getmap.c
-diff --git a/src/pmap_rmt.c b/src/pmap_rmt.c
-index b81d771..1c76114 100644
---- a/src/pmap_rmt.c
-+++ b/src/pmap_rmt.c
-@@ -36,7 +36,7 @@
- 
- #include <sys/types.h>
- #include <sys/ioctl.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/socket.h>
- 
- #include <net/if.h>
-diff --git a/src/rpc_com.h b/src/rpc_com.h
-index 38c2cfe..52a8c48 100644
---- a/src/rpc_com.h
-+++ b/src/rpc_com.h
-@@ -40,7 +40,6 @@
- #ifndef _TIRPC_RPCCOM_H
- #define	_TIRPC_RPCCOM_H
- 
--#include <sys/cdefs.h>
- 
- /* #pragma ident	"@(#)rpc_com.h	1.11	93/07/05 SMI" */
- 
-@@ -54,7 +53,9 @@
- #define __RPC_GETXID(now) ((u_int32_t)getpid() ^ (u_int32_t)(now)->tv_sec ^ \
-     (u_int32_t)(now)->tv_usec)
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern u_int __rpc_get_a_size(int);
- extern int __rpc_dtbsize(void);
- extern struct netconfig * __rpcgettp(int);
-@@ -90,6 +91,8 @@ void __xprt_set_raddr(SVCXPRT *, const struct sockaddr_storage *);
- SVCXPRT **__svc_xports;
- int __svc_maxrec;
- 
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* _TIRPC_RPCCOM_H */
-diff --git a/src/rpc_generic.c b/src/rpc_generic.c
-index a43906c..6148830 100644
---- a/src/rpc_generic.c
-+++ b/src/rpc_generic.c
-@@ -29,7 +29,6 @@
-  * Copyright (c) 1986-1991 by Sun Microsystems Inc. 
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * rpc_generic.c, Miscl routines for RPC.
-@@ -608,6 +607,7 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf)
- 	struct sockaddr_in6 *sin6;
- 	char namebuf6[INET6_ADDRSTRLEN];
- #endif
-+	int path_len;
- 	u_int16_t port;
- 
- 	if (nbuf->len <= 0)
-@@ -638,13 +638,12 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf)
- #endif
- 	case AF_LOCAL:
- 		sun = nbuf->buf;
--		/*	if (asprintf(&ret, "%.*s", (int)(sun->sun_len -
--		    offsetof(struct sockaddr_un, sun_path)),
--		    sun->sun_path) < 0)*/
--		if (asprintf(&ret, "%.*s", (int)(sizeof(*sun) -
--						 offsetof(struct sockaddr_un, sun_path)),
--			     sun->sun_path) < 0)
- 
-+		path_len = nbuf->len - offsetof(struct sockaddr_un, sun_path);
-+		if (path_len < 0)
-+			return NULL;
-+
-+		if (asprintf(&ret, "%.*s", path_len, sun->sun_path) < 0)
- 			return (NULL);
- 		break;
- 	default:
-diff --git a/src/rpc_soc.c b/src/rpc_soc.c
-index 338edbb..6574323 100644
---- a/src/rpc_soc.c
-+++ b/src/rpc_soc.c
-@@ -520,6 +520,7 @@ clnt_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
- 	    (resultproc_t) rpc_wrap_bcast, "udp");
- }
- 
-+#if HAVE_AUTHDES
- /*
-  * Create the client des authentication object. Obsoleted by
-  * authdes_seccreate().
-@@ -551,6 +552,7 @@ fallback:
- 	dummy = authdes_seccreate(servername, window, NULL, ckey);
- 	return (dummy);
- }
-+#endif
- 
- /*
-  * Create a client handle for a unix connection. Obsoleted by clnt_vc_create()
-@@ -564,16 +566,12 @@ clntunix_create(raddr, prog, vers, sockp, sendsz, recvsz)
- 	u_int sendsz;
- 	u_int recvsz;
- {
--	struct netbuf *svcaddr;
--	CLIENT *cl;
-+	struct netbuf svcaddr = {0, 0, NULL};
-+	CLIENT *cl = NULL;
- 	int len;
- 
--	cl = NULL;
--	svcaddr = NULL;
--	if (((svcaddr = malloc(sizeof(struct netbuf))) == NULL ) ||
--	    ((svcaddr->buf = malloc(sizeof(struct sockaddr_un))) == NULL)) {
--		if (svcaddr != NULL)
--			free(svcaddr);
-+	memset(&svcaddr, 0, sizeof(svcaddr));
-+	if (__rpc_set_netbuf(&svcaddr, raddr, sizeof(*raddr)) == NULL) {
- 		rpc_createerr.cf_stat = RPC_SYSTEMERROR;
- 		rpc_createerr.cf_error.re_errno = errno;
- 		return(cl);
-@@ -590,14 +588,10 @@ clntunix_create(raddr, prog, vers, sockp, sendsz, recvsz)
- 			goto done;
- 		}
- 	}
--	svcaddr->buf = raddr;
--	svcaddr->len = sizeof(raddr);
--	svcaddr->maxlen = sizeof (struct sockaddr_un);
--	cl = clnt_vc_create(*sockp, svcaddr, prog,
-+	cl = clnt_vc_create(*sockp, &svcaddr, prog,
- 	    vers, sendsz, recvsz);
- done:
--	free(svcaddr->buf);
--	free(svcaddr);
-+	free(svcaddr.buf);
- 	return(cl);
- }
- 
-diff --git a/src/rpcb_clnt.c b/src/rpcb_clnt.c
-index a796593..78b1534 100644
---- a/src/rpcb_clnt.c
-+++ b/src/rpcb_clnt.c
-@@ -282,6 +282,18 @@ getclnthandle(host, nconf, targaddr)
- 	struct address_cache *ad_cache;
- 	char *tmpaddr;
- 
-+	if (nconf == NULL) {
-+		rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
-+		return NULL;
-+	}
-+
-+	if (nconf->nc_protofmly != NULL &&
-+	    strcmp(nconf->nc_protofmly, NC_LOOPBACK) != 0 &&
-+	    host == NULL) {
-+		rpc_createerr.cf_stat = RPC_UNKNOWNHOST;
-+		return NULL;
-+	}
-+
- /* VARIABLES PROTECTED BY rpcbaddr_cache_lock:  ad_cache */
- 
- 	/* Get the address of the rpcbind.  Check cache first */
-@@ -291,6 +303,7 @@ getclnthandle(host, nconf, targaddr)
- 	addr_to_delete.len = 0;
- 	rwlock_rdlock(&rpcbaddr_cache_lock);
- 	ad_cache = NULL;
-+
- 	if (host != NULL)
- 		ad_cache = check_cache(host, nconf->nc_netid);
- 	if (ad_cache != NULL) {
-@@ -298,7 +311,7 @@ getclnthandle(host, nconf, targaddr)
- 		client = clnt_tli_create(RPC_ANYFD, nconf, addr,
- 		    (rpcprog_t)RPCBPROG, (rpcvers_t)RPCBVERS4, 0, 0);
- 		if (client != NULL) {
--			if (targaddr)
-+			if (targaddr && ad_cache->ac_uaddr)
- 				*targaddr = strdup(ad_cache->ac_uaddr);
- 			rwlock_unlock(&rpcbaddr_cache_lock);
- 			return (client);
-@@ -345,9 +358,11 @@ getclnthandle(host, nconf, targaddr)
- 		} else {
- 			struct sockaddr_un sun;
- 
--			*targaddr = malloc(sizeof(sun.sun_path));
--			strncpy(*targaddr, _PATH_RPCBINDSOCK,
--			    sizeof(sun.sun_path));
-+			if (targaddr) {
-+				*targaddr = malloc(sizeof(sun.sun_path));
-+				strncpy(*targaddr, _PATH_RPCBINDSOCK,
-+				    sizeof(sun.sun_path));
-+			}
- 			return (client);
- 		}
- 	} else {
-@@ -387,7 +402,8 @@ getclnthandle(host, nconf, targaddr)
- 
- 		if (client) {
- 			tmpaddr = targaddr ? taddr2uaddr(nconf, &taddr) : NULL;
--			add_cache(host, nconf->nc_netid, &taddr, tmpaddr);
-+			if (host)
-+				add_cache(host, nconf->nc_netid, &taddr, tmpaddr);
- 			if (targaddr)
- 				*targaddr = tmpaddr;
- 			break;
-@@ -401,6 +417,44 @@ out_err:
- 	return (client);
- }
- 
-+/*
-+ * Create a PMAP client handle.
-+ */
-+static CLIENT *
-+getpmaphandle(nconf, hostname, tgtaddr)
-+	const struct netconfig *nconf;
-+	const char *hostname;
-+	char **tgtaddr;
-+{
-+	CLIENT *client = NULL;
-+	rpcvers_t pmapvers = 2;
-+
-+	/*
-+	 * Try UDP only - there are some portmappers out
-+	 * there that use UDP only.
-+	 */
-+	if (nconf == NULL || strcmp(nconf->nc_proto, NC_TCP) == 0) {
-+		struct netconfig *newnconf;
-+
-+		if ((newnconf = getnetconfigent("udp")) == NULL) {
-+			rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
-+			return NULL;
-+		}
-+		client = getclnthandle(hostname, newnconf, tgtaddr);
-+		freenetconfigent(newnconf);
-+	} else if (strcmp(nconf->nc_proto, NC_UDP) == 0) {
-+		if (strcmp(nconf->nc_protofmly, NC_INET) != 0)
-+			return NULL;
-+		client = getclnthandle(hostname, nconf, tgtaddr);
-+	}
-+
-+	/* Set version */
-+	if (client != NULL)
-+		CLNT_CONTROL(client, CLSET_VERS, (char *)&pmapvers);
-+
-+	return client;
-+}
-+
- /* XXX */
- #define IN4_LOCALHOST_STRING	"127.0.0.1"
- #define IN6_LOCALHOST_STRING	"::1"
-@@ -733,34 +787,20 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp)
- 	if (strcmp(nconf->nc_protofmly, NC_INET) == 0) {
- 		u_short port = 0;
- 		struct netbuf remote;
--		rpcvers_t pmapvers = 2;
- 		struct pmap pmapparms;
- 
--		/*
--		 * Try UDP only - there are some portmappers out
--		 * there that use UDP only.
--		 */
--		if (strcmp(nconf->nc_proto, NC_TCP) == 0) {
--			struct netconfig *newnconf;
--
--			if ((newnconf = getnetconfigent("udp")) == NULL) {
--				rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
--				return (NULL);
--			}
--			client = getclnthandle(host, newnconf, &parms.r_addr);
--			freenetconfigent(newnconf);
--		} else if (strcmp(nconf->nc_proto, NC_UDP) == 0)
--			client = getclnthandle(host, nconf, &parms.r_addr);
--		else
-+		if (strcmp(nconf->nc_proto, NC_UDP) != 0
-+		 && strcmp(nconf->nc_proto, NC_TCP) != 0)
- 			goto try_rpcbind;
-+
-+		client = getpmaphandle(nconf, host, &parms.r_addr);
- 		if (client == NULL)
- 			return (NULL);
- 
- 		/*
--		 * Set version and retry timeout.
-+		 * Set retry timeout.
- 		 */
- 		CLNT_CONTROL(client, CLSET_RETRY_TIMEOUT, (char *)&rpcbrmttime);
--		CLNT_CONTROL(client, CLSET_VERS, (char *)&pmapvers);
- 
- 		pmapparms.pm_prog = program;
- 		pmapparms.pm_vers = version;
-diff --git a/src/rpcb_st_xdr.c b/src/rpcb_st_xdr.c
-index c5d3575..08db745 100644
---- a/src/rpcb_st_xdr.c
-+++ b/src/rpcb_st_xdr.c
-@@ -35,7 +35,6 @@
-  * routines used with the rpcbind stats facility.
-  */
- 
--#include <sys/cdefs.h>
- 
- #include <rpc/rpc.h>
- 
-diff --git a/src/rpcdname.c b/src/rpcdname.c
-index 094cea3..3e6a988 100644
---- a/src/rpcdname.c
-+++ b/src/rpcdname.c
-@@ -25,7 +25,6 @@
-  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
--#include <sys/cdefs.h>
- 
- /*
-  * rpcdname.c
-diff --git a/src/svc.c b/src/svc.c
-index 8afd15d..32c84f1 100644
---- a/src/svc.c
-+++ b/src/svc.c
-@@ -40,7 +40,7 @@
- 
- #include <reentrant.h>
- #include <sys/types.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <assert.h>
- #include <errno.h>
- #include <stdlib.h>
-diff --git a/src/svc_dg.c b/src/svc_dg.c
-index f8255cc..1fd6f92 100644
---- a/src/svc_dg.c
-+++ b/src/svc_dg.c
-@@ -31,7 +31,6 @@
-  * Copyright (c) 1986-1991 by Sun Microsystems Inc.
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * svc_dg.c, Server side for connectionless RPC.
-diff --git a/src/svc_simple.c b/src/svc_simple.c
-index b6c371e..cb58002 100644
---- a/src/svc_simple.c
-+++ b/src/svc_simple.c
-@@ -29,7 +29,6 @@
-  * Copyright (c) 1986-1991 by Sun Microsystems Inc. 
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * svc_simple.c
-diff --git a/src/svc_vc.c b/src/svc_vc.c
-index 4c70de8..9824631 100644
---- a/src/svc_vc.c
-+++ b/src/svc_vc.c
-@@ -27,7 +27,6 @@
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * svc_vc.c, Server side for Connection Oriented based RPC. 
-@@ -41,7 +40,7 @@
- #include <sys/socket.h>
- #include <sys/types.h>
- #include <sys/param.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/un.h>
- #include <sys/time.h>
- #include <sys/uio.h>
-@@ -559,20 +558,19 @@ write_vc(xprtp, buf, len)
- 				cd->strm_stat = XPRT_DIED;
- 				return (-1);
- 			}
--			if (cd->nonblock && i != cnt) {
--				/*
--				 * For non-blocking connections, do not
--				 * take more than 2 seconds writing the
--				 * data out.
--				 *
--				 * XXX 2 is an arbitrary amount.
--				 */
--				gettimeofday(&tv1, NULL);
--				if (tv1.tv_sec - tv0.tv_sec >= 2) {
--					cd->strm_stat = XPRT_DIED;
--					return (-1);
--				}
-+			/*
-+			 * For non-blocking connections, do not
-+			 * take more than 2 seconds writing the
-+			 * data out.
-+			 *
-+			 * XXX 2 is an arbitrary amount.
-+			 */
-+			gettimeofday(&tv1, NULL);
-+			if (tv1.tv_sec - tv0.tv_sec >= 2) {
-+				cd->strm_stat = XPRT_DIED;
-+				return (-1);
- 			}
-+			i = 0; /* Don't change buf and cnt */
- 		}
- 	}
- 
-diff --git a/src/xdr.c b/src/xdr.c
-index 1142a88..f3fb9ad 100644
---- a/src/xdr.c
-+++ b/src/xdr.c
-@@ -26,7 +26,6 @@
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * xdr.c, Generic XDR routines implementation.
-diff --git a/src/xdr_array.c b/src/xdr_array.c
-index 216173d..7fc8fb8 100644
---- a/src/xdr_array.c
-+++ b/src/xdr_array.c
-@@ -27,7 +27,6 @@
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * xdr_array.c, Generic XDR routines impelmentation.
-diff --git a/src/xdr_float.c b/src/xdr_float.c
-index 90daf3f..26bc865 100644
---- a/src/xdr_float.c
-+++ b/src/xdr_float.c
-@@ -27,7 +27,6 @@
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * xdr_float.c, Generic XDR routines implementation.
-diff --git a/src/xdr_mem.c b/src/xdr_mem.c
-index bd86f00..ecdc932 100644
---- a/src/xdr_mem.c
-+++ b/src/xdr_mem.c
-@@ -26,7 +26,6 @@
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * xdr_mem.h, XDR implementation using memory buffers.
-diff --git a/src/xdr_rec.c b/src/xdr_rec.c
-index 2aca623..7d535cf 100644
---- a/src/xdr_rec.c
-+++ b/src/xdr_rec.c
-@@ -27,8 +27,6 @@
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
--#include <sys/cdefs.h>
- 
- /*
-  * xdr_rec.c, Implements TCP/IP based XDR streams with a "record marking"
-diff --git a/src/xdr_reference.c b/src/xdr_reference.c
-index affe19e..13f6410 100644
---- a/src/xdr_reference.c
-+++ b/src/xdr_reference.c
-@@ -26,8 +26,6 @@
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
--#include <sys/cdefs.h>
- 
- /*
-  * xdr_reference.c, Generic XDR routines impelmentation.
-diff --git a/src/xdr_sizeof.c b/src/xdr_sizeof.c
-index a805e31..cc5414b 100644
---- a/src/xdr_sizeof.c
-+++ b/src/xdr_sizeof.c
-@@ -34,7 +34,6 @@
-  * when serialized using XDR.
-  */
- 
--#include <sys/cdefs.h>
- 
- #include <rpc/types.h>
- #include <rpc/xdr.h>
-diff --git a/src/xdr_stdio.c b/src/xdr_stdio.c
-index 45b1150..4410262 100644
---- a/src/xdr_stdio.c
-+++ b/src/xdr_stdio.c
-@@ -26,7 +26,6 @@
-  * POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#include <sys/cdefs.h>
- 
- /*
-  * xdr_stdio.c, XDR implementation on standard i/o file.
-diff --git a/tirpc/netconfig.h b/tirpc/netconfig.h
-index 7d6c2bc..3f1a685 100644
---- a/tirpc/netconfig.h
-+++ b/tirpc/netconfig.h
-@@ -1,7 +1,9 @@
- #ifndef _NETCONFIG_H_
- #define _NETCONFIG_H_
- 
-+#ifdef HAVE_FEATURES_H
- #include <features.h>
-+#endif
- 
- #define NETCONFIG "/etc/netconfig"
- #define NETPATH	  "NETPATH"
-@@ -74,7 +76,9 @@ typedef struct {
- #define NC_UDP		"udp"
- #define NC_ICMP		"icmp"
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- 
- extern void *setnetconfig (void);
- extern struct netconfig *getnetconfig (void *);
-@@ -89,6 +93,8 @@ extern int endnetpath (void *);
- extern void nc_perror (const char *);
- extern char *nc_sperror (void);
- 
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* _NETCONFIG_H_ */
-diff --git a/tirpc/rpc/auth.h b/tirpc/rpc/auth.h
-index 7c8f813..434d35c 100644
---- a/tirpc/rpc/auth.h
-+++ b/tirpc/rpc/auth.h
-@@ -48,7 +48,6 @@
- 
- #include <rpc/xdr.h>
- #include <rpc/clnt_stat.h>
--#include <sys/cdefs.h>
- #include <sys/socket.h>
- #include <sys/types.h>
- 
-@@ -164,9 +163,13 @@ union des_block {
- 	char c[8];
- };
- typedef union des_block des_block;
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern bool_t xdr_des_block(XDR *, des_block *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Authentication info.  Opaque to client.
-@@ -277,9 +280,13 @@ auth_put(AUTH *auth)
- 		xfunc, xwhere))
- 
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern struct opaque_auth _null_auth;
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Any style authentication.  These routines can be used by any
-@@ -300,11 +307,15 @@ int authany_wrap(void), authany_unwrap(void);
-  *	int len;
-  *	int *aup_gids;
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern AUTH *authunix_create(char *, uid_t, uid_t, int, uid_t *);
- extern AUTH *authunix_create_default(void);	/* takes no parameters */
- extern AUTH *authnone_create(void);		/* takes no parameters */
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- /*
-  * DES style authentication
-  * AUTH *authsecdes_create(servername, window, timehost, ckey)
-@@ -313,15 +324,23 @@ __END_DECLS
-  * 	const char *timehost;			- optional hostname to sync with
-  * 	des_block *ckey;		- optional conversation key to use
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern AUTH *authdes_create (char *, u_int, struct sockaddr *, des_block *);
- extern AUTH *authdes_seccreate (const char *, const u_int, const  char *,
-     const  des_block *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern bool_t xdr_opaque_auth		(XDR *, struct opaque_auth *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #define authsys_create(c,i1,i2,i3,ip) authunix_create((c),(i1),(i2),(i3),(ip))
- #define authsys_create_default() authunix_create_default()
-@@ -329,36 +348,48 @@ __END_DECLS
- /*
-  * Netname manipulation routines.
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern int getnetname(char *);
- extern int host2netname(char *, const char *, const char *);
- extern int user2netname(char *, const uid_t, const char *);
- extern int netname2user(char *, uid_t *, gid_t *, int *, gid_t *);
- extern int netname2host(char *, char *, const int);
- extern void passwd2des ( char *, char * );
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  *
-  * These routines interface to the keyserv daemon
-  *
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern int key_decryptsession(const char *, des_block *);
- extern int key_encryptsession(const char *, des_block *);
- extern int key_gendes(des_block *);
- extern int key_setsecret(const char *);
- extern int key_secretkey_is_set(void);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Publickey routines.
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern int getpublickey (const char *, char *);
- extern int getpublicandprivatekey (char *, char *);
- extern int getsecretkey (char *, char *, char *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #ifdef KERBEROS
- /*
-@@ -371,10 +402,14 @@ __END_DECLS
-  *	const char *timehost;			- optional hostname to sync with
-  *	int *status;				- kerberos status returned
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern AUTH	*authkerb_seccreate(const char *, const char *, const  char *,
- 		    const u_int, const char *, int *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Map a kerberos credential into a unix cred.
-@@ -387,20 +422,28 @@ __END_DECLS
-  *	int *groups;
-  *
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern int	authkerb_getucred(/* struct svc_req *, uid_t *, gid_t *,
- 		    short *, int * */);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- #endif /* KERBEROS */
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- struct svc_req;
- struct rpc_msg;
- enum auth_stat _svcauth_none (struct svc_req *, struct rpc_msg *);
- enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *);
- enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *);
- enum auth_stat _svcauth_gss (struct svc_req *, struct rpc_msg *, bool_t *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #define AUTH_NONE	0		/* no authentication */
- #define	AUTH_NULL	0		/* backward compatibility */
-diff --git a/tirpc/rpc/auth_des.h b/tirpc/rpc/auth_des.h
-index 39b5332..77e169d 100644
---- a/tirpc/rpc/auth_des.h
-+++ b/tirpc/rpc/auth_des.h
-@@ -114,17 +114,25 @@ struct authdes_verf {
-  * Map a des credential into a unix cred.
-  *
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern int authdes_getucred( struct authdes_cred *, uid_t *, gid_t *, int *, gid_t * );
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern bool_t	xdr_authdes_cred(XDR *, struct authdes_cred *);
- extern bool_t	xdr_authdes_verf(XDR *, struct authdes_verf *);
- extern int	rtime(dev_t, struct netbuf *, int, struct timeval *,
- 		    struct timeval *);
- extern void	kgetnetname(char *);
- extern enum auth_stat _svcauth_des(struct svc_req *, struct rpc_msg *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* ndef _TI_AUTH_DES_ */
-diff --git a/tirpc/rpc/auth_gss.h b/tirpc/rpc/auth_gss.h
-index d6f2bbd..a17b34b 100644
---- a/tirpc/rpc/auth_gss.h
-+++ b/tirpc/rpc/auth_gss.h
-@@ -104,28 +104,29 @@ struct rpc_gss_init_res {
- #define MAXSEQ		0x80000000
- 
- /* Prototypes. */
--__BEGIN_DECLS
--bool_t	xdr_rpc_gss_cred	__P((XDR *xdrs, struct rpc_gss_cred *p));
--bool_t	xdr_rpc_gss_init_args	__P((XDR *xdrs, gss_buffer_desc *p));
--bool_t	xdr_rpc_gss_init_res	__P((XDR *xdrs, struct rpc_gss_init_res *p));
--bool_t	xdr_rpc_gss_data	__P((XDR *xdrs, xdrproc_t xdr_func,
--				     caddr_t xdr_ptr, gss_ctx_id_t ctx,
--				     gss_qop_t qop, rpc_gss_svc_t svc,
--				     u_int seq));
--
--AUTH   *authgss_create		__P((CLIENT *, gss_name_t,
--				     struct rpc_gss_sec *));
--AUTH   *authgss_create_default	__P((CLIENT *, char *, struct rpc_gss_sec *));
--bool_t authgss_service		__P((AUTH *auth, int svc));
--bool_t authgss_get_private_data	__P((AUTH *auth,
--	    			     struct authgss_private_data *));
--bool_t authgss_free_private_data __P((struct authgss_private_data *));
--
--void	gss_log_debug		__P((const char *fmt, ...));
--void	gss_log_status		__P((char *m, OM_uint32 major,
--				     OM_uint32 minor));
--void	gss_log_hexdump		__P((const u_char *buf, int len, int offset));
--
--__END_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+bool_t	xdr_rpc_gss_cred	(XDR *xdrs, struct rpc_gss_cred *p);
-+bool_t	xdr_rpc_gss_init_args	(XDR *xdrs, gss_buffer_desc *p);
-+bool_t	xdr_rpc_gss_init_res	(XDR *xdrs, struct rpc_gss_init_res *p);
-+bool_t	xdr_rpc_gss_data	(XDR *xdrs, xdrproc_t xdr_func,
-+				 caddr_t xdr_ptr, gss_ctx_id_t ctx,
-+				 gss_qop_t qop, rpc_gss_svc_t svc,
-+				 u_int seq);
-+
-+AUTH   *authgss_create		(CLIENT *, gss_name_t, struct rpc_gss_sec *);
-+AUTH   *authgss_create_default	(CLIENT *, char *, struct rpc_gss_sec *);
-+bool_t authgss_service		(AUTH *auth, int svc);
-+bool_t authgss_get_private_data	(AUTH *auth, struct authgss_private_data *);
-+bool_t authgss_free_private_data (struct authgss_private_data *);
-+
-+void	gss_log_debug		(const char *fmt, ...);
-+void	gss_log_status		(char *m, OM_uint32 major, OM_uint32 minor);
-+void	gss_log_hexdump		(const u_char *buf, int len, int offset);
-+
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* !_TIRPC_AUTH_GSS_H */
-diff --git a/tirpc/rpc/auth_unix.h b/tirpc/rpc/auth_unix.h
-index 602889b..b10e71d 100644
---- a/tirpc/rpc/auth_unix.h
-+++ b/tirpc/rpc/auth_unix.h
-@@ -45,7 +45,6 @@
- 
- #ifndef _TIRPC_AUTH_UNIX_H
- #define _TIRPC_AUTH_UNIX_H
--#include <sys/cdefs.h>
- 
- /* The machine name is part of a credential; it may not exceed 255 bytes */
- #define MAX_MACHINE_NAME 255
-@@ -67,9 +66,13 @@ struct authunix_parms {
- 
- #define authsys_parms authunix_parms
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern bool_t xdr_authunix_parms(XDR *, struct authunix_parms *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * If a response verifier has flavor AUTH_SHORT,
-diff --git a/tirpc/rpc/clnt.h b/tirpc/rpc/clnt.h
-index 9ee619e..05f2215 100644
---- a/tirpc/rpc/clnt.h
-+++ b/tirpc/rpc/clnt.h
-@@ -42,7 +42,6 @@
- #include <rpc/clnt_stat.h>
- #include <rpc/auth.h>
- 
--#include <sys/cdefs.h>
- #include <netconfig.h>
- #include <sys/un.h>
- 
-@@ -267,7 +266,9 @@ struct rpc_timers {
-  * Generic client creation routine. Supported protocols are those that
-  * belong to the nettype namespace (/etc/netconfig).
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern CLIENT *clnt_create(const char *, const rpcprog_t, const rpcvers_t,
- 			   const char *);
- /*
-@@ -414,32 +415,46 @@ extern CLIENT *clnt_dg_create(const int, const struct netbuf *,
-  */
- extern CLIENT *clnt_raw_create(rpcprog_t, rpcvers_t);
- 
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- 
- /*
-  * Print why creation failed
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern void clnt_pcreateerror(const char *);			/* stderr */
- extern char *clnt_spcreateerror(const char *);			/* string */
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Like clnt_perror(), but is more verbose in its output
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern void clnt_perrno(enum clnt_stat);		/* stderr */
- extern char *clnt_sperrno(enum clnt_stat);		/* string */
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Print an English error message, given the client error code
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern void clnt_perror(CLIENT *, const char *);	 	/* stderr */
- extern char *clnt_sperror(CLIENT *, const char *);		/* string */
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- 
- /*
-@@ -450,9 +465,13 @@ struct rpc_createerr {
- 	struct rpc_err cf_error; /* useful when cf_stat == RPC_PMAPFAILURE */
- };
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern struct rpc_createerr	*__rpc_createerr(void);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- #define get_rpc_createerr()	(*(__rpc_createerr()))
- #define rpc_createerr		(*(__rpc_createerr()))
- 
-@@ -469,12 +488,16 @@ __END_DECLS
-  *	char *out;
-  *	const char *nettype;
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern enum clnt_stat rpc_call(const char *, const rpcprog_t,
- 			       const rpcvers_t, const rpcproc_t,
- 			       const xdrproc_t, const char *,
- 			       const xdrproc_t, char *, const char *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * RPC broadcast interface
-@@ -522,7 +545,9 @@ __END_DECLS
- 
- typedef bool_t (*resultproc_t)(caddr_t, ...);
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern enum clnt_stat rpc_broadcast(const rpcprog_t, const rpcvers_t,
- 				    const rpcproc_t, const xdrproc_t,
- 				    caddr_t, const xdrproc_t, caddr_t,
-@@ -532,7 +557,9 @@ extern enum clnt_stat rpc_broadcast_exp(const rpcprog_t, const rpcvers_t,
- 					caddr_t, const xdrproc_t, caddr_t,
- 					const resultproc_t, const int,
- 					const int, const char *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /* For backward compatibility */
- #include <rpc/clnt_soc.h>
-diff --git a/tirpc/rpc/clnt_soc.h b/tirpc/rpc/clnt_soc.h
-index 82330a3..6ec545c 100644
---- a/tirpc/rpc/clnt_soc.h
-+++ b/tirpc/rpc/clnt_soc.h
-@@ -46,7 +46,6 @@
-  * with TS-RPC.
-  */
- 
--#include <sys/cdefs.h>
- 
- #define UDPMSGSIZE      8800    /* rpc imposed limit on udp msg size */  
- 
-@@ -61,27 +60,39 @@
-  *	u_int sendsz;
-  *	u_int recvsz;
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern CLIENT *clnttcp_create(struct sockaddr_in *, u_long, u_long, int *,
- 			      u_int, u_int);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Raw (memory) rpc.
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern CLIENT *clntraw_create(u_long, u_long);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- 
- /*
- IPv6 socket version 
- */
- #ifdef INET6
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern CLIENT *clnttcp6_create(struct sockaddr_in6 *, u_long, u_long, int *,
- 			      u_int, u_int);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- #endif
- 
- /*
-@@ -105,7 +116,9 @@ __END_DECLS
-  *	u_int sendsz;
-  *	u_int recvsz;
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern CLIENT *clntudp_create(struct sockaddr_in *, u_long, u_long, 
- 			      struct timeval, int *);
- extern CLIENT *clntudp_bufcreate(struct sockaddr_in *, u_long, u_long,
-@@ -116,7 +129,9 @@ extern CLIENT *clntudp6_create(struct sockaddr_in6 *, u_long, u_long,
- extern CLIENT *clntudp6_bufcreate(struct sockaddr_in6 *, u_long, u_long,
- 				 struct timeval, int *, u_int, u_int);
- #endif
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- 
- #endif /* _RPC_CLNT_SOC_H */
-diff --git a/tirpc/rpc/des_crypt.h b/tirpc/rpc/des_crypt.h
-index 837088c..2358960 100644
---- a/tirpc/rpc/des_crypt.h
-+++ b/tirpc/rpc/des_crypt.h
-@@ -43,7 +43,6 @@
- #ifndef _DES_DES_CRYPT_H
- #define _DES_DES_CRYPT_H
- 
--#include <sys/cdefs.h>
- #include <rpc/rpc.h>
- 
- #define DES_MAXDATA 8192	/* max bytes encrypted in one call */
-@@ -83,23 +82,35 @@
- /*
-  * Cipher Block Chaining mode
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- int cbc_crypt( char *, char *, unsigned int, unsigned int, char *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Electronic Code Book mode
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- int ecb_crypt( char *, char *, unsigned int, unsigned int );
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /* 
-  * Set des parity for a key.
-  * DES parity is odd and in the low bit of each byte
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- void des_setparity( char *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif  /* _DES_DES_CRYPT_H */
-diff --git a/tirpc/rpc/nettype.h b/tirpc/rpc/nettype.h
-index 92063c6..926797a 100644
---- a/tirpc/rpc/nettype.h
-+++ b/tirpc/rpc/nettype.h
-@@ -53,11 +53,15 @@
- #define	_RPC_TCP	7
- #define	_RPC_UDP	8
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern void *__rpc_setconf(const char *);
- extern void __rpc_endconf(void *);
- extern struct netconfig *__rpc_getconf(void *);
- extern struct netconfig *__rpc_getconfip(const char *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif	/* !_TIRPC_NETTYPE_H */
-diff --git a/tirpc/rpc/pmap_clnt.h b/tirpc/rpc/pmap_clnt.h
-index 0d23908..6abd583 100644
---- a/tirpc/rpc/pmap_clnt.h
-+++ b/tirpc/rpc/pmap_clnt.h
-@@ -63,9 +63,10 @@
- 
- #ifndef _RPC_PMAP_CLNT_H_
- #define _RPC_PMAP_CLNT_H_
--#include <sys/cdefs.h>
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern bool_t		pmap_set(u_long, u_long, int, int);
- extern bool_t		pmap_unset(u_long, u_long);
- extern struct pmaplist	*pmap_getmaps(struct sockaddr_in *);
-@@ -80,6 +81,8 @@ extern enum clnt_stat	clnt_broadcast(u_long, u_long, u_long,
- 				       resultproc_t);
- extern u_short		pmap_getport(struct sockaddr_in *,
- 				     u_long, u_long, u_int);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* !_RPC_PMAP_CLNT_H_ */
-diff --git a/tirpc/rpc/pmap_prot.h b/tirpc/rpc/pmap_prot.h
-index c1a2546..75354ce 100644
---- a/tirpc/rpc/pmap_prot.h
-+++ b/tirpc/rpc/pmap_prot.h
-@@ -71,7 +71,6 @@
- 
- #ifndef _RPC_PMAP_PROT_H
- #define _RPC_PMAP_PROT_H
--#include <sys/cdefs.h>
- 
- #define PMAPPORT		((u_short)111)
- #define PMAPPROG		((u_long)100000)
-@@ -97,10 +96,14 @@ struct pmaplist {
- 	struct pmaplist *pml_next;
- };
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern bool_t xdr_pmap(XDR *, struct pmap *);
- extern bool_t xdr_pmaplist(XDR *, struct pmaplist **);
- extern bool_t xdr_pmaplist_ptr(XDR *, struct pmaplist *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* !_RPC_PMAP_PROT_H */
-diff --git a/tirpc/rpc/pmap_rmt.h b/tirpc/rpc/pmap_rmt.h
-index dd59a15..2a385e7 100644
---- a/tirpc/rpc/pmap_rmt.h
-+++ b/tirpc/rpc/pmap_rmt.h
-@@ -41,7 +41,6 @@
- 
- #ifndef _RPC_PMAP_RMT_H
- #define _RPC_PMAP_RMT_H
--#include <sys/cdefs.h>
- 
- struct rmtcallargs {
- 	u_long prog, vers, proc, arglen;
-@@ -56,9 +55,13 @@ struct rmtcallres {
- 	xdrproc_t xdr_results;
- };
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern bool_t xdr_rmtcall_args(XDR *, struct rmtcallargs *);
- extern bool_t xdr_rmtcallres(XDR *, struct rmtcallres *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* !_RPC_PMAP_RMT_H */
-diff --git a/tirpc/rpc/rpc.h b/tirpc/rpc/rpc.h
-index 6c0222e..fac2fa9 100644
---- a/tirpc/rpc/rpc.h
-+++ b/tirpc/rpc/rpc.h
-@@ -79,9 +79,11 @@
- #define UDPMSGSIZE 8800
- #endif
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern int get_myaddress(struct sockaddr_in *);
--extern int bindresvport(int, struct sockaddr_in *) __THROW;
-+extern int bindresvport(int, struct sockaddr_in *);
- extern int registerrpc(int, int, int, char *(*)(char [UDPMSGSIZE]),
-     xdrproc_t, xdrproc_t);
- extern int callrpc(const char *, int, int, int, xdrproc_t, void *,
-@@ -93,18 +95,24 @@ struct netbuf *uaddr2taddr(const struct netconfig *, const char *);
- 
- struct sockaddr;
- extern int bindresvport_sa(int, struct sockaddr *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * The following are not exported interfaces, they are for internal library
-  * and rpcbind use only. Do not use, they may change without notice.
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- int __rpc_nconf2fd(const struct netconfig *);
- int __rpc_nconf2fd_flags(const struct netconfig *, int);
- int __rpc_nconf2sockinfo(const struct netconfig *, struct __rpc_sockinfo *);
- int __rpc_fd2sockinfo(int, struct __rpc_sockinfo *);
- u_int __rpc_get_t_size(int, int, int);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* !_RPC_RPC_H */
-diff --git a/tirpc/rpc/rpc_com.h b/tirpc/rpc/rpc_com.h
-index cb3bbbb..236fcee 100644
---- a/tirpc/rpc/rpc_com.h
-+++ b/tirpc/rpc/rpc_com.h
-@@ -41,7 +41,6 @@
- #ifndef _RPC_RPCCOM_H
- #define	_RPC_RPCCOM_H
- 
--#include <sys/cdefs.h>
- 
- /* #pragma ident	"@(#)rpc_com.h	1.11	93/07/05 SMI" */
- 
-@@ -55,7 +54,9 @@
- #define __RPC_GETXID(now) ((u_int32_t)getpid() ^ (u_int32_t)(now)->tv_sec ^ \
-     (u_int32_t)(now)->tv_usec)
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern u_int __rpc_get_a_size(int);
- extern int __rpc_dtbsize(void);
- extern int _rpc_dtablesize(void);
-@@ -77,6 +78,8 @@ bool_t rpc_control(int,void *);
- 
- char *_get_next_token(char *, int);
- 
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* _RPC_RPCCOM_H */
-diff --git a/tirpc/rpc/rpc_msg.h b/tirpc/rpc/rpc_msg.h
-index 16d8eef..f7aabd8 100644
---- a/tirpc/rpc/rpc_msg.h
-+++ b/tirpc/rpc/rpc_msg.h
-@@ -161,7 +161,9 @@ struct rpc_msg {
- #define	acpted_rply	ru.RM_rmb.ru.RP_ar
- #define	rjcted_rply	ru.RM_rmb.ru.RP_dr
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- /*
-  * XDR routine to handle a rpc message.
-  * xdr_callmsg(xdrs, cmsg)
-@@ -210,6 +212,8 @@ extern bool_t	xdr_rejected_reply(XDR *, struct rejected_reply *);
-  * 	struct rpc_err *error;
-  */
- extern void	_seterr_reply(struct rpc_msg *, struct rpc_err *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* !_TIRPC_RPC_MSG_H */
-diff --git a/tirpc/rpc/rpcb_clnt.h b/tirpc/rpc/rpcb_clnt.h
-index 7e64f8f..86d81f6 100644
---- a/tirpc/rpc/rpcb_clnt.h
-+++ b/tirpc/rpc/rpcb_clnt.h
-@@ -59,7 +59,9 @@
- 
- #include <rpc/types.h>
- #include <rpc/rpcb_prot.h>
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern bool_t rpcb_set(const rpcprog_t, const rpcvers_t,
- 		       const struct netconfig  *, const struct netbuf *);
- extern bool_t rpcb_unset(const rpcprog_t, const rpcvers_t,
-@@ -78,6 +80,8 @@ extern bool_t rpcb_getaddr(const rpcprog_t, const rpcvers_t,
- extern bool_t rpcb_gettime(const char *, time_t *);
- extern char *rpcb_taddr2uaddr(struct netconfig *, struct netbuf *);
- extern struct netbuf *rpcb_uaddr2taddr(struct netconfig *, char *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif	/* !_RPC_RPCB_CLNT_H */
-diff --git a/tirpc/rpc/rpcent.h b/tirpc/rpc/rpcent.h
-index c865e51..147f909 100644
---- a/tirpc/rpc/rpcent.h
-+++ b/tirpc/rpc/rpcent.h
-@@ -44,10 +44,12 @@
- /*	#pragma ident "@(#)rpcent.h   1.13    94/04/25 SMI"	*/
- /*      @(#)rpcent.h 1.1 88/12/06 SMI   */
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- 
- /* These are defined in /usr/include/rpc/netdb.h */
--#if 0
-+#if !defined(__GLIBC__)
- struct rpcent {
- 	char	*r_name;	/* name of server for this rpc program */
- 	char	**r_aliases;	/* alias list */
-@@ -60,8 +62,10 @@ extern struct rpcent *getrpcbynumber(int);
- extern struct rpcent *getrpcent(void);
- #endif
- 
--extern void setrpcent(int) __THROW;
--extern void endrpcent(void) __THROW;
--__END_DECLS
-+extern void setrpcent(int);
-+extern void endrpcent(void);
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* !_RPC_CENT_H */
-diff --git a/tirpc/rpc/svc.h b/tirpc/rpc/svc.h
-index b9691a8..8273c95 100644
---- a/tirpc/rpc/svc.h
-+++ b/tirpc/rpc/svc.h
-@@ -40,7 +40,6 @@
- 
- #ifndef _TIRPC_SVC_H
- #define _TIRPC_SVC_H
--#include <sys/cdefs.h>
- 
- /*
-  * This interface must manage two items concerning remote procedure calling:
-@@ -200,11 +199,15 @@ struct svc_req {
-  *	const struct netconfig *nconf;
-  */
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern bool_t	svc_reg(SVCXPRT *, const rpcprog_t, const rpcvers_t,
- 			void (*)(struct svc_req *, SVCXPRT *),
- 			const struct netconfig *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Service un-registration
-@@ -214,9 +217,13 @@ __END_DECLS
-  *	const rpcvers_t vers;
-  */
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern void	svc_unreg(const rpcprog_t, const rpcvers_t);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Transport registration.
-@@ -224,9 +231,13 @@ __END_DECLS
-  * xprt_register(xprt)
-  *	SVCXPRT *xprt;
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern void	xprt_register(SVCXPRT *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Transport un-register
-@@ -234,9 +245,13 @@ __END_DECLS
-  * xprt_unregister(xprt)
-  *	SVCXPRT *xprt;
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern void	xprt_unregister(SVCXPRT *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- 
- /*
-@@ -265,7 +280,9 @@ __END_DECLS
-  * deadlock the caller and server processes!
-  */
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern bool_t	svc_sendreply(SVCXPRT *, xdrproc_t, void *);
- extern void	svcerr_decode(SVCXPRT *);
- extern void	svcerr_weakauth(SVCXPRT *);
-@@ -277,7 +294,9 @@ extern void	svcerr_systemerr(SVCXPRT *);
- extern int	rpc_reg(rpcprog_t, rpcvers_t, rpcproc_t,
- 			char *(*)(char *), xdrproc_t, xdrproc_t,
- 			char *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Lowest level dispatching -OR- who owns this process anyway.
-@@ -306,11 +325,17 @@ extern int svc_fds;
-  * a small program implemented by the svc_rpc implementation itself;
-  * also see clnt.h for protocol numbers.
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern void rpctest_service(void);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern void	svc_getreq(int);
- extern void	svc_getreqset(fd_set *);
- extern void	svc_getreq_common(int);
-@@ -319,7 +344,9 @@ extern void	svc_getreq_poll(struct pollfd *, int);
- 
- extern void	svc_run(void);
- extern void	svc_exit(void);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Socket to use on svcxxx_create call to get default socket
-@@ -331,7 +358,9 @@ __END_DECLS
-  * These are the existing service side transport implementations
-  */
- 
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- /*
-  * Transport independent svc_create routine.
-  */
-@@ -427,7 +456,9 @@ int svc_dg_enablecache(SVCXPRT *, const u_int);
- 
- int __rpc_get_local_uid(SVCXPRT *_transp, uid_t *_uid);
- 
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- 
- /* for backward compatibility */
-diff --git a/tirpc/rpc/svc_auth.h b/tirpc/rpc/svc_auth.h
-index 723c989..67608d0 100644
---- a/tirpc/rpc/svc_auth.h
-+++ b/tirpc/rpc/svc_auth.h
-@@ -65,13 +65,17 @@ typedef struct SVCAUTH {
- /*
-  * Server side authenticator
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern enum auth_stat _gss_authenticate(struct svc_req *, struct rpc_msg *,
- 		bool_t *);
- extern enum auth_stat _authenticate(struct svc_req *, struct rpc_msg *);
- extern int svc_auth_reg(int, enum auth_stat (*)(struct svc_req *,
- 			  struct rpc_msg *));
- 
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* !_RPC_SVC_AUTH_H */
-diff --git a/tirpc/rpc/svc_soc.h b/tirpc/rpc/svc_soc.h
-index 6148d7b..9b7befa 100644
---- a/tirpc/rpc/svc_soc.h
-+++ b/tirpc/rpc/svc_soc.h
-@@ -38,7 +38,6 @@
- 
- #ifndef _RPC_SVC_SOC_H
- #define _RPC_SVC_SOC_H
--#include <sys/cdefs.h>
- 
- /* #pragma ident   "@(#)svc_soc.h  1.11    94/04/25 SMI" */
- /*      svc_soc.h 1.8 89/05/01 SMI      */
-@@ -64,10 +63,14 @@
-  *	void (*dispatch)();
-  *	int protocol;    like TCP or UDP, zero means do not register 
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern bool_t	svc_register(SVCXPRT *, u_long, u_long,
- 		    void (*)(struct svc_req *, SVCXPRT *), int);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Service un-registration
-@@ -76,44 +79,64 @@ __END_DECLS
-  *	u_long prog;
-  *	u_long vers;
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern void	svc_unregister(u_long, u_long);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- 
- /*
-  * Memory based rpc for testing and timing.
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern SVCXPRT *svcraw_create(void);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- 
- /*
-  * Udp based rpc.
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern SVCXPRT *svcudp_create(int);
- extern SVCXPRT *svcudp_bufcreate(int, u_int, u_int);
- extern int svcudp_enablecache(SVCXPRT *, u_long);
- extern SVCXPRT *svcudp6_create(int);
- extern SVCXPRT *svcudp6_bufcreate(int, u_int, u_int);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- 
- /*
-  * Tcp based rpc.
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern SVCXPRT *svctcp_create(int, u_int, u_int);
- extern SVCXPRT *svctcp6_create(int, u_int, u_int);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Fd based rpc.
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern SVCXPRT *svcfd_create(int, u_int, u_int);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* !_RPC_SVC_SOC_H */
-diff --git a/tirpc/rpc/xdr.h b/tirpc/rpc/xdr.h
-index 613fab0..917c067 100644
---- a/tirpc/rpc/xdr.h
-+++ b/tirpc/rpc/xdr.h
-@@ -40,7 +40,6 @@
- 
- #ifndef _TIRPC_XDR_H
- #define _TIRPC_XDR_H
--#include <sys/cdefs.h>
- #include <stdio.h>
- #include <netinet/in.h>
- 
-@@ -287,7 +286,9 @@ struct xdr_discrim {
- /*
-  * These are the "generic" xdr routines.
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- extern bool_t	xdr_void(void);
- extern bool_t	xdr_int(XDR *, int *);
- extern bool_t	xdr_u_int(XDR *, u_int *);
-@@ -330,7 +331,9 @@ extern bool_t	xdr_hyper(XDR *, quad_t *);
- extern bool_t	xdr_u_hyper(XDR *, u_quad_t *);
- extern bool_t	xdr_longlong_t(XDR *, quad_t *);
- extern bool_t	xdr_u_longlong_t(XDR *, u_quad_t *);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- /*
-  * Common opaque bytes objects used by many rpc protocols;
-@@ -348,7 +351,9 @@ extern bool_t   xdr_netobj(XDR *, struct netobj *);
-  * These are the public routines for the various implementations of
-  * xdr streams.
-  */
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- /* XDR using memory buffers */
- extern void   xdrmem_create(XDR *, char *, u_int, enum xdr_op);
- 
-@@ -369,6 +374,8 @@ extern bool_t xdrrec_skiprecord(XDR *);
- /* true if no more input */
- extern bool_t xdrrec_eof(XDR *);
- extern u_int xdrrec_readbytes(XDR *, caddr_t, u_int);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
- 
- #endif /* !_TIRPC_XDR_H */
diff --git a/libtirpc.spec b/libtirpc.spec
index aace0f9..f40802c 100644
--- a/libtirpc.spec
+++ b/libtirpc.spec
@@ -1,8 +1,8 @@
 %define _root_libdir    /%{_lib}
 
 Name:			libtirpc
-Version:		0.2.5
-Release:		3.0%{?dist}
+Version:		0.3.0
+Release:		0.0%{?dist}
 Summary:		Transport Independent RPC Library
 Group:		  	System Environment/Libraries
 License:		SISSL and BSD
@@ -10,8 +10,6 @@ URL:  			http://nfsv4.bullopensource.org/
 BuildRoot:		%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 Source0:		http://downloads.sourceforge.net/libtirpc/libtirpc-%{version}.tar.bz2
 
-Patch001:		libtirpc-0.2.6-rc3.patch
-
 BuildRequires:		automake, autoconf, libtool, pkgconfig
 BuildRequires:		krb5-devel
 
@@ -41,9 +39,6 @@ developing programs which use the tirpc library.
 %prep
 %setup -q
 
-rm -f INSTALL
-%patch001 -p1
-
 # Remove .orig files
 find . -name "*.orig" | xargs rm -f
 
@@ -101,15 +96,13 @@ rm -rf %{buildroot}
 %{_libdir}/pkgconfig/libtirpc.pc
 %{_includedir}/tirpc/netconfig.h
 %{_includedir}/tirpc/rpc/auth.h
-%{_includedir}/tirpc/rpc/auth_des.h
 %{_includedir}/tirpc/rpc/auth_gss.h
 %{_includedir}/tirpc/rpc/auth_kerb.h
 %{_includedir}/tirpc/rpc/auth_unix.h
+%{_includedir}/tirpc/rpc/rpcsec_gss.h
 %{_includedir}/tirpc/rpc/clnt.h
 %{_includedir}/tirpc/rpc/clnt_soc.h
 %{_includedir}/tirpc/rpc/clnt_stat.h
-%{_includedir}/tirpc/rpc/des.h
-%{_includedir}/tirpc/rpc/des_crypt.h
 %{_includedir}/tirpc/rpc/nettype.h
 %{_includedir}/tirpc/rpc/pmap_clnt.h
 %{_includedir}/tirpc/rpc/pmap_prot.h
@@ -133,6 +126,9 @@ rm -rf %{buildroot}
 %{_mandir}/*/*
 
 %changelog
+* Thu May  7 2015 Steve Dickson <steved at redhat.com> 0.3.0-0.0
+- Updated to latest upstream release: libtirpc-0-3-3
+
 * Thu Apr 23 2015 Steve Dickson <steved at redhat.com> 0.2.5-3.0
 - Update to latest RC release: libtirpc-0-2-6-rc3
 
diff --git a/sources b/sources
index ef9a44b..d9ad9e5 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-8cd41a5ef5a9b50d0fb6abb98af15368  libtirpc-0.2.5.tar.bz2
+34b07c50e6e3fc1ca18182e9f0fd5a67  libtirpc-0.3.0.tar.bz2
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/libtirpc.git/commit/?h=master&id=c6fe6a5e927861f73a870cf89c8ff6e42b752da3


More information about the scm-commits mailing list