]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/client.c
Spelling fix: "nick name" -> "nickname"
[ngircd-alex.git] / src / ngircd / client.c
index 0d2d4147345046b87f7f3c6e46fd018749f4da36..92262b5d8b00c0ae3248c3010032ee8ff13ac0e1 100644 (file)
@@ -687,18 +687,35 @@ 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);
+
+       /* Do simple mapping to the server ID? */
+       if (!*Conf_CloakHostModeX)
+               return Client_ID(Client->introducer);
+
+       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 */
 
 
@@ -792,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
  */
@@ -803,7 +822,6 @@ GLOBAL char *
 Client_MaskCloaked(CLIENT *Client)
 {
        static char Mask_Buffer[GETID_LEN];
-       char Cloak_Buffer[GETID_LEN];
 
        assert (Client != NULL);
 
@@ -811,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 */
@@ -865,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
@@ -887,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);