]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/conf.c
Merge branch 'AuthPing'
[ngircd-alex.git] / src / ngircd / conf.c
index 622cb9f8f3667a0c7b983a7f982e28312b37c162..a00049eef97cc29630a6d22af8e556f7efd61a2c 100644 (file)
@@ -295,7 +295,6 @@ Conf_Test( void )
 
        puts( "[GLOBAL]" );
        printf("  Name = %s\n", Conf_ServerName);
-       printf("  ClientHost = %s\n", Conf_ClientHost);
        printf("  Info = %s\n", Conf_ServerInfo);
 #ifndef PAM
        printf("  Password = %s\n", Conf_ServerPwd);
@@ -352,9 +351,15 @@ Conf_Test( void )
        printf("  MaxConnections = %ld\n", Conf_MaxConnections);
        printf("  MaxConnectionsIP = %d\n", Conf_MaxConnectionsIP);
        printf("  MaxJoins = %d\n", Conf_MaxJoins > 0 ? Conf_MaxJoins : -1);
-       printf("  MaxNickLength = %u\n\n", Conf_MaxNickLength - 1);
+       printf("  MaxNickLength = %u\n", Conf_MaxNickLength - 1);
+       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));
@@ -591,7 +596,6 @@ Set_Defaults(bool InitServers)
        int i;
 
        strcpy(Conf_ServerName, "");
-       strcpy(Conf_ClientHost, "");
        snprintf(Conf_ServerInfo, sizeof Conf_ServerInfo, "%s %s",
                 PACKAGE_NAME, PACKAGE_VERSION);
        strcpy(Conf_ServerPwd, "");
@@ -614,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;
@@ -631,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;
@@ -638,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 */
@@ -972,13 +985,18 @@ 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, "CloakUserToNick" ) == 0 ) {
+               /* Use client nick name as user name */
+               Conf_CloakUserToNick = Check_ArgIsTrue( Arg );
+               return;
+       }
        if( strcasecmp( Var, "Info" ) == 0 ) {
                /* Info text of server */
                len = strlcpy( Conf_ServerInfo, Arg, sizeof( Conf_ServerInfo ));
@@ -1120,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);
@@ -1185,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 */
@@ -1241,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);
@@ -1271,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