This commit is contained in:
commit
498eb1c4b3
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
12
rpcbind-0.1.4-iff_up.patch
Normal file
12
rpcbind-0.1.4-iff_up.patch
Normal file
@ -0,0 +1,12 @@
|
||||
--- rpcbind-0.1.4/src/util.c.iff_up 2007-05-22 11:14:39.000000000 -0400
|
||||
+++ rpcbind-0.1.4/src/util.c 2007-05-22 11:14:56.000000000 -0400
|
||||
@@ -359,7 +359,8 @@ network_init()
|
||||
* interface, join the RPC multicast group on that interface.
|
||||
*/
|
||||
for (ifap = ifp; ifap != NULL; ifap = ifap->ifa_next) {
|
||||
- if (ifap->ifa_addr->sa_family != AF_INET6 ||
|
||||
+ if (!ifap->ifa_addr ||
|
||||
+ ifap->ifa_addr->sa_family != AF_INET6 ||
|
||||
!(ifap->ifa_flags & IFF_MULTICAST))
|
||||
continue;
|
||||
ifindex = if_nametoindex(ifap->ifa_name);
|
100
rpcbind-0.1.4-localaddr.patch
Normal file
100
rpcbind-0.1.4-localaddr.patch
Normal file
@ -0,0 +1,100 @@
|
||||
commit 913c1d3396ba57052054d6da0745b29f82ece4eb
|
||||
Author: Steve Dickson <steved@redhat.com>
|
||||
Date: Mon Dec 17 14:28:03 2007 -0500
|
||||
|
||||
Changed is_loopback() and check_access() see if the calling
|
||||
address is an address on a local interface, just not a loopback
|
||||
address.
|
||||
|
||||
Signed-off-by: Steve Dickson <steved@redhat.com>
|
||||
|
||||
diff --git a/src/security.c b/src/security.c
|
||||
index 7e6f3a9..b1a2b76 100644
|
||||
--- a/src/security.c
|
||||
+++ b/src/security.c
|
||||
@@ -31,6 +31,7 @@
|
||||
|
||||
#ifdef LIBWRAP
|
||||
# include <tcpd.h>
|
||||
+# include <ifaddrs.h>
|
||||
#ifndef LIBWRAP_ALLOW_FACILITY
|
||||
# define LIBWRAP_ALLOW_FACILITY LOG_AUTH
|
||||
#endif
|
||||
@@ -61,6 +62,49 @@ int log_severity = PORTMAP_LOG_FACILITY|PORTMAP_LOG_SEVERITY;
|
||||
|
||||
extern int verboselog;
|
||||
|
||||
+#ifdef LIBWRAP
|
||||
+static int localaddr(struct sockaddr *addr)
|
||||
+{
|
||||
+ static struct ifaddrs *ifp = NULL;
|
||||
+ struct ifaddrs *ifa = NULL;
|
||||
+ void *caller, *localip;
|
||||
+ struct sockaddr_in *sin;
|
||||
+ struct sockaddr_in6 *sin6;
|
||||
+
|
||||
+ if (ifp == NULL && getifaddrs (&ifp) < 0) {
|
||||
+ perror ("getifaddrs");
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ if (addr->sa_family == AF_INET)
|
||||
+ caller = (void *)&((struct sockaddr_in *)addr)->sin_addr;
|
||||
+ else
|
||||
+ caller = (void *)&((struct sockaddr_in6 *)addr)->sin6_addr;
|
||||
+
|
||||
+ for (ifa = ifp; ifa; ifa = ifa->ifa_next) {
|
||||
+ socklen_t salen;
|
||||
+
|
||||
+ if (ifa->ifa_addr == NULL)
|
||||
+ continue;
|
||||
+
|
||||
+ if (ifa->ifa_addr->sa_family == AF_INET) {
|
||||
+ salen = sizeof (struct sockaddr_in);
|
||||
+ sin = (struct sockaddr_in *)ifa->ifa_addr;
|
||||
+ localip = (void *)&sin->sin_addr;
|
||||
+ } else if (ifa->ifa_addr->sa_family == AF_INET6) {
|
||||
+ sin6 = (struct sockaddr_in6 *)ifa->ifa_addr;
|
||||
+ localip = (void *)&sin6->sin6_addr;
|
||||
+ } else
|
||||
+ continue;
|
||||
+
|
||||
+ if (memcmp(localip, caller, salen) == 0)
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
int
|
||||
check_access(SVCXPRT *xprt, rpcproc_t proc, void *args, unsigned int rpcbvers)
|
||||
{
|
||||
@@ -115,7 +159,7 @@ check_access(SVCXPRT *xprt, rpcproc_t proc, void *args, unsigned int rpcbvers)
|
||||
}
|
||||
|
||||
#ifdef LIBWRAP
|
||||
- if (addr->sa_family == AF_LOCAL)
|
||||
+ if (addr->sa_family == AF_LOCAL || localaddr(addr))
|
||||
return 1;
|
||||
request_init(&req, RQ_DAEMON, "rpcbind", RQ_CLIENT_SIN, addr, 0);
|
||||
sock_methods(&req);
|
||||
@@ -147,13 +191,17 @@ is_loopback(struct netbuf *nbuf)
|
||||
case AF_INET:
|
||||
if (!oldstyle_local)
|
||||
return 0;
|
||||
+ if (localaddr(addr))
|
||||
+ return 1;
|
||||
sin = (struct sockaddr_in *)addr;
|
||||
- return ((sin->sin_addr.s_addr == htonl(INADDR_LOOPBACK)) &&
|
||||
+ return ((sin->sin_addr.s_addr == htonl(INADDR_LOOPBACK)) &&
|
||||
(ntohs(sin->sin_port) < IPPORT_RESERVED));
|
||||
#ifdef INET6
|
||||
case AF_INET6:
|
||||
if (!oldstyle_local)
|
||||
return 0;
|
||||
+ if (localaddr(addr))
|
||||
+ return 1;
|
||||
sin6 = (struct sockaddr_in6 *)addr;
|
||||
return ((IN6_IS_ADDR_LOOPBACK(&sin6->sin6_addr) ||
|
||||
(IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr) &&
|
3
rpcbind-0.1.5-1.tar.bz2
Normal file
3
rpcbind-0.1.5-1.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cdfb3dfda8e8e2fee33a172a88fa9a0ec9194286ddf054f1484cbcffdb59d366
|
||||
size 265920
|
27
rpcbind.changes
Normal file
27
rpcbind.changes
Normal file
@ -0,0 +1,27 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 18 17:41:18 CEST 2008 - mkoenig@suse.de
|
||||
|
||||
- use version in Provides/Obsoletes
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 18 15:54:26 CEST 2008 - mkoenig@suse.de
|
||||
|
||||
- update to version 0.1.5
|
||||
- license change to BSD-3
|
||||
- patches merged
|
||||
rpcbind-0.1.4-compile.patch
|
||||
rpcbind-0.1.4-debug.patch
|
||||
rpcbind-0.1.4-libwrap.patch
|
||||
rpcbind-0.1.4-recvfrom-fix.patch
|
||||
rpcbind-0.1.4-rpcuser.patch
|
||||
rpcbind-0.1.4-warmstarts-cleanup.patch
|
||||
rpcbind-0.1.4-warmstarts.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 2 14:21:49 CEST 2008 - mkoenig@suse.de
|
||||
|
||||
- initial packaging, version 0.1.4 [fate#300607]
|
||||
- add patches from Steve Dickson, including fixes and
|
||||
support for debug and warmstart
|
||||
- build as PIE
|
||||
|
84
rpcbind.init
Normal file
84
rpcbind.init
Normal file
@ -0,0 +1,84 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: portmap rpcbind
|
||||
# Required-Start: $network $syslog
|
||||
# Required-Stop: $network $syslog
|
||||
# Default-Start: 3 5
|
||||
# Default-Stop: 0 1 2 4 6
|
||||
# Short-Description: TI-RPC program number mapper
|
||||
# Description: TI-RPC program number mapper
|
||||
### END INIT INFO
|
||||
#
|
||||
RPCBIND_BIN=/sbin/rpcbind
|
||||
test -x $RPCBIND_BIN || { echo "$RPCBIND_BIN not installed";
|
||||
if [ "$1" = "stop" ]; then exit 0;
|
||||
else exit 5; fi; }
|
||||
|
||||
. /etc/sysconfig/rpcbind
|
||||
|
||||
. /etc/rc.status
|
||||
|
||||
# Reset status of this service
|
||||
rc_reset
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting rpcbind "
|
||||
/sbin/startproc $RPCBIND_BIN $OPTIONS $RPCBIND_OPTIONS
|
||||
|
||||
rc_status -v
|
||||
;;
|
||||
stop)
|
||||
echo -n "Shutting down rpcbind "
|
||||
|
||||
/sbin/killproc -TERM $RPCBIND_BIN
|
||||
|
||||
rc_status -v
|
||||
;;
|
||||
try-restart|condrestart)
|
||||
## Do a restart only if the service was active before.
|
||||
## Note: try-restart is now part of LSB (as of 1.9).
|
||||
## RH has a similar command named condrestart.
|
||||
if test "$1" = "condrestart"; then
|
||||
echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
|
||||
fi
|
||||
$0 status
|
||||
if test $? = 0; then
|
||||
# do a warmstart in this case, keeping the state
|
||||
OPTIONS="-w" $0 restart
|
||||
else
|
||||
rc_reset # Not running is not a failure.
|
||||
fi
|
||||
# Remember status and be quiet
|
||||
rc_status
|
||||
;;
|
||||
restart)
|
||||
## Stop the service and regardless of whether it was
|
||||
## running or not, start it again.
|
||||
$0 stop
|
||||
$0 start
|
||||
|
||||
rc_status
|
||||
;;
|
||||
force-reload)
|
||||
$0 try-restart
|
||||
rc_status
|
||||
;;
|
||||
reload)
|
||||
# rpcbind does not support reload on signal
|
||||
rc_failed 3
|
||||
rc_status -v
|
||||
;;
|
||||
status)
|
||||
echo -n "Checking for service rpcbind "
|
||||
/sbin/checkproc $RPCBIND_BIN
|
||||
|
||||
rc_status -v
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
rc_exit
|
131
rpcbind.spec
Normal file
131
rpcbind.spec
Normal file
@ -0,0 +1,131 @@
|
||||
#
|
||||
# spec file for package rpcbind (Version 0.1.5)
|
||||
#
|
||||
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
# norootforbuild
|
||||
|
||||
BuildRequires: libtirpc-devel tcpd-devel
|
||||
|
||||
Name: rpcbind
|
||||
License: BSD 3-Clause
|
||||
Group: Productivity/Networking/System
|
||||
AutoReqProv: on
|
||||
Version: 0.1.5
|
||||
Release: 2
|
||||
Summary: Transport independent RPC portmapper
|
||||
Url: http://nfsv4.bullopensource.org/doc/tirpc_rpcbind.php
|
||||
Source: %{name}-%{version}-1.tar.bz2
|
||||
Source1: rpcbind.init
|
||||
Source2: sysconfig.rpcbind
|
||||
Source3: rpcbind.xml
|
||||
Patch4: rpcbind-0.1.4-iff_up.patch
|
||||
Patch6: rpcbind-0.1.4-localaddr.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Provides: portmap = 6.0+git20070716
|
||||
Obsoletes: portmap < 6.0+git20070716
|
||||
PreReq: %insserv_prereq %fillup_prereq
|
||||
|
||||
%description
|
||||
Rpcbind is a replacement for portmap. Whereas portmap supports only UDP
|
||||
and TCP transports over INET (IPv4), rpcbind can be configured to work
|
||||
on various transports supported by the TI-RPC. This includes TCP and
|
||||
UDP over IPv6. Moreover, rpcbind provides additional functions in
|
||||
regards to portmap.
|
||||
|
||||
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Gilles Quillard <gilles.quillard@bull.net>
|
||||
Vincent ROQUETA <vincent.roqueta@ext.bull.net>
|
||||
|
||||
%prep
|
||||
%setup -n rpcbind-0.1.5-1
|
||||
%patch4 -p1
|
||||
%patch6 -p1
|
||||
|
||||
%build
|
||||
autoreconf -fi
|
||||
./configure --prefix=%{_prefix} \
|
||||
--bindir=/sbin \
|
||||
--mandir=%{_mandir} \
|
||||
--localstatedir=%{_localstatedir} \
|
||||
--enable-libwrap \
|
||||
--enable-warmstarts \
|
||||
--with-statedir=%{_localstatedir}/lib/rpcbind \
|
||||
--enable-debug \
|
||||
CFLAGS="$RPM_OPT_FLAGS -fpie" \
|
||||
LDFLAGS="-pie"
|
||||
make
|
||||
|
||||
%install
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/init.d/
|
||||
install -m 755 %{SOURCE1} $RPM_BUILD_ROOT/etc/init.d/rpcbind
|
||||
ln -s /etc/init.d/rpcbind $RPM_BUILD_ROOT/sbin/rcrpcbind
|
||||
mkdir -p $RPM_BUILD_ROOT%_localstatedir/lib/rpcbind
|
||||
# for now remove this man page since it conflicts with glibc
|
||||
rm -f $RPM_BUILD_ROOT%{_mandir}/man8/rpcinfo.8
|
||||
# fillup template
|
||||
mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
|
||||
install -m 644 %{SOURCE2} $RPM_BUILD_ROOT/var/adm/fillup-templates/
|
||||
mkdir -p $RPM_BUILD_ROOT%_datadir/omc/svcinfo.d
|
||||
install -m 644 %{SOURCE3} $RPM_BUILD_ROOT%_datadir/omc/svcinfo.d/
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%preun
|
||||
%stop_on_removal rpcbind
|
||||
|
||||
%post
|
||||
%fillup_and_insserv -y rpcbind
|
||||
|
||||
%postun
|
||||
%restart_on_update rpcbind
|
||||
%insserv_cleanup
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%doc AUTHORS ChangeLog COPYING NEWS README
|
||||
/sbin/rpcbind
|
||||
/sbin/rpcinfo
|
||||
%doc %{_mandir}/*/*
|
||||
%config /etc/init.d/rpcbind
|
||||
/sbin/rcrpcbind
|
||||
%{_localstatedir}/lib/rpcbind
|
||||
/var/adm/fillup-templates/sysconfig.rpcbind
|
||||
%{_datadir}/omc/svcinfo.d/rpcbind.xml
|
||||
|
||||
%changelog
|
||||
* Mon Aug 18 2008 mkoenig@suse.de
|
||||
- use version in Provides/Obsoletes
|
||||
* Fri Jul 18 2008 mkoenig@suse.de
|
||||
- update to version 0.1.5
|
||||
- license change to BSD-3
|
||||
- patches merged
|
||||
rpcbind-0.1.4-compile.patch
|
||||
rpcbind-0.1.4-debug.patch
|
||||
rpcbind-0.1.4-libwrap.patch
|
||||
rpcbind-0.1.4-recvfrom-fix.patch
|
||||
rpcbind-0.1.4-rpcuser.patch
|
||||
rpcbind-0.1.4-warmstarts-cleanup.patch
|
||||
rpcbind-0.1.4-warmstarts.patch
|
||||
* Wed Apr 02 2008 mkoenig@suse.de
|
||||
- initial packaging, version 0.1.4 [fate#300607]
|
||||
- add patches from Steve Dickson, including fixes and
|
||||
support for debug and warmstart
|
||||
- build as PIE
|
93
rpcbind.xml
Normal file
93
rpcbind.xml
Normal file
@ -0,0 +1,93 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (c) 2006 Novell, Inc. All rights reserved.
|
||||
|
||||
|
||||
Service Description XML Document for RPC Portmap.
|
||||
|
||||
This file should be placed in /etc/omc/svcinfo.d
|
||||
|
||||
Note: The name of the service is the name of this file without the .xml
|
||||
file extension.
|
||||
-->
|
||||
|
||||
<serviceDescription version="1.0">
|
||||
|
||||
<!-- Caption for display purposes -->
|
||||
<caption>Rpcbind</caption>
|
||||
|
||||
<!-- Description of this service -->
|
||||
<description>
|
||||
Transport independent RPC portmapping daemon
|
||||
</description>
|
||||
|
||||
|
||||
<!--
|
||||
The startCommand tag specifies the command line that will be
|
||||
invoked to start the service. The return code from this command
|
||||
must be as follows:
|
||||
0 - success
|
||||
1 - generic or unspecified error
|
||||
2 - invalid or excess argument(s)
|
||||
3 - unimplemented feature (e.g. "reload")
|
||||
4 - user had insufficient privileges
|
||||
5 - program is not installed
|
||||
6 - program is not configured
|
||||
7 - program is not running
|
||||
-->
|
||||
<startCommand>/sbin/rcrpcbind start</startCommand>
|
||||
|
||||
<!--
|
||||
The reStartCommand tag specifies the command line that will be
|
||||
invoked to restart the service. The return code from this command
|
||||
must be as specified in the startCommand tag.
|
||||
-->
|
||||
<reStartCommand>/sbin/rcrpcbind restart</reStartCommand>
|
||||
|
||||
<!--
|
||||
The stopCommand tag specifies the command line that will be
|
||||
invoked to stop the service. The return code from this command
|
||||
must be as specified in the startCommand tag.
|
||||
-->
|
||||
<stopCommand>/sbin/rcrpcbind stop</stopCommand>
|
||||
|
||||
<!--
|
||||
The statusCommand specifies the command line that can be run
|
||||
that will report on the status of the service. The return code
|
||||
from this command line should be as follows:
|
||||
0 - service up and running
|
||||
1 - service dead, but /var/run/ pid file exists
|
||||
2 - service dead, but /var/lock/ lock file exists
|
||||
3 - service not running (unused)
|
||||
4 - service status unknown :-(
|
||||
-->
|
||||
<statusCommand>/sbin/rcrpcbind status</statusCommand>
|
||||
<!--
|
||||
The processInformation tag allows the XML Service provider to
|
||||
identify the processes that belong to the service. This allows
|
||||
the ServiceProcess associations to be instrumented.
|
||||
If the process_information tag is not specifed, the will be no
|
||||
ServiceProcess association for the service.
|
||||
-->
|
||||
|
||||
|
||||
<processInformation>
|
||||
<name>rpcbind</name>
|
||||
<modulePath>/sbin/rpcbind</modulePath>
|
||||
</processInformation>
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
Define the services that this service has a dependency on.
|
||||
There must be a corresponding Service Description XML file
|
||||
for the antecedent service in the /etc/omc/svcinfo.d directory.
|
||||
-->
|
||||
<dependsOn>
|
||||
<serviceName>network</serviceName>
|
||||
<serviceName>syslog</serviceName>
|
||||
</dependsOn>
|
||||
|
||||
|
||||
|
||||
</serviceDescription>
|
9
sysconfig.rpcbind
Normal file
9
sysconfig.rpcbind
Normal file
@ -0,0 +1,9 @@
|
||||
## Path: Network/RPC/Rpcbind
|
||||
## Description: Rpcbind startup options
|
||||
## Type: string
|
||||
## Default: ""
|
||||
#
|
||||
# Startup options for rpcbind
|
||||
#
|
||||
RPCBIND_OPTIONS=""
|
||||
|
Loading…
x
Reference in New Issue
Block a user