Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37519166
en ru br
Репозитории 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
www.altlinux.org/Changes

Группа :: Система/Основа
Пакет: 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];
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin