[rpcbind] Updated to the latest rc release: rpcbind-0_2_3-rc1

Steve Dickson steved at fedoraproject.org
Tue Dec 16 19:59:18 UTC 2014


commit f915d5ad725f8d755f000e40a8bf1e027dc89326
Author: Steve Dickson <steved at redhat.com>
Date:   Tue Dec 16 14:56:24 2014 -0500

    Updated to the latest rc release: rpcbind-0_2_3-rc1
    
    Signed-off-by: Steve Dickson <steved at redhat.com>

 rpcbind-0.2.3-rc1.patch |  113 +++++++++++++++++++++++++++++++++++++++++++++++
 rpcbind.spec            |    9 +++-
 2 files changed, 121 insertions(+), 1 deletions(-)
---
diff --git a/rpcbind-0.2.3-rc1.patch b/rpcbind-0.2.3-rc1.patch
new file mode 100644
index 0000000..3fecb51
--- /dev/null
+++ b/rpcbind-0.2.3-rc1.patch
@@ -0,0 +1,113 @@
+diff --git a/Makefile.am b/Makefile.am
+index c99566d..ea5725f 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -13,7 +13,7 @@ AM_CPPFLAGS = \
+ 	$(TIRPC_CFLAGS)
+ 
+ if DEBUG
+-AM_CPPFLAGS +=	-DRPCBIND_DEBUG -DSVC_RUN_DEBUG -DDEBUG_RMTCALL
++AM_CPPFLAGS +=	-DRPCBIND_DEBUG -DDEBUG_RMTCALL
+ AM_CPPFLAGS +=	-DND_DEBUG -DBIND_DEBUG
+ endif
+ 
+diff --git a/configure.ac b/configure.ac
+index 75e7e71..27496c7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,4 +55,6 @@ AS_IF([test x$enable_libwrap = xyes], [
+ 
+ AC_SEARCH_LIBS([pthread_create], [pthread])
+ 
++AC_CHECK_HEADERS(nss.h)
++
+ AC_OUTPUT([Makefile])
+diff --git a/src/rpcbind.c b/src/rpcbind.c
+index f7c71ee..0c81e8c 100644
+--- a/src/rpcbind.c
++++ b/src/rpcbind.c
+@@ -50,6 +50,7 @@
+ #include <sys/file.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
++#include <netinet/in.h>
+ #include <rpc/rpc.h>
+ #include <rpc/rpc_com.h>
+ #ifdef PORTMAP
+@@ -268,6 +269,13 @@ main(int argc, char *argv[])
+ 
+ 	network_init();
+ 
++#ifdef SYSTEMD
++	/* Try to notify system of successful startup, regardless of whether we
++	 * used systemd socket activation or not. When started from the command
++	 * line, this should not hurt either.
++	 */
++	sd_notify(0, "READY=1");
++#endif
+ 	my_svc_run();
+ 	syslog(LOG_ERR, "svc_run returned unexpectedly");
+ 	rpcbind_abort();
+@@ -277,6 +285,31 @@ main(int argc, char *argv[])
+ }
+ 
+ /*
++ * Normally systemd will open sockets in dual ipv4/ipv6 mode.
++ * That won't work with netconfig and we'll only match
++ * the ipv6 socket. Convert it to IPV6_V6ONLY and issue
++ * a warning for the user to fix their systemd config.
++ */
++static int
++handle_ipv6_socket(int fd)
++{
++	int opt;
++	socklen_t len = sizeof(opt);
++
++	if (getsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &opt, &len)) {
++		syslog(LOG_ERR, "failed to get ipv6 socket opts: %m");
++		return -1;
++	}
++
++	if (opt) /* socket is already in V6ONLY mode */
++		return 0;
++
++	syslog(LOG_ERR, "systemd has passed an IPv4/IPv6 dual-mode socket.");
++	syslog(LOG_ERR, "Please fix your systemd config by specifying IPv4 and IPv6 sockets separately and using BindIPv6Only=ipv6-only.");
++	return -1;
++}
++
++/*
+  * Adds the entry into the rpcbind database.
+  * If PORTMAP, then for UDP and TCP, it adds the entries for version 2 also
+  * Returns 0 if succeeds, else fails
+@@ -361,6 +394,9 @@ init_transport(struct netconfig *nconf)
+ 			goto error;
+ 		}
+ 
++		if (sa.sa.sa_family == AF_INET6 && handle_ipv6_socket(fd))
++		        goto error;
++
+ 		/* Copy the address */
+ 		taddr.addr.maxlen = taddr.addr.len = addrlen;
+ 		taddr.addr.buf = malloc(addrlen);
+diff --git a/src/warmstart.c b/src/warmstart.c
+index d1bb971..85ecf96 100644
+--- a/src/warmstart.c
++++ b/src/warmstart.c
+@@ -101,13 +101,13 @@ read_struct(char *filename, xdrproc_t structproc, void *list)
+ {
+ 	FILE *fp;
+ 	XDR xdrs;
+-	 
++
+ 	if (debugging)
+ 		fprintf(stderr, "rpcbind: using '%s' startup file\n", filename);
+ 
+-	if ((fp = fopen(filename, "r")) == NULL) {
++	if (((fp = fopen(filename, "r")) == NULL) && errno != ENOENT) {
+ 		syslog(LOG_ERR,
+-			"Cannot open '%s' file for reading, errno %d (%s)", 
++			"Cannot open '%s' file for reading, errno %d (%s)",
+ 			filename, errno, strerror(errno));
+ 		goto error;
+ 	}
diff --git a/rpcbind.spec b/rpcbind.spec
index 92ad9f3..e5eca18 100644
--- a/rpcbind.spec
+++ b/rpcbind.spec
@@ -1,6 +1,6 @@
 Name:           rpcbind
 Version:        0.2.2
-Release:        0.0%{?dist}
+Release:        1.0%{?dist}
 Summary:        Universal Addresses to RPC Program Number Mapper
 Group:          System Environment/Daemons
 License:        BSD
@@ -12,6 +12,8 @@ Source1: rpcbind.service
 Source2: rpcbind.socket
 Source3: rpcbind.sysconfig
 
+Patch001: rpcbind-0.2.3-rc1.patch
+
 Requires: glibc-common setup
 Conflicts: man-pages < 2.43-12
 BuildRequires: automake, autoconf, libtool, systemd, systemd-devel
@@ -32,6 +34,8 @@ RPC calls on a server on that machine.
 %prep
 %setup -q
 
+%patch001 -p1
+
 %build
 %ifarch s390 s390x
 PIE="-fPIE"
@@ -122,6 +126,9 @@ fi
 %dir %attr(700,rpc,rpc) /var/lib/rpcbind
 
 %changelog
+* Tue Dec 16 2014 Steve Dickson <steved at redhat.com> - 0.2.2-1.0
+- Updated to the latest rc release: rpcbind-0_2_3-rc1
+
 * Wed Nov 26 2014 Steve Dickson <steved at redhat.com> - 0.2.2-0.0
 - Updated to the latest upstream release: 0.2.2 (bz 747363)
 - Added BuildRequires systemd-compat-libs


More information about the scm-commits mailing list