]> arthur.barton.de Git - ngircd-alex.git/commitdiff
ClientUserNick setting
authorGabor Adam Toth <tg@tgbit.net>
Mon, 20 Dec 2010 02:35:17 +0000 (03:35 +0100)
committerAlexander Barton <alex@barton.de>
Wed, 16 Mar 2011 22:15:50 +0000 (23:15 +0100)
doc/sample-ngircd.conf.tmpl
src/ngircd/client.c
src/ngircd/conf.c
src/ngircd/conf.h

index bb9350160c337ea27aac70cba2852bd5c6d663f2..7cfe08f7cc8000df1d3f5ec26c8e498833cd5c48 100644 (file)
@@ -27,6 +27,9 @@
        # Set this hostname for every client instead of the real one
        ;ClientHost = irc.the.net
 
+       # Set every clients' user name to their nick name
+       ;ClientUserNick = yes
+
        # Info text of the server. This will be shown by WHOIS and
        # LINKS requests for example.
        Info = Server Info Text
index 11decc8689584e116b6505a3369f20cbcd59f073..1a6ad931f8b128604296c17c2b3ebbac64bb7bc3 100644 (file)
@@ -335,6 +335,9 @@ Client_SetID( CLIENT *Client, const char *ID )
        
        strlcpy( Client->id, ID, sizeof( Client->id ));
 
+       if (Conf_ClientUserNick)
+               strlcpy( Client->user, ID, sizeof( Client->user ));
+
        /* Hash */
        Client->hash = Hash( Client->id );
 } /* Client_SetID */
@@ -348,6 +351,8 @@ Client_SetUser( CLIENT *Client, const char *User, bool Idented )
        assert( Client != NULL );
        assert( User != NULL );
 
+       if (Conf_ClientUserNick) return;
+
        if (Idented) {
                strlcpy(Client->user, User, sizeof(Client->user));
        } else {
index 622cb9f8f3667a0c7b983a7f982e28312b37c162..487c1eb50bc1397bc8482abbc69275df676610f0 100644 (file)
@@ -296,6 +296,7 @@ Conf_Test( void )
        puts( "[GLOBAL]" );
        printf("  Name = %s\n", Conf_ServerName);
        printf("  ClientHost = %s\n", Conf_ClientHost);
+       printf("  ClientUserNick = %s\n", yesno_to_str(Conf_ClientUserNick));
        printf("  Info = %s\n", Conf_ServerInfo);
 #ifndef PAM
        printf("  Password = %s\n", Conf_ServerPwd);
@@ -592,6 +593,7 @@ Set_Defaults(bool InitServers)
 
        strcpy(Conf_ServerName, "");
        strcpy(Conf_ClientHost, "");
+       Conf_ClientUserNick = false;
        snprintf(Conf_ServerInfo, sizeof Conf_ServerInfo, "%s %s",
                 PACKAGE_NAME, PACKAGE_VERSION);
        strcpy(Conf_ServerPwd, "");
@@ -979,6 +981,11 @@ Handle_GLOBAL( int Line, char *Var, char *Arg )
                        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 ));
index 1747139df06055f53a4f5e89407b1adab11a1f6e..10b64076f638b7760056b661f1ba792d826521c3 100644 (file)
@@ -99,6 +99,7 @@ GLOBAL char Conf_ServerName[CLIENT_ID_LEN];
 
 /** Hostname of the clients */
 GLOBAL char Conf_ClientHost[CLIENT_ID_LEN];
+GLOBAL bool Conf_ClientUserNick;
 
 /** Server info text */
 GLOBAL char Conf_ServerInfo[CLIENT_INFO_LEN];