Module: ngircd.git Branch: master Commit: 71d8c371711f70e2d4b7ef9c908443a018cd6701 URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=71d8c...
Author: Gabor Adam Toth tg@tgbit.net Date: Mon Dec 20 03:35:17 2010 +0100
ClientUserNick setting
---
doc/sample-ngircd.conf.tmpl | 3 +++ src/ngircd/client.c | 5 +++++ src/ngircd/conf.c | 7 +++++++ src/ngircd/conf.h | 1 + 4 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/doc/sample-ngircd.conf.tmpl b/doc/sample-ngircd.conf.tmpl index bb93501..7cfe08f 100644 --- a/doc/sample-ngircd.conf.tmpl +++ b/doc/sample-ngircd.conf.tmpl @@ -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 diff --git a/src/ngircd/client.c b/src/ngircd/client.c index 11decc8..1a6ad93 100644 --- a/src/ngircd/client.c +++ b/src/ngircd/client.c @@ -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 { diff --git a/src/ngircd/conf.c b/src/ngircd/conf.c index 622cb9f..487c1eb 100644 --- a/src/ngircd/conf.c +++ b/src/ngircd/conf.c @@ -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 )); diff --git a/src/ngircd/conf.h b/src/ngircd/conf.h index 1747139..10b6407 100644 --- a/src/ngircd/conf.h +++ b/src/ngircd/conf.h @@ -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];