]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/conf.c
New option to scrub incoming CTCP commands
[ngircd-alex.git] / src / ngircd / conf.c
index b79715d9dec2b11153c40f858a3f11b378079dad..6bd224f3c11ea58189d081beb361d97783bf721f 100644 (file)
@@ -302,12 +302,11 @@ Conf_Test( void )
        config_valid = Validate_Config(true, false);
 
        /* Valid tty? */
-       if( isatty( fileno( stdin )) && isatty( fileno( stdout ))) {
-               puts( "OK, press enter to see a dump of your service configuration ..." );
-               getchar( );
-       } else {
-               puts( "Ok, dump of your server configuration follows:\n" );
-       }
+       if(isatty(fileno(stdin)) && isatty(fileno(stdout))) {
+               puts("OK, press enter to see a dump of your server configuration ...");
+               getchar();
+       } else
+               puts("Ok, dump of your server configuration follows:\n");
 
        puts("[GLOBAL]");
        printf("  Name = %s\n", Conf_ServerName);
@@ -375,6 +374,7 @@ Conf_Test( void )
 #ifndef STRICT_RFC
        printf("  RequireAuthPing = %s\n", yesno_to_str(Conf_AuthPing));
 #endif
+       printf("  ScrubCTCP = %s\n", yesno_to_str(Conf_ScrubCTCP));
 #ifdef SSL_SUPPORT
        printf("  SSLCertFile = %s\n", Conf_SSLOptions.CertFile);
        printf("  SSLDHFile = %s\n", Conf_SSLOptions.DHFile);
@@ -688,6 +688,7 @@ Set_Defaults(bool InitServers)
 #endif
        Conf_PredefChannelsOnly = false;
 #ifdef SYSLOG
+       Conf_ScrubCTCP = false;
 #ifdef LOG_LOCAL5
        Conf_SyslogFacility = LOG_LOCAL5;
 #else
@@ -881,7 +882,9 @@ Read_Config( bool ngircd_starting )
                                continue;
                        }
 
-                       Config_Error( LOG_ERR, "%s, line %d: Unknown section \"%s\"!", NGIRCd_ConfFile, line, section );
+                       Config_Error(LOG_ERR,
+                                    "%s, line %d: Unknown section \"%s\"!",
+                                    NGIRCd_ConfFile, line, section);
                        section[0] = 0x1;
                }
                if( section[0] == 0x1 ) continue;
@@ -1050,8 +1053,8 @@ WarnPAM(int UNUSED Line)
 /**
  * Handle legacy "NoXXX" options in [GLOBAL] section.
  *
- * TODO: This function and support for "NoXXX" should be removed starting
- * with ngIRCd release 19! (One release after marking it "deprecated").
+ * TODO: This function and support for "NoXXX" could be removed starting
+ * with ngIRCd release 19 (one release after marking it "deprecated").
  *
  * @param Var  Variable name.
  * @param Arg  Argument string.
@@ -1060,7 +1063,7 @@ WarnPAM(int UNUSED Line)
 static bool
 CheckLegacyNoOption(const char *Var, const char *Arg)
 {
-       if( strcasecmp( Var, "NoDNS" ) == 0 ) {
+       if(strcasecmp(Var, "NoDNS") == 0) {
                Conf_DNS = !Check_ArgIsTrue( Arg );
                return true;
        }
@@ -1168,9 +1171,9 @@ Handle_GLOBAL( int Line, char *Var, char *Arg )
        size_t len;
        const char *section;
 
-       assert( Line > 0 );
-       assert( Var != NULL );
-       assert( Arg != NULL );
+       assert(Line > 0);
+       assert(Var != NULL);
+       assert(Arg != NULL);
 
        if (strcasecmp(Var, "Name") == 0) {
                len = strlcpy(Conf_ServerName, Arg, sizeof(Conf_ServerName));
@@ -1232,12 +1235,13 @@ Handle_GLOBAL( int Line, char *Var, char *Arg )
                if (len == 0)
                        return;
                if (len >= LINE_LEN) {
-                       Config_Error_TooLong( Line, Var );
+                       Config_Error_TooLong(Line, Var);
                        return;
                }
                if (!array_copyb(&Conf_Motd, Arg, len + 1))
-                       Config_Error(LOG_WARNING, "%s, line %d: Could not append MotdPhrase: %s",
-                                                       NGIRCd_ConfFile, Line, strerror(errno));
+                       Config_Error(LOG_WARNING,
+                                    "%s, line %d: Could not append MotdPhrase: %s",
+                                    NGIRCd_ConfFile, Line, strerror(errno));
                Using_MotdFile = false;
                return;
        }
@@ -1281,8 +1285,12 @@ 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",
-                                       NGIRCd_ConfFile, Line, NoNo(Var), InvertArg(Arg));
+               /* TODO: This function and support for "NoXXX" could be
+                * be removed starting with ngIRCd release 19 (one release
+                * after marking it "deprecated"). */
+               Config_Error(LOG_WARNING,
+                            "%s, line %d (section \"Global\"): \"No\"-Prefix is deprecated, use \"%s = %s\" in [Options] section!",
+                            NGIRCd_ConfFile, Line, NoNo(Var), InvertArg(Arg));
                if (strcasecmp(Var, "NoIdent") == 0)
                        WarnIdent(Line);
                else if (strcasecmp(Var, "NoPam") == 0)
@@ -1453,6 +1461,10 @@ Handle_OPTIONS(int Line, char *Var, char *Arg)
                return;
        }
 #endif
+       if (strcasecmp(Var, "ScrubCTCP") == 0) {
+               Conf_ScrubCTCP = Check_ArgIsTrue(Arg);
+               return;
+       }
 #ifdef SSL_SUPPORT
        if (strcasecmp(Var, "SSLCertFile") == 0) {
                assert(Conf_SSLOptions.CertFile == NULL);
@@ -1927,8 +1939,13 @@ va_dcl
        vsnprintf( msg, MAX_LOG_MSG_LEN, Format, ap );
        va_end( ap );
 
-       if (Use_Log) Log( Level, "%s", msg );
-       else puts( msg );
+       if (!Use_Log) {
+               if (Level <= LOG_WARNING)
+                       printf(" - %s\n", msg);
+               else
+                       puts(msg);
+       } else
+               Log(Level, "%s", msg);
 }
 
 #ifdef DEBUG