1
0
forked from rpms/rpcbind

Updated to the latest rc release: rpcbind-0_2_2-rc3

Signed-off-by: Steve Dickson <steved@redhat.com>
This commit is contained in:
Steve Dickson 2014-11-10 12:43:19 -05:00
parent bfcc0df949
commit d0c9a6a89a
2 changed files with 137 additions and 2 deletions

132
rpcbind-0.2.2-rc3.patch Normal file
View File

@ -0,0 +1,132 @@
diff --git a/Makefile.am b/Makefile.am
index d10c906..8715082 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = subdir-objects
+
AM_CPPFLAGS = \
-DCHECK_LOCAL \
-DPORTMAP \
@@ -6,6 +8,7 @@ AM_CPPFLAGS = \
-DINET6 \
-DRPCBIND_STATEDIR="\"$(statedir)\"" \
-DRPCBIND_USER="\"$(rpcuser)\"" \
+ -DNSS_MODULES="\"$(nss_modules)\"" \
-D_GNU_SOURCE \
$(TIRPC_CFLAGS)
diff --git a/configure.ac b/configure.ac
index 747a8bf..5a88cc7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,10 +23,17 @@ AC_ARG_WITH([statedir],
AC_SUBST([statedir], [$with_statedir])
AC_ARG_WITH([rpcuser],
- AS_HELP_STRING([--with-rpcuser=ARG], [use ARG for RPC @<:@default=root@:>@]),
+ AS_HELP_STRING([--with-rpcuser=ARG], [use ARG for RPC @<:@default=root@:>@])
,, [with_rpcuser=root])
AC_SUBST([rpcuser], [$with_rpcuser])
+AC_ARG_WITH([nss_modules],
+ AS_HELP_STRING([--with-nss-modules=NSS_MODULES]
+ , [Sets the nss module search list to the given space-delimited string.
+ For example --with-nss-modules="files altfiles" @<:@default=files@:>@])
+ ,, [with_nss_modules=files])
+AC_SUBST([nss_modules], [$with_nss_modules])
+
PKG_CHECK_MODULES([TIRPC], [libtirpc])
AS_IF([test x$enable_libwrap = xyes], [
diff --git a/man/rpcinfo.8 b/man/rpcinfo.8
index 5ece18f..750ffce 100644
--- a/man/rpcinfo.8
+++ b/man/rpcinfo.8
@@ -20,8 +20,7 @@
.Nm "rpcinfo"
.Fl l
.Op Fl T Ar transport
-.Ar host Ar prognum
-.Op Ar versnum
+.Ar host Ar prognum Ar versnum
.Nm "rpcinfo"
.Op Fl n Ar portnum
.Fl u
diff --git a/src/rpcbind.c b/src/rpcbind.c
index 83dbe93..e3462e3 100644
--- a/src/rpcbind.c
+++ b/src/rpcbind.c
@@ -62,6 +62,7 @@
#include <netconfig.h>
#include <stdlib.h>
#include <unistd.h>
+#include <grp.h>
#include <syslog.h>
#include <err.h>
#include <pwd.h>
@@ -90,6 +91,12 @@ char *rpcbinduser = RPCBIND_USER;
char *rpcbinduser = NULL;
#endif
+#ifdef NSS_MODULES
+char *nss_modules = NSS_MODULES;
+#else
+char *nss_modules = "files";
+#endif
+
/* who to suid to if -s is given */
#define RUN_AS "daemon"
@@ -164,7 +171,7 @@ main(int argc, char *argv[])
* Make sure we use the local service file
* for service lookkups
*/
- __nss_configure_lookup("services", "files");
+ __nss_configure_lookup("services", nss_modules);
nc_handle = setnetconfig(); /* open netconfig file */
if (nc_handle == NULL) {
@@ -230,7 +237,7 @@ main(int argc, char *argv[])
* Make sure we use the local password file
* for these lookups.
*/
- __nss_configure_lookup("passwd", "files");
+ __nss_configure_lookup("passwd", nss_modules);
if((p = getpwnam(id)) == NULL) {
syslog(LOG_ERR, "cannot get uid of '%s': %m", id);
@@ -726,11 +733,9 @@ terminate(int dummy /*__unused*/)
unlink(_PATH_RPCBINDSOCK);
unlink(RPCBINDDLOCK);
#ifdef WARMSTART
- syslog(LOG_ERR,
- "rpcbind terminating on signal. Restart with \"rpcbind -w\"");
write_warmstart(); /* Dump yourself */
#endif
- exit(2);
+ exit(0); /* exit gracefully */
}
void
diff --git a/src/util.c b/src/util.c
index 9a5fb69..7d56479 100644
--- a/src/util.c
+++ b/src/util.c
@@ -101,12 +101,14 @@ static void
in6_fillscopeid(struct sockaddr_in6 *sin6)
{
u_int16_t ifindex;
+ u_int16_t *addr;
if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) {
- ifindex = ntohs(*(u_int16_t *)&sin6->sin6_addr.s6_addr[2]);
+ addr = (u_int16_t *)&sin6->sin6_addr.s6_addr[2];
+ ifindex = ntohs(*addr);
if (sin6->sin6_scope_id == 0 && ifindex != 0) {
sin6->sin6_scope_id = ifindex;
- *(u_int16_t *)&sin6->sin6_addr.s6_addr[2] = 0;
+ *addr = 0;
}
}
}

View File

@ -1,6 +1,6 @@
Name: rpcbind
Version: 0.2.1
Release: 3.0%{?dist}
Release: 4.0%{?dist}
Summary: Universal Addresses to RPC Program Number Mapper
Group: System Environment/Daemons
License: BSD
@ -24,7 +24,7 @@ Requires(postun): systemd coreutils
Provides: portmap = %{version}-%{release}
Obsoletes: portmap <= 4.0-65.3
Patch001: rpcbind-0.2.2-rc2.patch
Patch001: rpcbind-0.2.2-rc3.patch
%description
The rpcbind utility is a server that converts RPC program numbers into
@ -126,6 +126,9 @@ fi
%dir %attr(700,rpc,rpc) /var/lib/rpcbind
%changelog
* Mon Nov 10 2014 Steve Dickson <steved@redhat.com> - 0.2.1-4.0
- Updated to the latest rc release: rpcbind-0_2_2-rc3
* Mon Oct 27 2014 Steve Dickson <steved@redhat.com> - 0.2.1-3.0
- Updated to the latest rc release: rpcbind-0_2_2-rc2 (bz 1015283)