static psi_h iter ;
+extern int inetd_ipv6;
+
static int get_next_inet_entry( int fd, pset_h sconfs,
struct service_config *defaults);
}
SC_SERVER_ARGV(scp)[u] = p;
}
+
+ /* Set the IPv6 flag if we were passed the -inetd_ipv6 option */
+ if ( inetd_ipv6 )
+ {
+ nvp = nv_find_value( service_flags, "IPv6" );
+ if ( nvp == NULL )
+ {
+ parsemsg( LOG_WARNING, func, "inetd.conf - Bad foo %s", name ) ;
+ pset_destroy(args);
+ sc_free(scp);
+ return -1;
+ }
+ M_SET(SC_XFLAGS(scp), nvp->value);
+ }
+
/* Set the reuse flag, as this is the default for inetd */
nvp = nv_find_value( service_flags, "REUSE" );
if ( nvp == NULL )
unsigned logprocs_option_arg ;
int stayalive_option=0;
char *program_name ;
+int inetd_ipv6 = 0 ;
int inetd_compat = 0 ;
int dont_fork = 0;
fprintf(stderr, "\n");
exit(0);
}
+ else if ( strcmp ( &argv[ arg ][ 1 ], "inetd_ipv6" ) == 0 )
+ inetd_ipv6 = 1;
else if ( strcmp ( &argv[ arg ][ 1 ], "inetd_compat" ) == 0 )
inetd_compat = 1;
}
standard xinetd config files. /etc/inetd.conf is read after the
standard xinetd config files.
.TP
+.BI \-inetd_ipv6
+This option causes xinetd to bind to IPv6 (AF_INET6) addresses for
+inetd compatibility lines (see previous option). This only affects
+how /etc/inetd.conf is interpreted and thus only has any effect if
+the \-inetd_compat option is also used.
+.TP
.BI \-cc " interval"
This option instructs
.B xinetd