X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=src%2Fngircd%2Fconf.c;h=5819ef17eda92869fcadecefb627face7d64a374;hp=5a992eb58830a4b8e4e532c15ccdf2d1f1700277;hb=1964bda252ceb499f4a1f76f3e06d996acc2c821;hpb=23ce0393b23779f19d6d56103c46f9d929fdef53 diff --git a/src/ngircd/conf.c b/src/ngircd/conf.c index 5a992eb5..5819ef17 100644 --- a/src/ngircd/conf.c +++ b/src/ngircd/conf.c @@ -62,6 +62,7 @@ static bool Read_Config PARAMS(( bool ngircd_starting )); static bool Validate_Config PARAMS(( bool TestOnly, bool Rehash )); static void Handle_GLOBAL PARAMS(( int Line, char *Var, char *Arg )); +static void Handle_FEATURES PARAMS(( int Line, char *Var, char *Arg )); static void Handle_OPERATOR PARAMS(( int Line, char *Var, char *Arg )); static void Handle_SERVER PARAMS(( int Line, char *Var, char *Arg )); static void Handle_CHANNEL PARAMS(( int Line, char *Var, char *Arg )); @@ -232,7 +233,7 @@ opers_free(void) { struct Conf_Oper *op; size_t len; - + len = array_length(&Conf_Opers, sizeof(*op)); op = array_start(&Conf_Opers); while (len--) { @@ -247,7 +248,7 @@ opers_puts(void) { struct Conf_Oper *op; size_t len; - + len = array_length(&Conf_Opers, sizeof(*op)); op = array_start(&Conf_Opers); while (len--) { @@ -341,11 +342,6 @@ Conf_Test( void ) printf(" OperServerMode = %s\n", yesno_to_str(Conf_OperServerMode)); printf(" AllowRemoteOper = %s\n", yesno_to_str(Conf_AllowRemoteOper)); printf(" PredefChannelsOnly = %s\n", yesno_to_str(Conf_PredefChannelsOnly)); - printf(" DNS = %s\n", yesno_to_str(Conf_DNS)); - printf(" Ident = %s\n", yesno_to_str(Conf_Ident)); - printf(" PAM = %s\n", yesno_to_str(Conf_PAM)); - printf(" ZeroConf = %s\n", yesno_to_str(Conf_ZeroConf)); - #ifdef WANT_IPV6 printf(" ConnectIPv4 = %s\n", yesno_to_str(Conf_ConnectIPv6)); printf(" ConnectIPv6 = %s\n", yesno_to_str(Conf_ConnectIPv4)); @@ -355,6 +351,13 @@ Conf_Test( void ) printf(" MaxJoins = %d\n", Conf_MaxJoins > 0 ? Conf_MaxJoins : -1); printf(" MaxNickLength = %u\n\n", Conf_MaxNickLength - 1); + puts("[FEATURES]"); + printf(" DNS = %s\n", yesno_to_str(Conf_DNS)); + printf(" Ident = %s\n", yesno_to_str(Conf_Ident)); + printf(" PAM = %s\n", yesno_to_str(Conf_PAM)); + printf(" ZeroConf = %s\n", yesno_to_str(Conf_ZeroConf)); + puts(""); + opers_puts(); for( i = 0; i < MAX_SERVERS; i++ ) { @@ -818,6 +821,7 @@ Read_Config( bool ngircd_starting ) arg = ptr + 1; ngt_TrimStr( arg ); if( strcasecmp( section, "[GLOBAL]" ) == 0 ) Handle_GLOBAL( line, var, arg ); + else if( strcasecmp( section, "[FEATURES]" ) == 0 ) Handle_FEATURES( line, var, arg ); else if( strcasecmp( section, "[OPERATOR]" ) == 0 ) Handle_OPERATOR( line, var, arg ); else if( strcasecmp( section, "[SERVER]" ) == 0 ) Handle_SERVER( line, var, arg ); else if( strcasecmp( section, "[CHANNEL]" ) == 0 ) Handle_CHANNEL( line, var, arg ); @@ -1117,7 +1121,7 @@ Handle_GLOBAL( int Line, char *Var, char *Arg ) if (CheckLegacyNoOption(Var, Arg)) { Config_Error(LOG_WARNING, "%s, line %d: \"No\"-Prefix has been removed, use " - "\"%s = %s\" instead", + "\"%s = %s\" in [FEATURES] section instead", NGIRCd_ConfFile, Line, NoNo(Var), InvertArg(Arg)); if (strcasecmp(Var, "NoIdent") == 0) WarnIdent(Line); @@ -1125,28 +1129,6 @@ Handle_GLOBAL( int Line, char *Var, char *Arg ) WarnPAM(Line); return; } - if( strcasecmp( Var, "DNS" ) == 0 ) { - /* do reverse dns lookups when clients connect? */ - Conf_DNS = Check_ArgIsTrue( Arg ); - return; - } - if (strcasecmp(Var, "Ident") == 0) { - /* do IDENT lookups when clients connect? */ - Conf_Ident = Check_ArgIsTrue(Arg); - WarnIdent(Line); - return; - } - if(strcasecmp(Var, "PAM") == 0) { - /* use PAM library to authenticate users */ - Conf_PAM = Check_ArgIsTrue(Arg); - WarnPAM(Line); - return; - } - if(strcasecmp(Var, "ZeroConf") == 0) { - /* register services using ZeroConf */ - Conf_ZeroConf = Check_ArgIsTrue(Arg); - return; - } #ifdef WANT_IPV6 /* the default setting for all the WANT_IPV6 special options is 'true' */ if( strcasecmp( Var, "ConnectIPv6" ) == 0 ) { @@ -1271,6 +1253,37 @@ Handle_GLOBAL( int Line, char *Var, char *Arg ) } /* Handle_GLOBAL */ +static void +Handle_FEATURES(int Line, char *Var, char *Arg) +{ + assert( Line > 0 ); + assert( Var != NULL ); + assert( Arg != NULL ); + + if( strcasecmp( Var, "DNS" ) == 0 ) { + /* do reverse dns lookups when clients connect? */ + Conf_DNS = Check_ArgIsTrue( Arg ); + return; + } + if (strcasecmp(Var, "Ident") == 0) { + /* do IDENT lookups when clients connect? */ + Conf_Ident = Check_ArgIsTrue(Arg); + WarnIdent(Line); + return; + } + if(strcasecmp(Var, "PAM") == 0) { + /* use PAM library to authenticate users */ + Conf_PAM = Check_ArgIsTrue(Arg); + WarnPAM(Line); + return; + } + if(strcasecmp(Var, "ZeroConf") == 0) { + /* register services using ZeroConf */ + Conf_ZeroConf = Check_ArgIsTrue(Arg); + return; + } +} + static void Handle_OPERATOR( int Line, char *Var, char *Arg ) {