X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=src%2Fngircd%2Fclient.c;h=92262b5d8b00c0ae3248c3010032ee8ff13ac0e1;hp=f163f72c371e2a84121a84d178c3552530109b3d;hb=48326e061aacd954e24f76c53ded10448cbc28eb;hpb=a6dd2e33c2c9e60bbd286bb07a7a6273566dec7d diff --git a/src/ngircd/client.c b/src/ngircd/client.c index f163f72c..92262b5d 100644 --- a/src/ngircd/client.c +++ b/src/ngircd/client.c @@ -440,18 +440,6 @@ Client_SetFlags( CLIENT *Client, const char *Flags ) } /* Client_SetFlags */ -GLOBAL void -Client_SetPassword( CLIENT *Client, const char *Pwd ) -{ - /* set password sent by client */ - - assert( Client != NULL ); - assert( Pwd != NULL ); - - strlcpy(Client->pwd, Pwd, sizeof(Client->pwd)); -} /* Client_SetPassword */ - - GLOBAL void Client_SetAway( CLIENT *Client, const char *Txt ) { @@ -699,27 +687,36 @@ Client_Hostname(CLIENT *Client) /** * Get potentially cloaked hostname of a client. + * * If the client has not enabled cloaking, the real hostname is used. + * Please note that this function uses a global static buffer, so you can't + * nest invocations without overwriting earlier results! + * * @param Client Pointer to client structure * @return Pointer to client hostname */ GLOBAL char * Client_HostnameCloaked(CLIENT *Client) { + static char Cloak_Buffer[CLIENT_HOST_LEN]; + assert(Client != NULL); - if (Client_HasMode(Client, 'x')) - return Client_ID(Client->introducer); - else + + if (!Client_HasMode(Client, 'x')) return Client_Hostname(Client); -} /* Client_HostnameCloaked */ + /* Do simple mapping to the server ID? */ + if (!*Conf_CloakHostModeX) + return Client_ID(Client->introducer); -GLOBAL char * -Client_Password( CLIENT *Client ) -{ - assert( Client != NULL ); - return Client->pwd; -} /* Client_Password */ + strlcpy(Cloak_Buffer, Client->host, CLIENT_HOST_LEN); + strlcat(Cloak_Buffer, Conf_CloakHostSalt, CLIENT_HOST_LEN); + + snprintf(Cloak_Buffer, CLIENT_HOST_LEN, Conf_CloakHostModeX, + Hash(Cloak_Buffer)); + + return Cloak_Buffer; +} /* Client_HostnameCloaked */ GLOBAL char * @@ -812,10 +809,12 @@ Client_Mask( CLIENT *Client ) /** * Return ID of a client with cloaked hostname: "client!user@server-name" + * * This client ID is used for IRC prefixes, for example. * Please note that this function uses a global static buffer, so you can't * nest invocations without overwriting earlier results! * If the client has not enabled cloaking, the real hostname is used. + * * @param Client Pointer to client structure * @return Pointer to global buffer containing the client ID */ @@ -823,7 +822,6 @@ GLOBAL char * Client_MaskCloaked(CLIENT *Client) { static char Mask_Buffer[GETID_LEN]; - char Cloak_Buffer[GETID_LEN]; assert (Client != NULL); @@ -831,16 +829,8 @@ Client_MaskCloaked(CLIENT *Client) if (!Client_HasMode(Client, 'x')) return Client_Mask(Client); - if(*Conf_CloakHostModeX) { - strlcpy(Cloak_Buffer, Client->host, GETID_LEN); - strlcat(Cloak_Buffer, Conf_CloakHostSalt, GETID_LEN); - snprintf(Cloak_Buffer, GETID_LEN, Conf_CloakHostModeX, Hash(Cloak_Buffer)); - } else { - strncpy(Cloak_Buffer, Client_ID(Client->introducer), GETID_LEN); - } - - snprintf(Mask_Buffer, GETID_LEN, "%s!%s@%s", - Client->id, Client->user, Cloak_Buffer); + snprintf(Mask_Buffer, GETID_LEN, "%s!%s@%s", Client->id, Client->user, + Client_HostnameCloaked(Client)); return Mask_Buffer; } /* Client_MaskCloaked */ @@ -885,7 +875,7 @@ Client_Away( CLIENT *Client ) * the appropriate error messages. * * @param Client Client that wants to change the nickname. - * @param Nick New nick name. + * @param Nick New nickname. * @returns true if nickname is valid, false otherwise. */ GLOBAL bool @@ -907,7 +897,7 @@ Client_CheckNick(CLIENT *Client, char *Nick) if (Client_Type(Client) != CLIENT_SERVER && Client_Type(Client) != CLIENT_SERVICE) { - /* Make sure that this isn't a restricted/forbidden nick name */ + /* Make sure that this isn't a restricted/forbidden nickname */ if (Conf_NickIsBlocked(Nick)) { IRC_WriteStrClient(Client, ERR_FORBIDDENNICKNAME_MSG, Client_ID(Client), Nick);