Репозитории ALT
S: | 2.3.15-alt6 |
5.1: | 2.3.14-alt3 |
4.1: | 2.3.14-alt3 |
4.0: | 2.3.14-alt2 |
3.0: | 2.3.13-alt4 |
Группа :: Система/Основа
Пакет: xinetd
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: xinetd-2.3.13-rh-libwrap.patch
Скачать
Скачать
diff -ru xinetd-2.3.12.old/xinetd/access.c xinetd-2.3.12.libwrap/xinetd/access.c
--- xinetd-2.3.12.old/xinetd/access.c 2003-06-23 17:09:01.000000000 -0400
+++ xinetd-2.3.12.libwrap/xinetd/access.c 2003-08-08 11:36:13.000000000 -0400
@@ -229,6 +229,10 @@
else
server++;
+ if ( scp->sc_libwrap != NULL )
+ {
+ server = scp->sc_libwrap;
+ }
if ( server == NULL )
{
msg(deny_severity, func,
diff -ru xinetd-2.3.12.old/xinetd/attr.h xinetd-2.3.12.libwrap/xinetd/attr.h
--- xinetd-2.3.12.old/xinetd/attr.h 2003-05-28 20:27:03.000000000 -0400
+++ xinetd-2.3.12.libwrap/xinetd/attr.h 2003-08-08 11:36:35.000000000 -0400
@@ -60,6 +60,7 @@
#define A_ENABLED 42
#define A_DISABLED 43
#define A_MDNS 44
+#define A_LIBWRAP 45
/*
* SERVICE_ATTRIBUTES is the number of service attributes and also
diff -ru xinetd-2.3.12.old/xinetd/parse.c xinetd-2.3.12.libwrap/xinetd/parse.c
--- xinetd-2.3.12.old/xinetd/parse.c 2003-07-12 15:17:53.000000000 -0400
+++ xinetd-2.3.12.libwrap/xinetd/parse.c 2003-08-08 11:37:37.000000000 -0400
@@ -52,6 +52,9 @@
{ "group", A_GROUP, 1, group_parser },
{ "server", A_SERVER, 1, server_parser },
{ "server_args", A_SERVER_ARGS, -1, server_args_parser },
+#ifdef LIBWRAP
+ { "libwrap", A_LIBWRAP, 1, libwrap_parser },
+#endif
{ "instances", A_INSTANCES, 1, instances_parser },
{ "log_on_success", A_LOG_ON_SUCCESS,-2, log_on_success_parser },
{ "log_on_failure", A_LOG_ON_FAILURE,-2, log_on_failure_parser },
diff -ru xinetd-2.3.12.old/xinetd/parsers.c xinetd-2.3.12.libwrap/xinetd/parsers.c
--- xinetd-2.3.12.old/xinetd/parsers.c 2003-06-01 12:26:18.000000000 -0400
+++ xinetd-2.3.12.libwrap/xinetd/parsers.c 2003-08-08 11:52:02.000000000 -0400
@@ -373,6 +373,23 @@
return( OK );
}
+#ifdef LIBWRAP
+status_e libwrap_parser( pset_h values,
+ struct service_config *scp,
+ enum assign_op op )
+{
+ char *libwrap = (char *) pset_pointer( values, 0 ) ;
+ const char *func = "libwrap_parser" ;
+
+ scp->sc_libwrap = new_string( libwrap ) ;
+ if ( scp->sc_libwrap == NULL )
+ {
+ out_of_memory( func ) ;
+ return( FAILED ) ;
+ }
+ return( OK ) ;
+}
+#endif
status_e server_parser( pset_h values,
struct service_config *scp,
diff -ru xinetd-2.3.12.old/xinetd/parsers.h xinetd-2.3.12.libwrap/xinetd/parsers.h
--- xinetd-2.3.12.old/xinetd/parsers.h 2003-05-28 20:27:03.000000000 -0400
+++ xinetd-2.3.12.libwrap/xinetd/parsers.h 2003-08-08 11:52:02.000000000 -0400
@@ -18,6 +18,9 @@
status_e group_parser(pset_h, struct service_config *, enum assign_op) ;
status_e server_parser(pset_h, struct service_config *, enum assign_op) ;
status_e server_args_parser(pset_h, struct service_config *, enum assign_op) ;
+#ifdef LIBWRAP
+status_e libwrap_parser(pset_h, struct service_config *, enum assign_op) ;
+#endif
status_e instances_parser(pset_h, struct service_config *, enum assign_op) ;
status_e log_on_success_parser(pset_h, struct service_config *, enum assign_op) ;
status_e log_on_failure_parser(pset_h, struct service_config *, enum assign_op) ;
diff -ru xinetd-2.3.12.old/xinetd/sconf.h xinetd-2.3.12.libwrap/xinetd/sconf.h
--- xinetd-2.3.12.old/xinetd/sconf.h 2003-06-25 15:43:56.000000000 -0400
+++ xinetd-2.3.12.libwrap/xinetd/sconf.h 2003-08-08 11:52:02.000000000 -0400
@@ -112,6 +112,7 @@
gid_t sc_user_gid ; /* gid corresponding to uid */
gid_t sc_gid ; /* gid corresponding to group */
char *sc_server ;
+ char *sc_libwrap ;
char **sc_server_argv ;
int sc_instances ;
int sc_nice ; /* argument for nice(3) */
diff -ru xinetd-2.3.12.old/xinetd/xinetd.conf.man xinetd-2.3.12.libwrap/xinetd/xinetd.conf.man
--- xinetd-2.3.12.old/xinetd/xinetd.conf.man 2003-08-06 14:54:01.000000000 -0400
+++ xinetd-2.3.12.libwrap/xinetd/xinetd.conf.man 2003-08-08 11:53:25.000000000 -0400
@@ -223,6 +223,13 @@
determines the arguments passed to the server. In contrast to \fBinetd\fP,
the server name should \fInot\fP be included in \fIserver_args\fP.
.TP
+.B libwrap
+overrides the service name passed to libwrap (which defaults to the
+server name, the first server_args component with NAMEINARGS, the id
+for internal services and the service name for redirected services).
+This attribute is only valid if xinetd has been configured with the libwrap
+option.
+.TP
.B only_from
determines the remote hosts to which the particular
service is available.
--- xinetd-2.3.13/xinetd/sconf.c.libwrap 2003-08-06 02:12:10.000000000 -0400
+++ xinetd-2.3.13/xinetd/sconf.c 2004-02-02 12:06:54.000000000 -0500
@@ -72,6 +72,7 @@
COND_FREE( SC_ID(scp) ) ;
COND_FREE( SC_PROTONAME(scp) ) ;
COND_FREE( SC_SERVER(scp) ) ;
+ COND_FREE( scp->sc_libwrap );
COND_FREE( (char *)SC_REDIR_ADDR(scp) ) ;
COND_FREE( (char *)SC_BIND_ADDR(scp) ) ;
COND_FREE( (char *)SC_ORIG_BIND_ADDR(scp) ) ;
@@ -352,6 +353,12 @@
Sputchar( fd, '\n' ) ;
}
+#ifdef LIBWRAP
+ if ( scp->sc_libwrap != NULL )
+ {
+ tabprint ( fd, tab_level + 1, "Libwrap = %s\n", scp->sc_libwrap );
+ }
+#endif
if ( SC_REDIR_ADDR(scp) != NULL )
{
char redirname[NI_MAXHOST];