Accepting request 346449 from network
OBS-URL: https://build.opensuse.org/request/show/346449 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/rpcbind?expand=0&rev=47
This commit is contained in:
commit
fd5139c215
35
0002-revert-auth.patch
Normal file
35
0002-revert-auth.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
commit 86036582c001e99075f4d74cb3829df39f2a9ddf
|
||||||
|
Author: Frank Hirtz <fhirtz@redhat.com>
|
||||||
|
Date: Tue Oct 23 11:38:20 2012 -0400
|
||||||
|
|
||||||
|
rpcbind is "swallowing" broadcast RPC replies
|
||||||
|
|
||||||
|
If xp_auth is NULL, the transport routines will not send
|
||||||
|
the reply. This patch fixes that problem.
|
||||||
|
|
||||||
|
Signed-off-by: Steve Dickson <steved@redhat.com>
|
||||||
|
|
||||||
|
diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c
|
||||||
|
index 5bb9a44..f6bd6bd 100644
|
||||||
|
--- a/src/rpcb_svc_com.c
|
||||||
|
+++ b/src/rpcb_svc_com.c
|
||||||
|
@@ -1227,6 +1227,8 @@ send_svcsyserr(SVCXPRT *xprt, struct finfo *fi)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+extern SVCAUTH svc_auth_none;
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
handle_reply(int fd, SVCXPRT *xprt)
|
||||||
|
{
|
||||||
|
@@ -1293,7 +1295,10 @@ handle_reply(int fd, SVCXPRT *xprt)
|
||||||
|
a.rmt_localvers = fi->versnum;
|
||||||
|
|
||||||
|
xprt_set_caller(xprt, fi);
|
||||||
|
+ xprt->xp_auth = &svc_auth_none;
|
||||||
|
svc_sendreply(xprt, (xdrproc_t) xdr_rmtcall_result, (char *) &a);
|
||||||
|
+ SVCAUTH_DESTROY(xprt->xp_auth);
|
||||||
|
+ xprt->xp_auth = NULL;
|
||||||
|
done:
|
||||||
|
if (buffer)
|
||||||
|
free(buffer);
|
76
099-poll.patch
Normal file
76
099-poll.patch
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c
|
||||||
|
index ff9ce6b..d675eda 100644
|
||||||
|
--- a/src/rpcb_svc_com.c
|
||||||
|
+++ b/src/rpcb_svc_com.c
|
||||||
|
@@ -1097,35 +1097,28 @@ netbuffree(struct netbuf *ap)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-#define MASKVAL (POLLIN | POLLPRI | POLLRDNORM | POLLRDBAND)
|
||||||
|
-extern bool_t __svc_clean_idle(fd_set *, int, bool_t);
|
||||||
|
-
|
||||||
|
void
|
||||||
|
my_svc_run()
|
||||||
|
{
|
||||||
|
- size_t nfds;
|
||||||
|
- struct pollfd pollfds[FD_SETSIZE];
|
||||||
|
int poll_ret, check_ret;
|
||||||
|
int n;
|
||||||
|
-#ifdef SVC_RUN_DEBUG
|
||||||
|
- int i;
|
||||||
|
-#endif
|
||||||
|
- register struct pollfd *p;
|
||||||
|
- fd_set cleanfds;
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
- p = pollfds;
|
||||||
|
- for (n = 0; n <= svc_maxfd; n++) {
|
||||||
|
- if (FD_ISSET(n, &svc_fdset)) {
|
||||||
|
- p->fd = n;
|
||||||
|
- p->events = MASKVAL;
|
||||||
|
- p++;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- nfds = p - pollfds;
|
||||||
|
- poll_ret = 0;
|
||||||
|
+ struct pollfd my_pollfd[svc_max_pollfd];
|
||||||
|
+ int i;
|
||||||
|
+
|
||||||
|
+ if (svc_max_pollfd == 0 && svc_pollfd == NULL)
|
||||||
|
+ return;
|
||||||
|
|
||||||
|
- switch (poll_ret = poll(pollfds, nfds, 30 * 1000)) {
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < svc_max_pollfd; ++i)
|
||||||
|
+ {
|
||||||
|
+ my_pollfd[i].fd = svc_pollfd[i].fd;
|
||||||
|
+ my_pollfd[i].events = svc_pollfd[i].events;
|
||||||
|
+ my_pollfd[i].revents = 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ switch (poll_ret = poll(my_pollfd, svc_max_pollfd, 30 * 1000)) {
|
||||||
|
case -1:
|
||||||
|
/*
|
||||||
|
* We ignore all errors, continuing with the assumption
|
||||||
|
@@ -1133,8 +1126,6 @@ my_svc_run()
|
||||||
|
* other outside event) and not caused by poll().
|
||||||
|
*/
|
||||||
|
case 0:
|
||||||
|
- cleanfds = svc_fdset;
|
||||||
|
- __svc_clean_idle(&cleanfds, 30, FALSE);
|
||||||
|
continue;
|
||||||
|
default:
|
||||||
|
/*
|
||||||
|
@@ -1144,10 +1135,10 @@ my_svc_run()
|
||||||
|
* don't call svc_getreq_poll. Otherwise, there
|
||||||
|
* must be another so we must call svc_getreq_poll.
|
||||||
|
*/
|
||||||
|
- if ((check_ret = check_rmtcalls(pollfds, nfds)) ==
|
||||||
|
+ if ((check_ret = check_rmtcalls(my_pollfd, svc_max_pollfd)) ==
|
||||||
|
poll_ret)
|
||||||
|
continue;
|
||||||
|
- svc_getreq_poll(pollfds, poll_ret-check_ret);
|
||||||
|
+ svc_getreq_poll(my_pollfd, poll_ret-check_ret);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,3 +1,15 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Nov 17 14:20:28 CET 2015 - kukuk@suse.de
|
||||||
|
|
||||||
|
- Add 0002-revert-auth.patch: revert old patch no longer working
|
||||||
|
with libtirpc 1.0.1
|
||||||
|
(http://sourceforge.net/p/libtirpc/mailman/message/34585439/)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jul 14 16:52:03 CEST 2015 - kukuk@suse.de
|
||||||
|
|
||||||
|
- Add 099-poll.patch: use libtirpc with poll() implementation
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Apr 30 09:36:21 CEST 2015 - kukuk@suse.de
|
Thu Apr 30 09:36:21 CEST 2015 - kukuk@suse.de
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ Source2: sysconfig.rpcbind
|
|||||||
Source3: rpcbind.xml
|
Source3: rpcbind.xml
|
||||||
Source4: pmap_set.c
|
Source4: pmap_set.c
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
BuildRequires: libtirpc-devel
|
BuildRequires: libtirpc-devel >= 1.0.1
|
||||||
BuildRequires: libtool
|
BuildRequires: libtool
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
BuildRequires: tcpd-devel
|
BuildRequires: tcpd-devel
|
||||||
@ -36,11 +36,13 @@ BuildRequires: pkgconfig(libsystemd-daemon)
|
|||||||
PreReq: %fillup_prereq
|
PreReq: %fillup_prereq
|
||||||
Requires(pre): /usr/sbin/useradd
|
Requires(pre): /usr/sbin/useradd
|
||||||
Patch1: 0001-systemd-unit-files.patch
|
Patch1: 0001-systemd-unit-files.patch
|
||||||
|
Patch2: 0002-revert-auth.patch
|
||||||
Patch8: 0008-First-part-of-init_transport-refactoring.patch
|
Patch8: 0008-First-part-of-init_transport-refactoring.patch
|
||||||
Patch9: 0009-init_transport-move-the-registration-code-into-a-sep.patch
|
Patch9: 0009-init_transport-move-the-registration-code-into-a-sep.patch
|
||||||
Patch10: 0010-Fix-the-behavior-when-specifying-the-h-option.patch
|
Patch10: 0010-Fix-the-behavior-when-specifying-the-h-option.patch
|
||||||
Patch11: 0011-Clean-up-the-way-we-handle-the-h-option-in-init_tran.patch
|
Patch11: 0011-Clean-up-the-way-we-handle-the-h-option-in-init_tran.patch
|
||||||
Patch14: 0014-When-using-systemd-redirect-syslog-calls-to-the-syst.patch
|
Patch14: 0014-When-using-systemd-redirect-syslog-calls-to-the-syst.patch
|
||||||
|
Patch99: 099-poll.patch
|
||||||
|
|
||||||
%define statefile /var/lib/portmap.state
|
%define statefile /var/lib/portmap.state
|
||||||
%{?systemd_requires}
|
%{?systemd_requires}
|
||||||
@ -57,11 +59,13 @@ regards to portmap.
|
|||||||
%setup -q
|
%setup -q
|
||||||
cp %{SOURCE4} .
|
cp %{SOURCE4} .
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
|
%patch2 -p1 -R
|
||||||
#%patch8 -p1
|
#%patch8 -p1
|
||||||
#%patch9 -p1
|
#%patch9 -p1
|
||||||
#%patch10 -p1
|
#%patch10 -p1
|
||||||
#%patch11 -p1
|
#%patch11 -p1
|
||||||
#%patch14 -p1
|
#%patch14 -p1
|
||||||
|
%patch99 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf -fiv
|
autoreconf -fiv
|
||||||
|
Loading…
Reference in New Issue
Block a user