]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/conf.c
Move "ClientHost" and "ClientUserNick" to end of [Global] section
[ngircd-alex.git] / src / ngircd / conf.c
index 6c0e35170efd85e87d1c9a1395599afa12c88cf5..12893ad8f86446abaa1574280abefb14be6889a8 100644 (file)
@@ -7,13 +7,15 @@
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  * Please read the file COPYING, README and AUTHORS for more information.
- *
- * Configuration management (reading, parsing & validation)
  */
 
-
 #include "portab.h"
 
+/**
+ * @file
+ * Configuration management (reading, parsing & validation)
+ */
+
 #include "imp.h"
 #include <assert.h>
 #include <errno.h>
@@ -349,7 +351,9 @@ 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("  ClientHost = %s\n", Conf_ClientHost);
+       printf("  ClientUserNick = %s\n\n", yesno_to_str(Conf_ClientUserNick));
 
        puts("[FEATURES]");
        printf("  DNS = %s\n", yesno_to_str(Conf_DNS));
@@ -588,6 +592,8 @@ 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, "");
@@ -968,6 +974,18 @@ Handle_GLOBAL( int Line, char *Var, char *Arg )
                        Config_Error_TooLong( Line, Var );
                return;
        }
+       if( strcasecmp( Var, "ClientHost" ) == 0 ) {
+               /* Client hostname */
+               len = strlcpy( Conf_ClientHost, Arg, sizeof( Conf_ClientHost ));
+               if (len >= sizeof( Conf_ClientHost ))
+                       Config_Error_TooLong( Line, Var );
+               return;
+       }
+       if( strcasecmp( Var, "ClientUserNick" ) == 0 ) {
+               /* Use client nick name as user name */
+               Conf_ClientUserNick = Check_ArgIsTrue( Arg );
+               return;
+       }
        if( strcasecmp( Var, "Info" ) == 0 ) {
                /* Info text of server */
                len = strlcpy( Conf_ServerInfo, Arg, sizeof( Conf_ServerInfo ));