Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
54302aee84 |
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +0,0 @@
|
||||
xinetd-2.3.14.tar.gz
|
||||
/xinetd-2.3.15.tar.gz
|
3
README.md
Normal file
3
README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Package Not Available
|
||||
This package is not available on CentOS Stream 10.
|
||||
It may be available on another branch.
|
1
dead.package
Normal file
1
dead.package
Normal file
@ -0,0 +1 @@
|
||||
xinetd package is retired on branch c10s for CS-2551
|
@ -1,6 +0,0 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-8
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
|
1
sources
1
sources
@ -1 +0,0 @@
|
||||
SHA512 (xinetd-2.3.15.tar.gz) = 9d6fee1fbc90329629d84086ae7de5cd51c25af7b68e52aa704d6f74bee5f0e3d54ca1bcf780f90f74ddc8d336ae0abb5e5e368d43c426a26b8dd2c4676d26aa
|
@ -1,251 +0,0 @@
|
||||
--- xinetd-2.3.14/configure.in 2009-07-27 13:27:59.000000000 +0200
|
||||
+++ xinetd-2.3.14-mod/configure.in 2009-07-29 10:05:44.000000000 +0200
|
||||
@@ -20,34 +20,34 @@ AC_CHECK_FUNCS(ecvt, ,
|
||||
AC_CHECK_FUNCS(gcvt, ,
|
||||
AC_CHECK_LIB(m, gcvt))
|
||||
|
||||
-AC_CHECK_FUNC(strerror, [AC_DEFINE(HAVE_STRERROR)])
|
||||
-AC_CHECK_FUNC(strcasecmp, [AC_DEFINE(HAVE_STRCASECMP)])
|
||||
+AC_CHECK_FUNC(strerror, [AC_DEFINE(HAVE_STRERROR, 1, "")])
|
||||
+AC_CHECK_FUNC(strcasecmp, [AC_DEFINE(HAVE_STRCASECMP, 1, "")])
|
||||
AC_CHECK_FUNC(socket, ,
|
||||
AC_CHECK_LIB(socket, socket, ,
|
||||
AC_CHECK_LIB(nsl, socket)))
|
||||
AC_CHECK_FUNC(inet_aton, ,
|
||||
AC_CHECK_LIB(nsl, inet_aton, ,
|
||||
AC_CHECK_LIB(socket, inet_aton, ,
|
||||
- AC_CHECK_LIB(resolv, inet_aton, ,[AC_DEFINE(NO_INET_ATON)]))))
|
||||
-AC_CHECK_FUNC(setenv,[AC_DEFINE(HAVE_SETENV)])
|
||||
-AC_CHECK_FUNC(strsignal, [AC_DEFINE(HAVE_STRSIGNAL)])
|
||||
-AC_CHECK_LIB(c, sys_siglist, [AC_DEFINE(HAVE_SYS_SIGLIST)])
|
||||
-AC_CHECK_FUNC(gai_strerror,[AC_DEFINE(HAVE_GAI_STRERROR)])
|
||||
-AC_CHECK_FUNC(freeaddrinfo,[AC_DEFINE(HAVE_FREEADDRINFO)])
|
||||
-AC_CHECK_FUNC(getaddrinfo,[AC_DEFINE(HAVE_GETADDRINFO)])
|
||||
+ AC_CHECK_LIB(resolv, inet_aton, ,[AC_DEFINE(NO_INET_ATON, 1, "")]))))
|
||||
+AC_CHECK_FUNC(setenv,[AC_DEFINE(HAVE_SETENV, 1, "")])
|
||||
+AC_CHECK_FUNC(strsignal, [AC_DEFINE(HAVE_STRSIGNAL, 1, "")])
|
||||
+AC_CHECK_LIB(c, sys_siglist, [AC_DEFINE(HAVE_SYS_SIGLIST, 1, "")])
|
||||
+AC_CHECK_FUNC(gai_strerror,[AC_DEFINE(HAVE_GAI_STRERROR, 1, "")])
|
||||
+AC_CHECK_FUNC(freeaddrinfo,[AC_DEFINE(HAVE_FREEADDRINFO, 1, "")])
|
||||
+AC_CHECK_FUNC(getaddrinfo,[AC_DEFINE(HAVE_GETADDRINFO, 1, "")])
|
||||
|
||||
AC_CHECK_HEADERS(sys/types.h sys/termios.h termios.h sys/ioctl.h sys/select.h rpc/rpc.h rpc/rpcent.h sys/file.h ftw.h machine/reg.h netdb.h)
|
||||
-AC_CHECK_HEADER(sys/resource.h, [AC_DEFINE(HAVE_SYS_RESOURCE_H)])
|
||||
-AC_CHECK_HEADER(arpa/inet.h, [AC_DEFINE(HAVE_ARPA_INET_H)])
|
||||
-AC_CHECK_HEADER(grp.h, [AC_DEFINE(HAVE_GRP_H)])
|
||||
-AC_CHECK_HEADER(rpc/pmap_clnt.h, [AC_DEFINE(HAVE_RPC_PMAP_CLNT_H)])
|
||||
-AC_CHECK_HEADER(sys/socket.h, [AC_DEFINE(HAVE_SYS_SOCKET_H)])
|
||||
-AC_CHECK_HEADER(sys/signal.h, [AC_DEFINE(HAVE_SYS_SIGNAL_H)])
|
||||
-AC_CHECK_HEADER(crypt.h, [AC_DEFINE(HAVE_CRYPT_H)])
|
||||
-AC_CHECK_HEADER(stdint.h, [AC_DEFINE(HAVE_STDINT_H)])
|
||||
-AC_CHECK_HEADER(stdbool.h, [AC_DEFINE(HAVE_STDBOOL_H)])
|
||||
-AC_CHECK_HEADER(sys/filio.h, [AC_DEFINE(HAVE_SYS_FILIO_H)])
|
||||
-AC_CHECK_HEADER(DNSServiceDiscovery/DNSServiceDiscovery.h, [AC_DEFINE(HAVE_DNSREGISTRATION) AC_DEFINE(HAVE_MDNS)])
|
||||
+AC_CHECK_HEADER(sys/resource.h, [AC_DEFINE(HAVE_SYS_RESOURCE_H, 1, "")])
|
||||
+AC_CHECK_HEADER(arpa/inet.h, [AC_DEFINE(HAVE_ARPA_INET_H, 1, "")])
|
||||
+AC_CHECK_HEADER(grp.h, [AC_DEFINE(HAVE_GRP_H, 1, "")])
|
||||
+AC_CHECK_HEADER(rpc/pmap_clnt.h, [AC_DEFINE(HAVE_RPC_PMAP_CLNT_H, 1, "")])
|
||||
+AC_CHECK_HEADER(sys/socket.h, [AC_DEFINE(HAVE_SYS_SOCKET_H, 1, "")])
|
||||
+AC_CHECK_HEADER(sys/signal.h, [AC_DEFINE(HAVE_SYS_SIGNAL_H, 1, "")])
|
||||
+AC_CHECK_HEADER(crypt.h, [AC_DEFINE(HAVE_CRYPT_H, 1, "")])
|
||||
+AC_CHECK_HEADER(stdint.h, [AC_DEFINE(HAVE_STDINT_H, 1, "")])
|
||||
+AC_CHECK_HEADER(stdbool.h, [AC_DEFINE(HAVE_STDBOOL_H, 1, "")])
|
||||
+AC_CHECK_HEADER(sys/filio.h, [AC_DEFINE(HAVE_SYS_FILIO_H, 1, "")])
|
||||
+AC_CHECK_HEADER(DNSServiceDiscovery/DNSServiceDiscovery.h, [AC_DEFINE(HAVE_DNSREGISTRATION, 1, "") AC_DEFINE(HAVE_MDNS, 1, "")])
|
||||
|
||||
AC_ARG_WITH(howl, [ --with-howl=PATH Compile in howl support.
|
||||
PATH is the prefix where howl is installed,
|
||||
@@ -56,7 +56,7 @@ AC_ARG_WITH(howl, [ --with-howl=PATH
|
||||
OLDLDFLAGS=$LDFLAGS; LDFLAGS="-L$withval/lib/ $LDFLAGS";
|
||||
OLDCPPFLAGS=$CPPFLAGS; CPPFLAGS="-I$withval/include/howl/ $CPPFLAGS";
|
||||
AC_CHECK_HEADER($withval/include/howl/howl.h,
|
||||
- [AC_DEFINE(HAVE_HOWL) AC_DEFINE(HAVE_MDNS)],
|
||||
+ [AC_DEFINE(HAVE_HOWL, 1, "") AC_DEFINE(HAVE_MDNS, 1, "")],
|
||||
[CFLAGS=$OLDCFLAGS; LDFLAGS=$OLDLDFLAGS; CPPFLAGS=$OLDCPPFLAGS;])
|
||||
AC_CHECK_LIB(howl, sw_discovery_publish, [LIBS="-lhowl $LIBS"], [
|
||||
OLDLIBS=$LIBS; LIBS="-lpthread $LIBS";
|
||||
@@ -88,7 +88,7 @@ AC_CACHE_CHECK([for struct addrinfo], ac
|
||||
)
|
||||
])
|
||||
if test "x$ac_cv_have_struct_addrinfo" = "xyes" ; then
|
||||
- AC_DEFINE(HAVE_STRUCT_ADDRINFO)
|
||||
+ AC_DEFINE(HAVE_STRUCT_ADDRINFO, 1, "")
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([for struct in6_addr], ac_cv_have_struct_in6_addr, [
|
||||
@@ -103,7 +103,7 @@ AC_CACHE_CHECK([for struct in6_addr], ac
|
||||
)
|
||||
])
|
||||
if test "x$ac_cv_have_struct_in6_addr" = "xyes" ; then
|
||||
- AC_DEFINE(HAVE_STRUCT_IN6_ADDR)
|
||||
+ AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, "")
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([for struct sockaddr_in6], ac_cv_have_struct_sockaddr_in6, [
|
||||
@@ -118,7 +118,7 @@ AC_CACHE_CHECK([for struct sockaddr_in6]
|
||||
)
|
||||
])
|
||||
if test "x$ac_cv_have_struct_sockaddr_in6" = "xyes" ; then
|
||||
- AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6)
|
||||
+ AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6, 1, "")
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_have_struct_sockaddr_storage, [
|
||||
@@ -133,15 +133,15 @@ AC_CACHE_CHECK([for struct sockaddr_stor
|
||||
)
|
||||
])
|
||||
if test "x$ac_cv_have_struct_sockaddr_storage" = "xyes" ; then
|
||||
- AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE)
|
||||
+ AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, "")
|
||||
fi
|
||||
|
||||
|
||||
case "$target_os" in
|
||||
|
||||
solaris*)
|
||||
- AC_DEFINE(N0_SIGLIST)
|
||||
- AC_DEFINE(solaris)
|
||||
+ AC_DEFINE(N0_SIGLIST, 1, "")
|
||||
+ AC_DEFINE(solaris, 1, "")
|
||||
|
||||
AC_MSG_CHECKING(whether to compile in loadavg)
|
||||
AC_ARG_WITH(loadavg,
|
||||
@@ -153,12 +153,12 @@ solaris*)
|
||||
yes)
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_CHECK_LIB(kstat, main)
|
||||
- AC_CHECK_HEADER(kstat.h, [AC_DEFINE(HAVE_KSTAT_H)])
|
||||
- AC_DEFINE(HAVE_LOADAVG)
|
||||
+ AC_CHECK_HEADER(kstat.h, [AC_DEFINE(HAVE_KSTAT_H, 1, "")])
|
||||
+ AC_DEFINE(HAVE_LOADAVG, 1, "")
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT(yes)
|
||||
- AC_DEFINE(HAVE_LOADAVG)
|
||||
+ AC_DEFINE(HAVE_LOADAVG, 1, "")
|
||||
;;
|
||||
esac ], AC_MSG_RESULT(no) )
|
||||
;;
|
||||
@@ -172,11 +172,11 @@ osf*)
|
||||
;;
|
||||
yes)
|
||||
AC_MSG_RESULT(yes)
|
||||
- AC_DEFINE(HAVE_LOADAVG)
|
||||
+ AC_DEFINE(HAVE_LOADAVG, 1, "")
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT(yes)
|
||||
- AC_DEFINE(HAVE_LOADAVG)
|
||||
+ AC_DEFINE(HAVE_LOADAVG, 1, "")
|
||||
;;
|
||||
esac ], AC_MSG_RESULT(no))
|
||||
;;
|
||||
@@ -191,18 +191,18 @@ linux*|freebsd*)
|
||||
;;
|
||||
yes)
|
||||
AC_MSG_RESULT(yes)
|
||||
- AC_DEFINE(HAVE_LOADAVG)
|
||||
+ AC_DEFINE(HAVE_LOADAVG, 1, "")
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT(yes)
|
||||
- AC_DEFINE(HAVE_LOADAVG)
|
||||
+ AC_DEFINE(HAVE_LOADAVG, 1, "")
|
||||
;;
|
||||
esac ], AC_MSG_RESULT(no))
|
||||
;;
|
||||
darwin* | "Mac OS"*)
|
||||
ac_cv_prog_RANLIB="ranlib"
|
||||
# AC_CHECK_FUNCS doesn't look in the proper header file...
|
||||
- AC_DEFINE(HAVE_ISATTY)
|
||||
+ AC_DEFINE(HAVE_ISATTY, 1, "")
|
||||
CFLAGS="$CFLAGS -no-cpp-precomp"
|
||||
AC_MSG_CHECKING(whether to compile in loadavg)
|
||||
AC_ARG_WITH(loadavg,,
|
||||
@@ -212,11 +212,11 @@ darwin* | "Mac OS"*)
|
||||
;;
|
||||
yes)
|
||||
AC_MSG_RESULT(yes)
|
||||
- AC_DEFINE(HAVE_LOADAVG)
|
||||
+ AC_DEFINE(HAVE_LOADAVG, 1, "")
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT(yes)
|
||||
- AC_DEFINE(HAVE_LOADAVG)
|
||||
+ AC_DEFINE(HAVE_LOADAVG, 1, "")
|
||||
;;
|
||||
esac ], AC_MSG_RESULT(no))
|
||||
;;
|
||||
@@ -229,13 +229,13 @@ darwin* | "Mac OS"*)
|
||||
;;
|
||||
yes)
|
||||
AC_MSG_RESULT(yes)
|
||||
- AC_DEFINE(bsdi)
|
||||
- AC_DEFINE(HAVE_LOADAVG)
|
||||
+ AC_DEFINE(bsdi, 1, "")
|
||||
+ AC_DEFINE(HAVE_LOADAVG, 1, "")
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT(yes)
|
||||
- AC_DEFINE(bsdi)
|
||||
- AC_DEFINE(HAVE_LOADAVG)
|
||||
+ AC_DEFINE(bsdi, 1, "")
|
||||
+ AC_DEFINE(HAVE_LOADAVG, 1, "")
|
||||
;;
|
||||
esac ], AC_MSG_RESULT(no))
|
||||
;;
|
||||
@@ -245,7 +245,7 @@ esac
|
||||
AC_CHECK_LIB(c, crypt, [:], [
|
||||
AC_CHECK_LIB(crypt, crypt, [
|
||||
LIBS="-lcrypt $LIBS"
|
||||
- AC_DEFINE(HAVE_LIBCRYPT) ], []) ])
|
||||
+ AC_DEFINE(HAVE_LIBCRYPT, 1, "") ], []) ])
|
||||
|
||||
AC_CHECK_LIB(m, log10, [ LIBS="-lm $LIBS" ], [])
|
||||
|
||||
@@ -263,16 +263,16 @@ AC_ARG_WITH(libwrap,
|
||||
yes)
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_CHECK_LIB(wrap, request_init, [
|
||||
- AC_DEFINE(LIBWRAP)
|
||||
+ AC_DEFINE(LIBWRAP, 1, "")
|
||||
WRAPLIBS="-lwrap"
|
||||
- AC_DEFINE(HAVE_LIBWRAP) ])
|
||||
+ AC_DEFINE(HAVE_LIBWRAP, 1, "") ])
|
||||
AC_CHECK_LIB(nsl, yp_get_default_domain, [
|
||||
WRAPLIBS="$WRAPLIBS -lnsl" ])
|
||||
LIBS="$WRAPLIBS $LIBS"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT(yes)
|
||||
- AC_DEFINE(LIBWRAP)
|
||||
+ AC_DEFINE(LIBWRAP, 1, "")
|
||||
if test -d "$withval"; then
|
||||
WRAPLIBS="-L$withval -lwrap"
|
||||
else
|
||||
@@ -299,13 +299,13 @@ AC_ARG_WITH(labeled-networking,
|
||||
yes)
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_CHECK_LIB(selinux, setexeccon, [
|
||||
- AC_DEFINE(LABELED_NET)
|
||||
+ AC_DEFINE(LABELED_NET, 1, "")
|
||||
LABELLIBS="-lselinux" ])
|
||||
LIBS="$LABELLIBS $LIBS"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT(yes)
|
||||
- AC_DEFINE(LABELED_NET)
|
||||
+ AC_DEFINE(LABELED_NET, 1, "")
|
||||
if test -d "$withval"; then
|
||||
LABELLIBS="-L$withval -lselinux"
|
||||
else
|
||||
--- xinetd-2.3.14/aclocal.m4 2003-02-19 18:29:27.000000000 +0100
|
||||
+++ xinetd-2.3.14-mod/aclocal.m4 2009-07-29 10:10:03.000000000 +0200
|
||||
@@ -22,6 +22,6 @@ AC_CACHE_VAL(xinetd_cv_type_$1,
|
||||
#endif], xinetd_cv_type_$1=yes, xinetd_cv_type_$1=no)])dnl
|
||||
AC_MSG_RESULT($xinetd_cv_type_$1)
|
||||
if test $xinetd_cv_type_$1 = no; then
|
||||
- AC_DEFINE($1, $2)
|
||||
+ AC_DEFINE($1, $2, "")
|
||||
fi
|
||||
])
|
@ -1,29 +0,0 @@
|
||||
--- xinetd-2.3.14/xinetd/service.c.old 2007-05-16 15:33:41.000000000 +0200
|
||||
+++ xinetd-2.3.14/xinetd/service.c 2007-05-16 15:29:53.000000000 +0200
|
||||
@@ -335,6 +335,15 @@
|
||||
|
||||
if ( SVC_FD(sp) == -1 )
|
||||
{
|
||||
+ if (SC_BIND_ADDR(scp) == NULL && SC_IPV6( scp ))
|
||||
+ {
|
||||
+ /* there was no bind address configured and IPv6 fails. Try IPv4 */
|
||||
+ msg( LOG_NOTICE, func, "IPv6 socket creation failed for service %s, trying IPv4", SC_ID( scp ) ) ;
|
||||
+ M_CLEAR(SC_XFLAGS(scp), SF_IPV6);
|
||||
+ M_SET(SC_XFLAGS(scp), SF_IPV4);
|
||||
+ return svc_activate(sp);
|
||||
+ }
|
||||
+
|
||||
msg( LOG_ERR, func,
|
||||
"socket creation failed (%m). service = %s", SC_ID( scp ) ) ;
|
||||
return( FAILED ) ;
|
||||
--- xinetd-2.3.14/xinetd/confparse.c.old 2007-05-16 15:33:26.000000000 +0200
|
||||
+++ xinetd-2.3.14/xinetd/confparse.c 2007-05-16 15:15:22.000000000 +0200
|
||||
@@ -245,7 +245,7 @@
|
||||
M_SET(SC_XFLAGS(scp), SF_IPV6);
|
||||
}
|
||||
else
|
||||
- M_SET(SC_XFLAGS(scp), SF_IPV4);
|
||||
+ M_SET(SC_XFLAGS(scp), SF_IPV6); /*try bind IPv6 by default*/
|
||||
}
|
||||
|
||||
if (SC_ORIG_BIND_ADDR(scp))
|
@ -1,10 +0,0 @@
|
||||
--- xinetd-2.3.14/xinetd/service.c.orig 2010-03-18 17:09:20.000000000 +0100
|
||||
+++ xinetd-2.3.14/xinetd/service.c 2010-03-18 17:09:37.000000000 +0100
|
||||
@@ -470,6 +470,7 @@ void svc_deactivate( struct service *sp
|
||||
{
|
||||
#ifdef HAVE_POLL
|
||||
SVC_EVENTS( sp ) = 0;
|
||||
+ SVC_FD( sp ) = 0;
|
||||
#else
|
||||
FD_CLR( SVC_FD( sp ), &ps.rws.socket_mask ) ;
|
||||
#endif /* HAVE_POLL */
|
@ -1,126 +0,0 @@
|
||||
diff -Nurp xinetd-2.3.14-orig/xinetd/attr.h xinetd-2.3.14-files/xinetd/attr.h
|
||||
--- xinetd-2.3.14-orig/xinetd/attr.h 2005-10-05 19:15:33.000000000 +0200
|
||||
+++ xinetd-2.3.14-files/xinetd/attr.h 2009-10-20 13:08:45.000000000 +0200
|
||||
@@ -61,12 +61,13 @@
|
||||
#define A_DISABLED 43
|
||||
#define A_MDNS 44
|
||||
#define A_LIBWRAP 45
|
||||
+#define A_RLIMIT_FILES 46
|
||||
|
||||
/*
|
||||
* SERVICE_ATTRIBUTES is the number of service attributes and also
|
||||
* the number from which defaults-only attributes start.
|
||||
*/
|
||||
-#define SERVICE_ATTRIBUTES ( A_MDNS + 1 )
|
||||
+#define SERVICE_ATTRIBUTES ( A_MDNS + 2 )
|
||||
|
||||
/*
|
||||
* Mask of attributes that must be specified.
|
||||
diff -Nurp xinetd-2.3.14-orig/xinetd/child.c xinetd-2.3.14-files/xinetd/child.c
|
||||
--- xinetd-2.3.14-orig/xinetd/child.c 2009-10-20 13:07:34.000000000 +0200
|
||||
+++ xinetd-2.3.14-files/xinetd/child.c 2009-10-20 13:10:16.000000000 +0200
|
||||
@@ -109,6 +109,10 @@ void exec_server( const struct server *s
|
||||
|
||||
|
||||
#ifdef RLIMIT_NOFILE
|
||||
+ if ( SC_RLIM_FILES( scp ))
|
||||
+ {
|
||||
+ ps.ros.max_descriptors = SC_RLIM_FILES( scp );
|
||||
+ }
|
||||
rl.rlim_max = rl.rlim_cur = ps.ros.max_descriptors ;
|
||||
(void) setrlimit( RLIMIT_NOFILE, &rl ) ;
|
||||
#endif
|
||||
diff -Nurp xinetd-2.3.14-orig/xinetd/parse.c xinetd-2.3.14-files/xinetd/parse.c
|
||||
--- xinetd-2.3.14-orig/xinetd/parse.c 2005-10-05 19:15:33.000000000 +0200
|
||||
+++ xinetd-2.3.14-files/xinetd/parse.c 2009-10-20 13:08:45.000000000 +0200
|
||||
@@ -92,6 +92,9 @@ static const struct attribute service_at
|
||||
#ifdef RLIMIT_DATA
|
||||
{ "rlimit_data", A_RLIMIT_DATA, 1, rlim_data_parser },
|
||||
#endif
|
||||
+#ifdef RLIMIT_NOFILE
|
||||
+ { "rlimit_files", A_RLIMIT_FILES, 1, rlim_files_parser },
|
||||
+#endif
|
||||
#ifdef RLIMIT_RSS
|
||||
{ "rlimit_rss", A_RLIMIT_RSS, 1, rlim_rss_parser },
|
||||
#endif
|
||||
diff -Nurp xinetd-2.3.14-orig/xinetd/parsers.c xinetd-2.3.14-files/xinetd/parsers.c
|
||||
--- xinetd-2.3.14-orig/xinetd/parsers.c 2005-10-05 23:45:41.000000000 +0200
|
||||
+++ xinetd-2.3.14-files/xinetd/parsers.c 2009-10-20 13:08:45.000000000 +0200
|
||||
@@ -1415,6 +1415,29 @@ status_e rlim_data_parser( pset_h values
|
||||
}
|
||||
#endif
|
||||
|
||||
+#ifdef RLIMIT_NOFILE
|
||||
+status_e rlim_files_parser( pset_h values,
|
||||
+ struct service_config *scp,
|
||||
+ enum assign_op op )
|
||||
+{
|
||||
+ char *mem = (char *) pset_pointer( values, 0 ) ;
|
||||
+ const char *func = "rlim_files_parser" ;
|
||||
+
|
||||
+ if ( EQ( mem, "UNLIMITED" ) )
|
||||
+ SC_RLIM_FILES(scp) = (rlim_t)RLIM_INFINITY ;
|
||||
+ else
|
||||
+ {
|
||||
+ if ( get_limit ( mem, &SC_RLIM_FILES(scp)) )
|
||||
+ {
|
||||
+ parsemsg( LOG_ERR, func,
|
||||
+ "Max files limit is invalid: %s", mem ) ;
|
||||
+ return( FAILED ) ;
|
||||
+ }
|
||||
+ }
|
||||
+ return( OK ) ;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
#ifdef RLIMIT_RSS
|
||||
status_e rlim_rss_parser( pset_h values,
|
||||
struct service_config *scp,
|
||||
diff -Nurp xinetd-2.3.14-orig/xinetd/parsers.h xinetd-2.3.14-files/xinetd/parsers.h
|
||||
--- xinetd-2.3.14-orig/xinetd/parsers.h 2005-10-05 19:15:33.000000000 +0200
|
||||
+++ xinetd-2.3.14-files/xinetd/parsers.h 2009-10-20 13:08:45.000000000 +0200
|
||||
@@ -57,6 +57,9 @@ status_e rlim_cpu_parser(pset_h, struct
|
||||
#ifdef RLIMIT_DATA
|
||||
status_e rlim_data_parser(pset_h, struct service_config *, enum assign_op) ;
|
||||
#endif
|
||||
+#ifdef RLIMIT_NOFILE
|
||||
+status_e rlim_files_parser(pset_h, struct service_config *, enum assign_op) ;
|
||||
+#endif
|
||||
#ifdef RLIMIT_RSS
|
||||
status_e rlim_rss_parser(pset_h, struct service_config *, enum assign_op) ;
|
||||
#endif
|
||||
diff -Nurp xinetd-2.3.14-orig/xinetd/sconf.h xinetd-2.3.14-files/xinetd/sconf.h
|
||||
--- xinetd-2.3.14-orig/xinetd/sconf.h 2009-10-20 13:07:34.000000000 +0200
|
||||
+++ xinetd-2.3.14-files/xinetd/sconf.h 2009-10-20 13:08:45.000000000 +0200
|
||||
@@ -143,6 +143,7 @@ struct service_config
|
||||
rlim_t sc_rlim_as;
|
||||
rlim_t sc_rlim_cpu;
|
||||
rlim_t sc_rlim_data;
|
||||
+ rlim_t sc_rlim_files;
|
||||
rlim_t sc_rlim_rss;
|
||||
rlim_t sc_rlim_stack;
|
||||
mode_t sc_umask;
|
||||
@@ -191,6 +192,7 @@ struct service_config
|
||||
#define SC_RLIM_AS( scp ) (scp)->sc_rlim_as
|
||||
#define SC_RLIM_CPU( scp ) (scp)->sc_rlim_cpu
|
||||
#define SC_RLIM_DATA( scp ) (scp)->sc_rlim_data
|
||||
+#define SC_RLIM_FILES( scp ) (scp)->sc_rlim_files
|
||||
#define SC_RLIM_RSS( scp ) (scp)->sc_rlim_rss
|
||||
#define SC_RLIM_STACK( scp ) (scp)->sc_rlim_stack
|
||||
#define SC_TYPE( scp ) (scp)->sc_type
|
||||
diff -Nurp xinetd-2.3.14-orig/xinetd/xinetd.conf.man xinetd-2.3.14-files/xinetd/xinetd.conf.man
|
||||
--- xinetd-2.3.14-orig/xinetd/xinetd.conf.man 2009-10-20 13:07:34.000000000 +0200
|
||||
+++ xinetd-2.3.14-files/xinetd/xinetd.conf.man 2009-10-20 13:08:45.000000000 +0200
|
||||
@@ -569,6 +569,12 @@ is implemented, it is more useful to set
|
||||
rlimit_rss and rlimit_stack. This resource limit is only implemented on
|
||||
Linux systems.
|
||||
.TP
|
||||
+.B rlimit_files
|
||||
+Sets the maximum number of open files that the service may use.
|
||||
+One parameter is required, which is a positive integer representing
|
||||
+the number of open file descriptors. Practical limit of this number
|
||||
+is around 1024000.
|
||||
+.TP
|
||||
.B rlimit_cpu
|
||||
Sets the maximum number of CPU seconds that the service may use.
|
||||
One parameter is required, which is either a positive integer representing
|
@ -1,22 +0,0 @@
|
||||
diff --git a/sensor.c b/sensor.c
|
||||
index 09d0877..e65018c 100644
|
||||
--- a/xinetd/sensor.c
|
||||
+++ b/xinetd/sensor.c
|
||||
@@ -100,14 +100,15 @@ void process_sensor( const struct service *sp, const union xsockaddr *addr)
|
||||
{
|
||||
/* Here again, eh?...update time stamp. */
|
||||
char *exp_time;
|
||||
- time_t stored_time;
|
||||
+ int stored_time;
|
||||
|
||||
item_matched--; /* Is # plus 1, to even get here must be >= 1 */
|
||||
exp_time = pset_pointer( global_no_access_time, item_matched ) ;
|
||||
if (exp_time == NULL)
|
||||
return ;
|
||||
|
||||
- if ( parse_base10(exp_time, (int *)&stored_time) )
|
||||
+ /* FIXME: Parse (long int) instead of (int) prior to possible Y2K38 bug. */
|
||||
+ if ( parse_base10(exp_time, &stored_time ) )
|
||||
{ /* if never let them off, bypass */
|
||||
if (stored_time != -1)
|
||||
{
|
@ -1,42 +0,0 @@
|
||||
448069: xinetd: socket bind: Invalid argument (errno = 22) when using USERID on ipv6
|
||||
|
||||
Use right size of addresses in bind() call. Also use getpeername addresses when
|
||||
connecting to ident service to prevent address family mismatch between socket(),
|
||||
bind() and connect() calls.
|
||||
|
||||
Author: Jan Safranek <jsafrane@redhat.com>
|
||||
Reviewed-By: Adam Tkac <atkac@redhat.com>
|
||||
|
||||
diff -up xinetd-2.3.14/xinetd/ident.c.orig xinetd-2.3.14/xinetd/ident.c
|
||||
--- xinetd-2.3.14/xinetd/ident.c.orig 2008-05-29 16:30:19.000000000 +0200
|
||||
+++ xinetd-2.3.14/xinetd/ident.c 2008-05-29 16:29:57.000000000 +0200
|
||||
@@ -97,7 +98,13 @@ idresult_e log_remote_user( const struct
|
||||
}
|
||||
|
||||
CLEAR( sin_contact );
|
||||
- sin_remote = *CONN_XADDRESS( SERVER_CONNECTION( serp ) ) ;
|
||||
+
|
||||
+ sin_len = sizeof( sin_remote );
|
||||
+ if ( getpeername( SERVER_FD( serp ), &sin_remote.sa, &sin_len ) == -1 )
|
||||
+ {
|
||||
+ msg( LOG_ERR, func, "(%d) getpeername: %m", getpid() ) ;
|
||||
+ return( IDR_ERROR ) ;
|
||||
+ }
|
||||
sin_contact = sin_remote;
|
||||
memcpy( &sin_bind, &sin_local, sizeof(sin_bind) ) ;
|
||||
local_port = 0;
|
||||
@@ -121,7 +128,13 @@ idresult_e log_remote_user( const struct
|
||||
msg( LOG_ERR, func, "socket creation: %m" ) ;
|
||||
return( IDR_ERROR ) ;
|
||||
}
|
||||
- if ( bind(sd, &sin_bind.sa, sizeof(sin_bind.sa)) == -1 )
|
||||
+
|
||||
+ if ( sin_bind.sa.sa_family == AF_INET )
|
||||
+ sin_len = sizeof( sin_bind.sa_in ) ;
|
||||
+ else
|
||||
+ sin_len = sizeof( sin_bind.sa_in6 ) ;
|
||||
+
|
||||
+ if ( bind(sd, &sin_bind.sa, sin_len) == -1 )
|
||||
{
|
||||
msg( LOG_ERR, func, "socket bind: %m" ) ;
|
||||
(void) Sclose( sd ) ;
|
@ -1,22 +0,0 @@
|
||||
--- xinetd-2.3.14/xinetd/access.c 2005-10-05 19:15:33.000000000 +0200
|
||||
+++ xinetd-2.3.14-mod/xinetd/access.c 2012-03-05 14:54:30.935416926 +0100
|
||||
@@ -73,6 +73,7 @@ static void cps_service_restart(void)
|
||||
unsigned int i;
|
||||
time_t nowtime;
|
||||
const char *func = "cps_service_restart";
|
||||
+ int rs;
|
||||
|
||||
nowtime = time(NULL);
|
||||
for( i=0; i < pset_count( SERVICES(ps) ); i++ ) {
|
||||
@@ -84,8 +85,11 @@ static void cps_service_restart(void)
|
||||
if( SVC_STATE(sp) == SVC_DISABLED ) {
|
||||
scp = SVC_CONF( sp );
|
||||
if ( SC_TIME_REENABLE(scp) <= nowtime ) {
|
||||
+ rs = SVC_RUNNING_SERVERS(sp);
|
||||
/* re-enable the service */
|
||||
if( svc_activate(sp) == OK ) {
|
||||
+ /* remember running servers after restart */
|
||||
+ SVC_RUNNING_SERVERS(sp) = rs;
|
||||
msg(LOG_ERR, func,
|
||||
"Activating service %s", SC_NAME(scp));
|
||||
} else {
|
@ -1,17 +0,0 @@
|
||||
--- xinetd-2.3.14/xinetd/ident.c.jw 2010-03-10 17:49:53.000000000 +1100
|
||||
+++ xinetd-2.3.14/xinetd/ident.c 2010-03-10 17:50:30.000000000 +1100
|
||||
@@ -108,12 +108,12 @@
|
||||
memcpy( &sin_bind, &sin_local, sizeof(sin_bind) ) ;
|
||||
local_port = 0;
|
||||
remote_port = 0;
|
||||
- if( sin_remote.sa.sa_family == AF_INET ) {
|
||||
+ if( sin_remote.sa.sa_family == AF_INET6 ) {
|
||||
local_port = ntohs( sin_local.sa_in6.sin6_port ) ;
|
||||
remote_port = ntohs( sin_remote.sa_in6.sin6_port ) ;
|
||||
sin_contact.sa_in6.sin6_port = htons( IDENTITY_SERVICE_PORT ) ;
|
||||
sin_bind.sa_in.sin_port = 0 ;
|
||||
- } else if( sin_remote.sa.sa_family == AF_INET6 ) {
|
||||
+ } else if( sin_remote.sa.sa_family == AF_INET ) {
|
||||
local_port = ntohs( sin_local.sa_in.sin_port ) ;
|
||||
remote_port = ntohs( sin_remote.sa_in.sin_port ) ;
|
||||
sin_contact.sa_in.sin_port = htons( IDENTITY_SERVICE_PORT ) ;
|
@ -1,41 +0,0 @@
|
||||
diff -Naur xinetd-2.3.14-dist/xinetd/service.c xinetd-2.3.14/xinetd/service.c
|
||||
--- xinetd-2.3.14-dist/xinetd/service.c 2012-04-03 08:59:19.000000000 +0200
|
||||
+++ xinetd-2.3.14/xinetd/service.c 2012-04-03 09:02:34.588160317 +0200
|
||||
@@ -366,12 +366,24 @@
|
||||
|
||||
msg( LOG_ERR, func,
|
||||
"socket creation failed (%m). service = %s", SC_ID( scp ) ) ;
|
||||
+#ifdef HAVE_POLL
|
||||
+ SVC_EVENTS( sp ) = 0;
|
||||
+ SVC_FD( sp ) = 0;
|
||||
+#else
|
||||
+ FD_CLR( SVC_FD( sp ), &ps.rws.socket_mask ) ;
|
||||
+#endif /* HAVE_POLL */
|
||||
return( FAILED ) ;
|
||||
}
|
||||
|
||||
if ( set_fd_modes( sp ) == FAILED )
|
||||
{
|
||||
(void) Sclose( SVC_FD(sp) ) ;
|
||||
+#ifdef HAVE_POLL
|
||||
+ SVC_EVENTS( sp ) = 0;
|
||||
+ SVC_FD( sp ) = 0;
|
||||
+#else
|
||||
+ FD_CLR( SVC_FD( sp ), &ps.rws.socket_mask ) ;
|
||||
+#endif /* HAVE_POLL */
|
||||
return( FAILED ) ;
|
||||
}
|
||||
|
||||
@@ -385,6 +397,12 @@
|
||||
if ( status == FAILED )
|
||||
{
|
||||
(void) Sclose( SVC_FD(sp) ) ;
|
||||
+#ifdef HAVE_POLL
|
||||
+ SVC_EVENTS( sp ) = 0;
|
||||
+ SVC_FD( sp ) = 0;
|
||||
+#else
|
||||
+ FD_CLR( SVC_FD( sp ), &ps.rws.socket_mask ) ;
|
||||
+#endif /* HAVE_POLL */
|
||||
return( FAILED ) ;
|
||||
}
|
||||
|
@ -1,52 +0,0 @@
|
||||
diff -up xinetd-2.3.14-dist/xinetd/service.c xinetd-2.3.14/xinetd/service.c
|
||||
--- xinetd-2.3.14-dist/xinetd/service.c 2012-01-11 11:50:43.438650900 +0100
|
||||
+++ xinetd-2.3.14/xinetd/service.c 2012-01-16 08:18:09.462620084 +0100
|
||||
@@ -88,6 +88,7 @@ struct service *svc_new( struct service_
|
||||
CLEAR( *sp ) ;
|
||||
|
||||
SVC_CONF(sp) = scp ;
|
||||
+ sp->svc_pfd_index = -1;
|
||||
return( sp ) ;
|
||||
}
|
||||
|
||||
@@ -346,7 +347,16 @@ status_e svc_activate( struct service *s
|
||||
ps.rws.pfds_last)*sizeof(struct pollfd));
|
||||
ps.rws.pfd_array = tmp;
|
||||
}
|
||||
- SVC_POLLFD( sp ) = &ps.rws.pfd_array[ps.rws.pfds_last++] ;
|
||||
+ if ( sp->svc_pfd_index >= 0 )
|
||||
+ {
|
||||
+ SVC_POLLFD( sp ) = &ps.rws.pfd_array[sp->svc_pfd_index] ;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ sp->svc_pfd_index = ps.rws.pfds_last ;
|
||||
+ SVC_POLLFD( sp ) = &ps.rws.pfd_array[ps.rws.pfds_last++] ;
|
||||
+ }
|
||||
+
|
||||
#endif /* HAVE_POLL */
|
||||
|
||||
if( SC_IPV4( scp ) ) {
|
||||
@@ -433,6 +443,11 @@ status_e svc_activate( struct service *s
|
||||
static void deactivate( const struct service *sp )
|
||||
{
|
||||
(void) Sclose( SVC_FD( sp ) ) ;
|
||||
+#ifdef HAVE_POLL
|
||||
+ SVC_FD( sp ) = 0;
|
||||
+#else
|
||||
+ FD_CLR( SVC_FD( sp ), &ps.rws.socket_mask ) ;
|
||||
+#endif
|
||||
|
||||
#ifdef HAVE_MDNS
|
||||
xinetd_mdns_deregister(SVC_CONF(sp));
|
||||
diff -up xinetd-2.3.14-dist/xinetd/service.h xinetd-2.3.14/xinetd/service.h
|
||||
--- xinetd-2.3.14-dist/xinetd/service.h 2012-01-11 11:50:43.418650925 +0100
|
||||
+++ xinetd-2.3.14/xinetd/service.h 2012-01-16 08:02:59.667553008 +0100
|
||||
@@ -47,6 +47,7 @@ struct service
|
||||
{
|
||||
state_e svc_state ;
|
||||
int svc_ref_count ; /* # of pters to this struct */
|
||||
+ int svc_pfd_index; /* index of pfd in pfd_array */
|
||||
struct service_config *svc_conf ; /* service configuration */
|
||||
|
||||
#ifdef HAVE_POLL
|
@ -1,16 +0,0 @@
|
||||
117746: xinetd.log man page in wrong section
|
||||
|
||||
Put xinetd.log to the right man section.
|
||||
|
||||
diff -up xinetd-2.3.13/Makefile.in.orig xinetd-2.3.13/Makefile.in
|
||||
--- xinetd-2.3.13/Makefile.in.orig 2007-12-06 10:58:32.000000000 +0100
|
||||
+++ xinetd-2.3.13/Makefile.in 2008-01-15 13:39:38.000000000 +0100
|
||||
@@ -80,7 +80,7 @@ install: build
|
||||
$(INSTALL_CMD) -m 755 xinetd/itox $(DAEMONDIR)
|
||||
$(INSTALL_CMD) -m 755 $(SRCDIR)/xinetd/xconv.pl $(DAEMONDIR)
|
||||
$(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.conf.man $(MANDIR)/man5/xinetd.conf.5
|
||||
- $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.log.man $(MANDIR)/man8/xinetd.log.8
|
||||
+ $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.log.man $(MANDIR)/man5/xinetd.log.5
|
||||
$(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.man $(MANDIR)/man8/xinetd.8
|
||||
$(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/itox.8 $(MANDIR)/man8/itox.8
|
||||
$(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xconv.pl.8 $(MANDIR)/man8/xconv.pl.8
|
@ -1,27 +0,0 @@
|
||||
--- xinetd-2.3.14-dist/xinetd/defs.h 2012-01-16 12:20:54.739041678 +0100
|
||||
+++ xinetd-2.3.14/xinetd/defs.h 2012-01-17 08:06:56.800762230 +0100
|
||||
@@ -115,8 +115,9 @@ union xsockaddr {
|
||||
*/
|
||||
|
||||
#ifdef HAVE_POLL
|
||||
-#define INIT_POLLFDS 1024
|
||||
-#define MAX_POLLFDS 8192
|
||||
+#define INIT_POLLFDS 4096
|
||||
+/* FIXME: not used */
|
||||
+#define MAX_POLLFDS 16384
|
||||
#endif
|
||||
|
||||
/*
|
||||
--- xinetd-2.3.14-dist/xinetd/service.c 2012-01-16 12:20:54.741041678 +0100
|
||||
+++ xinetd-2.3.14/xinetd/service.c 2012-01-17 08:07:28.872746991 +0100
|
||||
@@ -343,9 +343,9 @@ status_e svc_activate( struct service *s
|
||||
out_of_memory( func );
|
||||
return( FAILED );
|
||||
}
|
||||
+ ps.rws.pfd_array = tmp;
|
||||
memset(&ps.rws.pfd_array[ps.rws.pfds_last], 0, (ps.rws.pfds_allocated-
|
||||
ps.rws.pfds_last)*sizeof(struct pollfd));
|
||||
- ps.rws.pfd_array = tmp;
|
||||
}
|
||||
if ( sp->svc_pfd_index >= 0 )
|
||||
{
|
File diff suppressed because it is too large
Load Diff
@ -1,77 +0,0 @@
|
||||
Generate debuginfo package with all include files readable.
|
||||
|
||||
The support libraries would install their header files with 640 permissions,
|
||||
which is not what we want.
|
||||
|
||||
diff -up xinetd-2.3.14/libs/src/misc/Makefile.in.orig xinetd-2.3.14/libs/src/misc/Makefile.in
|
||||
--- xinetd-2.3.14/libs/src/misc/Makefile.in.orig 2003-02-19 18:29:27.000000000 +0100
|
||||
+++ xinetd-2.3.14/libs/src/misc/Makefile.in 2008-09-18 10:18:59.000000000 +0200
|
||||
@@ -49,7 +49,7 @@ CC_FLAGS = $(DEBUG)
|
||||
CFLAGS = @CFLAGS@ $(CPP_FLAGS) $(CC_FLAGS) -I$(INCLUDEDIR)
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
-FMODE = -m 640 # used by install
|
||||
+FMODE = -m 644 # used by install
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
LIBNAME = lib$(NAME).a
|
||||
diff -up xinetd-2.3.14/libs/src/portable/Makefile.in.orig xinetd-2.3.14/libs/src/portable/Makefile.in
|
||||
--- xinetd-2.3.14/libs/src/portable/Makefile.in.orig 2003-02-19 18:29:27.000000000 +0100
|
||||
+++ xinetd-2.3.14/libs/src/portable/Makefile.in 2008-09-18 10:19:09.000000000 +0200
|
||||
@@ -44,7 +44,7 @@ CC_FLAGS = $(DEBUG)
|
||||
CFLAGS = @CFLAGS@ $(CPP_FLAGS) $(CC_FLAGS) -I$(INCLUDEDIR)
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
-FMODE = -m 640 # used by install
|
||||
+FMODE = -m 644 # used by install
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
LIBNAME = lib$(NAME).a
|
||||
diff -up xinetd-2.3.14/libs/src/pset/Makefile.in.orig xinetd-2.3.14/libs/src/pset/Makefile.in
|
||||
--- xinetd-2.3.14/libs/src/pset/Makefile.in.orig 2003-02-19 18:29:27.000000000 +0100
|
||||
+++ xinetd-2.3.14/libs/src/pset/Makefile.in 2008-09-18 10:19:17.000000000 +0200
|
||||
@@ -41,7 +41,7 @@ CC_FLAGS = $(DEBUG)
|
||||
CFLAGS = @CFLAGS@ $(CPP_FLAGS) $(CC_FLAGS)
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
-FMODE = -m 640 # used by install
|
||||
+FMODE = -m 644 # used by install
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
LIBNAME = lib$(NAME).a
|
||||
diff -up xinetd-2.3.14/libs/src/sio/Makefile.in.orig xinetd-2.3.14/libs/src/sio/Makefile.in
|
||||
--- xinetd-2.3.14/libs/src/sio/Makefile.in.orig 2003-02-19 18:29:27.000000000 +0100
|
||||
+++ xinetd-2.3.14/libs/src/sio/Makefile.in 2008-09-18 10:19:25.000000000 +0200
|
||||
@@ -40,7 +40,7 @@ CC_FLAGS = $(DEBUG)
|
||||
CFLAGS = @CFLAGS@ $(CPP_FLAGS) $(CC_FLAGS) -I$(INCLUDEDIR)
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
-FMODE = -m 640 # used by install
|
||||
+FMODE = -m 644 # used by install
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
LIBNAME = lib$(NAME).a
|
||||
diff -up xinetd-2.3.14/libs/src/str/Makefile.in.orig xinetd-2.3.14/libs/src/str/Makefile.in
|
||||
--- xinetd-2.3.14/libs/src/str/Makefile.in.orig 2003-02-19 18:29:27.000000000 +0100
|
||||
+++ xinetd-2.3.14/libs/src/str/Makefile.in 2008-09-18 10:19:33.000000000 +0200
|
||||
@@ -51,7 +51,7 @@ CC_FLAGS = $(DEBUG)
|
||||
CFLAGS = @CFLAGS@ $(CPP_FLAGS) $(CC_FLAGS)
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
-FMODE = -m 640 # used by install
|
||||
+FMODE = -m 644 # used by install
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
LIBNAME = lib$(NAME).a
|
||||
diff -up xinetd-2.3.14/libs/src/xlog/Makefile.in.orig xinetd-2.3.14/libs/src/xlog/Makefile.in
|
||||
--- xinetd-2.3.14/libs/src/xlog/Makefile.in.orig 2003-02-19 18:29:27.000000000 +0100
|
||||
+++ xinetd-2.3.14/libs/src/xlog/Makefile.in 2008-09-18 10:19:41.000000000 +0200
|
||||
@@ -46,7 +46,7 @@ CC_FLAGS = $(DEBUG)
|
||||
CFLAGS = @CFLAGS@ $(CPP_FLAGS) $(CC_FLAGS)
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
-FMODE = -m 640 # used by install
|
||||
+FMODE = -m 644 # used by install
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
LIBNAME = lib$(NAME).a
|
@ -1,134 +0,0 @@
|
||||
diff -rup xinetd-2.3.14/xinetd/defs.h xinetd-2.3.14-mod/xinetd/defs.h
|
||||
--- xinetd-2.3.14/xinetd/defs.h 2012-01-18 14:22:20.811100158 +0100
|
||||
+++ xinetd-2.3.14-mod/xinetd/defs.h 2012-01-18 13:32:46.000000000 +0100
|
||||
@@ -114,11 +114,7 @@ union xsockaddr {
|
||||
* constants for limiting ps.rws.fd_list
|
||||
*/
|
||||
|
||||
-#ifdef HAVE_POLL
|
||||
-#define INIT_POLLFDS 4096
|
||||
-/* FIXME: not used */
|
||||
-#define MAX_POLLFDS 16384
|
||||
-#endif
|
||||
+#define MAX_FDS 4096
|
||||
|
||||
/*
|
||||
* When explicit values are given for enum's, that is because the structures
|
||||
diff -rup xinetd-2.3.14/xinetd/init.c xinetd-2.3.14-mod/xinetd/init.c
|
||||
--- xinetd-2.3.14/xinetd/init.c 2012-01-18 14:22:20.779100171 +0100
|
||||
+++ xinetd-2.3.14-mod/xinetd/init.c 2012-01-18 14:07:34.000000000 +0100
|
||||
@@ -151,7 +151,7 @@ static void set_fd_limit(void)
|
||||
}
|
||||
|
||||
if ( rl.rlim_max == RLIM_INFINITY )
|
||||
- rl.rlim_max = FD_SETSIZE;
|
||||
+ rl.rlim_max = MAX_FDS;
|
||||
|
||||
ps.ros.max_descriptors = rl.rlim_max ;
|
||||
#else /* ! RLIMIT_NOFILE */
|
||||
@@ -283,12 +283,12 @@ static void init_rw_state( void )
|
||||
ps.rws.descriptors_free = ps.ros.max_descriptors - DESCRIPTORS_RESERVED ;
|
||||
|
||||
#ifdef HAVE_POLL
|
||||
- ps.rws.pfds_allocated = INIT_POLLFDS ;
|
||||
+ ps.rws.pfds_allocated = ps.ros.max_descriptors ;
|
||||
ps.rws.pfd_array = (struct pollfd *)
|
||||
malloc( sizeof( struct pollfd ) * ps.rws.pfds_allocated ) ;
|
||||
if ( ps.rws.pfd_array == NULL )
|
||||
{
|
||||
- out_of_memory(func);
|
||||
+ out_of_memory(func) ;
|
||||
exit( 1 ) ;
|
||||
}
|
||||
ps.rws.pfds_last = 0 ;
|
||||
diff -rup xinetd-2.3.14/xinetd/redirect.c xinetd-2.3.14-mod/xinetd/redirect.c
|
||||
--- xinetd-2.3.14/xinetd/redirect.c 2012-01-18 14:22:20.780100170 +0100
|
||||
+++ xinetd-2.3.14-mod/xinetd/redirect.c 2012-01-18 12:22:08.000000000 +0100
|
||||
@@ -149,7 +149,7 @@ void redir_handler( struct server *serp
|
||||
#ifdef HAVE_POLL
|
||||
#define REDIR_DESCRIP_INDEX 0
|
||||
#define REDIR_SERVER_INDEX 1
|
||||
- pfd_array = (struct pollfd *)calloc(sizeof(struct pollfd),INIT_POLLFDS);
|
||||
+ pfd_array = (struct pollfd *)calloc(sizeof(struct pollfd),MAX_FDS);
|
||||
if (pfd_array == NULL)
|
||||
{
|
||||
msg( LOG_ERR, func, "Cannot allocate memory for file descriptors!\n");
|
||||
diff -rup xinetd-2.3.14/xinetd/service.c xinetd-2.3.14-mod/xinetd/service.c
|
||||
--- xinetd-2.3.14/xinetd/service.c 2012-01-18 14:22:20.812100157 +0100
|
||||
+++ xinetd-2.3.14-mod/xinetd/service.c 2012-01-18 14:07:27.000000000 +0100
|
||||
@@ -114,10 +114,6 @@ struct service *svc_make_special( struct
|
||||
|
||||
void svc_free( struct service *sp )
|
||||
{
|
||||
-#ifdef HAVE_POLL
|
||||
- *SVC_POLLFD( sp ) = ps.rws.pfd_array[--ps.rws.pfds_last] ;
|
||||
-#endif /* HAVE_POLL */
|
||||
-
|
||||
sc_free( SVC_CONF(sp) ) ;
|
||||
CLEAR( *sp ) ;
|
||||
FREE_SVC( sp ) ;
|
||||
@@ -332,20 +328,10 @@ status_e svc_activate( struct service *s
|
||||
}
|
||||
|
||||
#ifdef HAVE_POLL
|
||||
- if ( ps.rws.pfds_last >= ps.rws.pfds_allocated )
|
||||
+ if ( ps.rws.descriptors_free <= 0 )
|
||||
{
|
||||
- int pos;
|
||||
- ps.rws.pfds_allocated += INIT_POLLFDS;
|
||||
- struct pollfd *tmp = (struct pollfd *)realloc( ps.rws.pfd_array,
|
||||
- ps.rws.pfds_allocated*sizeof(struct pollfd));
|
||||
- if ( tmp == NULL )
|
||||
- {
|
||||
- out_of_memory( func );
|
||||
- return( FAILED );
|
||||
- }
|
||||
- ps.rws.pfd_array = tmp;
|
||||
- memset(&ps.rws.pfd_array[ps.rws.pfds_last], 0, (ps.rws.pfds_allocated-
|
||||
- ps.rws.pfds_last)*sizeof(struct pollfd));
|
||||
+ msg(LOG_ERR, func, "Maximum number of services reached") ;
|
||||
+ return( FAILED ) ;
|
||||
}
|
||||
if ( sp->svc_pfd_index >= 0 )
|
||||
{
|
||||
diff -rup xinetd-2.3.14/xinetd/tcpint.c xinetd-2.3.14-mod/xinetd/tcpint.c
|
||||
--- xinetd-2.3.14/xinetd/tcpint.c 2012-01-18 14:22:20.782100169 +0100
|
||||
+++ xinetd-2.3.14-mod/xinetd/tcpint.c 2012-01-18 13:30:22.000000000 +0100
|
||||
@@ -93,7 +93,7 @@ static void si_mux(void)
|
||||
#ifdef HAVE_POLL
|
||||
struct pollfd *pfd_array;
|
||||
int pfds_last = 0;
|
||||
- int pfds_allocated = INIT_POLLFDS;
|
||||
+ int pfds_allocated = MAX_FDS;
|
||||
#else
|
||||
fd_set socket_mask ;
|
||||
int mask_max ;
|
||||
@@ -102,7 +102,7 @@ static void si_mux(void)
|
||||
const char *func = "si_mux" ;
|
||||
|
||||
#ifdef HAVE_POLL
|
||||
- pfd_array = calloc(sizeof(struct pollfd),INIT_POLLFDS);
|
||||
+ pfd_array = calloc(sizeof(struct pollfd),MAX_FDS);
|
||||
pfd_array[ pfds_last ].fd = INT_REMOTE( ip ) ;
|
||||
pfd_array[ pfds_last++ ].events = POLLIN | POLLOUT;
|
||||
#else
|
||||
diff -rup xinetd-2.3.14/xinetd/udpint.c xinetd-2.3.14-mod/xinetd/udpint.c
|
||||
--- xinetd-2.3.14/xinetd/udpint.c 2012-01-18 14:22:20.783100169 +0100
|
||||
+++ xinetd-2.3.14-mod/xinetd/udpint.c 2012-01-18 12:22:00.000000000 +0100
|
||||
@@ -103,14 +103,14 @@ static void di_mux(void)
|
||||
#ifdef HAVE_POLL
|
||||
struct pollfd *pfd_array;
|
||||
int pfds_last = 0;
|
||||
- int pfds_allocated = INIT_POLLFDS;
|
||||
+ int pfds_allocated = MAX_FDS;
|
||||
#else
|
||||
fd_set socket_mask ;
|
||||
int mask_max ;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_POLL
|
||||
- pfd_array = (struct pollfd *)calloc(sizeof(struct pollfd),INIT_POLLFDS);
|
||||
+ pfd_array = (struct pollfd *)calloc(sizeof(struct pollfd),MAX_FDS);
|
||||
pfd_array[ pfds_last ].fd = INT_REMOTE( ip );
|
||||
pfd_array[ pfds_last++ ].events = POLLIN | POLLOUT;
|
||||
#else
|
@ -1,54 +0,0 @@
|
||||
diff -Napur xinetd-2.3.14.old/xinetd/access.c xinetd-2.3.14.new/xinetd/access.c
|
||||
--- xinetd-2.3.14.old/xinetd/access.c 2005-10-05 10:15:33.000000000 -0700
|
||||
+++ xinetd-2.3.14.new/xinetd/access.c 2012-02-22 20:12:09.120973124 -0800
|
||||
@@ -89,9 +89,20 @@ static void cps_service_restart(void)
|
||||
msg(LOG_ERR, func,
|
||||
"Activating service %s", SC_NAME(scp));
|
||||
} else {
|
||||
- msg(LOG_ERR, func,
|
||||
- "Error activating service %s",
|
||||
- SC_NAME(scp)) ;
|
||||
+ /* Try to restart the service */
|
||||
+ SVC_ATTEMPTS(sp) += 1;
|
||||
+ if ( SVC_ATTEMPTS(sp) < MAX_SVC_ATTEMPTS ) {
|
||||
+ msg(LOG_ERR, func,
|
||||
+ "Error activating service %s, retrying %d more time(s)...",
|
||||
+ SC_NAME(scp),
|
||||
+ MAX_SVC_ATTEMPTS - SVC_ATTEMPTS(sp));
|
||||
+ xtimer_add(cps_service_restart, 1);
|
||||
+ } else {
|
||||
+ /* Give up */
|
||||
+ msg(LOG_ERR, func,
|
||||
+ "Error activating service %s",
|
||||
+ SC_NAME(scp));
|
||||
+ }
|
||||
} /* else */
|
||||
}
|
||||
}
|
||||
diff -Napur xinetd-2.3.14.old/xinetd/service.c xinetd-2.3.14.new/xinetd/service.c
|
||||
--- xinetd-2.3.14.old/xinetd/service.c 2012-02-22 19:16:56.288912783 -0800
|
||||
+++ xinetd-2.3.14.new/xinetd/service.c 2012-02-22 19:25:03.059356909 -0800
|
||||
@@ -397,6 +408,7 @@ status_e svc_activate( struct service *s
|
||||
* Initialize the service data
|
||||
*/
|
||||
SVC_RUNNING_SERVERS(sp) = SVC_RETRIES(sp) = 0 ;
|
||||
+ SVC_ATTEMPTS(sp) = 0;
|
||||
|
||||
if ( SC_MUST_LISTEN( scp ) )
|
||||
(void) listen( SVC_FD(sp), LISTEN_BACKLOG ) ;
|
||||
diff -Napur xinetd-2.3.14.old/xinetd/xconfig.h xinetd-2.3.14.new/xinetd/xconfig.h
|
||||
--- xinetd-2.3.14.old/xinetd/xconfig.h 2003-02-19 09:29:28.000000000 -0800
|
||||
+++ xinetd-2.3.14.new/xinetd/xconfig.h 2012-02-22 19:20:20.360855514 -0800
|
||||
@@ -59,6 +59,12 @@
|
||||
#define DEFAULT_LOOP_TIME 10
|
||||
|
||||
/*
|
||||
+ * The number of times to attempt re-activating a service after being
|
||||
+ * deactivated due to the above.
|
||||
+ */
|
||||
+#define MAX_SVC_ATTEMPTS 30
|
||||
+
|
||||
+/*
|
||||
* Signal-to-action mapping
|
||||
*/
|
||||
#ifndef RECONFIG_HARD_SIG
|
@ -1,30 +0,0 @@
|
||||
commit 1b91f7b0f67fba11ea8bbcdddef844656434c53c
|
||||
Author: Jeffrey Bastian <jbastian@redhat.com>
|
||||
Date: Tue Aug 17 13:45:20 2010 -0500
|
||||
|
||||
Let RPC services bind to a port
|
||||
|
||||
diff --git a/xinetd/service.c b/xinetd/service.c
|
||||
index 9f21f93..5d26885 100644
|
||||
--- a/xinetd/service.c
|
||||
+++ b/xinetd/service.c
|
||||
@@ -165,6 +165,7 @@ static status_e activate_rpc( struct service *sp )
|
||||
socklen_t sin_len = sizeof(tsin);
|
||||
unsigned long vers ;
|
||||
struct service_config *scp = SVC_CONF( sp ) ;
|
||||
+ uint16_t service_port = SC_PORT( scp ) ;
|
||||
struct rpc_data *rdp = SC_RPCDATA( scp ) ;
|
||||
char *sid = SC_ID( scp ) ;
|
||||
unsigned registered_versions = 0 ;
|
||||
@@ -181,9 +182,11 @@ static status_e activate_rpc( struct service *sp )
|
||||
}
|
||||
if( SC_IPV4( scp ) ) {
|
||||
tsin.sa_in.sin_family = AF_INET ;
|
||||
+ tsin.sa_in.sin_port = htons( service_port ) ;
|
||||
sin_len = sizeof(struct sockaddr_in);
|
||||
} else if( SC_IPV6( scp ) ) {
|
||||
tsin.sa_in6.sin6_family = AF_INET6 ;
|
||||
+ tsin.sa_in6.sin6_port = htons( service_port );
|
||||
sin_len = sizeof(struct sockaddr_in6);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user