]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/conf.c
Merge branch 'AuthPing'
[ngircd-alex.git] / src / ngircd / conf.c
index 12893ad8f86446abaa1574280abefb14be6889a8..a00049eef97cc29630a6d22af8e556f7efd61a2c 100644 (file)
@@ -352,10 +352,14 @@ Conf_Test( void )
        printf("  MaxConnectionsIP = %d\n", Conf_MaxConnectionsIP);
        printf("  MaxJoins = %d\n", Conf_MaxJoins > 0 ? Conf_MaxJoins : -1);
        printf("  MaxNickLength = %u\n", Conf_MaxNickLength - 1);
-       printf("  ClientHost = %s\n", Conf_ClientHost);
-       printf("  ClientUserNick = %s\n\n", yesno_to_str(Conf_ClientUserNick));
+       printf("  NoticeAuth = %s\n", yesno_to_str(Conf_NoticeAuth));
+       printf("  CloakHost = %s\n", Conf_CloakHost);
+       printf("  CloakUserToNick = %s\n", yesno_to_str(Conf_CloakUserToNick));
+#ifndef STRICT_RFC
+       printf("  RequireAuthPing = %s\n", yesno_to_str(Conf_AuthPing));
+#endif
 
-       puts("[FEATURES]");
+       printf("\n[FEATURES]\n");
        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));
@@ -592,8 +596,6 @@ Set_Defaults(bool InitServers)
        int i;
 
        strcpy(Conf_ServerName, "");
-       strcpy(Conf_ClientHost, "");
-       Conf_ClientUserNick = false;
        snprintf(Conf_ServerInfo, sizeof Conf_ServerInfo, "%s %s",
                 PACKAGE_NAME, PACKAGE_VERSION);
        strcpy(Conf_ServerPwd, "");
@@ -616,6 +618,7 @@ Set_Defaults(bool InitServers)
        Conf_PongTimeout = 20;
        Conf_ConnectRetry = 60;
        Conf_DNS = true;
+       Conf_NoticeAuth = false;
 
        Conf_Oper_Count = 0;
        Conf_Channel_Count = 0;
@@ -633,6 +636,9 @@ Set_Defaults(bool InitServers)
        Conf_MaxJoins = 10;
        Conf_MaxNickLength = CLIENT_NICK_LEN_DEFAULT;
 
+       strcpy(Conf_CloakHost, "");
+       Conf_CloakUserToNick = false;
+
 #ifdef SYSLOG
 #ifdef LOG_LOCAL5
        Conf_SyslogFacility = LOG_LOCAL5;
@@ -640,6 +646,11 @@ Set_Defaults(bool InitServers)
        Conf_SyslogFacility = 0;
 #endif
 #endif
+
+#ifndef STRICT_RFC
+       Conf_AuthPing = false;
+#endif
+
        Set_Defaults_Optional();
 
        /* Initialize server configuration structures */
@@ -974,16 +985,16 @@ Handle_GLOBAL( int Line, char *Var, char *Arg )
                        Config_Error_TooLong( Line, Var );
                return;
        }
-       if( strcasecmp( Var, "ClientHost" ) == 0 ) {
+       if( strcasecmp( Var, "CloakHost" ) == 0 ) {
                /* Client hostname */
-               len = strlcpy( Conf_ClientHost, Arg, sizeof( Conf_ClientHost ));
-               if (len >= sizeof( Conf_ClientHost ))
+               len = strlcpy( Conf_CloakHost, Arg, sizeof( Conf_CloakHost ));
+               if (len >= sizeof( Conf_CloakHost ))
                        Config_Error_TooLong( Line, Var );
                return;
        }
-       if( strcasecmp( Var, "ClientUserNick" ) == 0 ) {
+       if( strcasecmp( Var, "CloakUserToNick" ) == 0 ) {
                /* Use client nick name as user name */
-               Conf_ClientUserNick = Check_ArgIsTrue( Arg );
+               Conf_CloakUserToNick = Check_ArgIsTrue( Arg );
                return;
        }
        if( strcasecmp( Var, "Info" ) == 0 ) {
@@ -1127,8 +1138,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\" in [FEATURES] section instead",
+               Config_Error(LOG_WARNING, "%s, line %d: \"No\"-Prefix has been removed, use \"%s = %s\" in [FEATURES] section instead",
                                        NGIRCd_ConfFile, Line, NoNo(Var), InvertArg(Arg));
                if (strcasecmp(Var, "NoIdent") == 0)
                        WarnIdent(Line);
@@ -1192,6 +1202,11 @@ Handle_GLOBAL( int Line, char *Var, char *Arg )
                Conf_MaxNickLength = Handle_MaxNickLength(Line, Arg);
                return;
        }
+       if(strcasecmp(Var, "NoticeAuth") == 0) {
+               /* send NOTICE AUTH messages to clients on connect */
+               Conf_NoticeAuth = Check_ArgIsTrue(Arg);
+               return;
+       }
 
        if( strcasecmp( Var, "Listen" ) == 0 ) {
                /* IP-Address to bind sockets */
@@ -1248,6 +1263,13 @@ Handle_GLOBAL( int Line, char *Var, char *Arg )
                                                           Conf_SyslogFacility);
                return;
        }
+#endif
+#ifndef STRICT_RFC
+       if (strcasecmp(Var, "RequireAuthPing") == 0 ) {
+               /* Require new clients to do an "autheticatin PING-PONG" */
+               Conf_AuthPing = Check_ArgIsTrue(Arg);
+               return;
+       }
 #endif
        Config_Error(LOG_ERR, "%s, line %d (section \"Global\"): Unknown variable \"%s\"!",
                                                                NGIRCd_ConfFile, Line, Var);
@@ -1278,6 +1300,10 @@ Handle_FEATURES(int Line, char *Var, char *Arg)
                WarnPAM(Line);
                return;
        }
+
+       Config_Error(LOG_ERR,
+                    "%s, line %d (section \"Features\"): Unknown variable \"%s\"!",
+                    NGIRCd_ConfFile, Line, Var);
 }
 
 static void