mirror of
https://github.com/osmarks/ngircd.git
synced 2024-12-12 18:00:28 +00:00
Implement Client_HostnameCloaked() and Client_MaskCloaked()
These two functions return the cloaked hostname, if the client has enabled hostname cloaking indicated by the -- still to implement -- user mode "x". See furter patches :-)
This commit is contained in:
parent
617640e0a3
commit
6fdd3479f1
@ -660,6 +660,23 @@ Client_Hostname(CLIENT *Client)
|
||||
} /* Client_Hostname */
|
||||
|
||||
|
||||
/**
|
||||
* Get potentially cloaked hostname of a client.
|
||||
* If the client has not enabled cloaking, the real hostname is used.
|
||||
* @param Client Pointer to client structure
|
||||
* @return Pointer to client hostname
|
||||
*/
|
||||
GLOBAL char *
|
||||
Client_HostnameCloaked(CLIENT *Client)
|
||||
{
|
||||
assert(Client != NULL);
|
||||
if (Client_HasMode(Client, 'x'))
|
||||
return Client_ID(Client->introducer);
|
||||
else
|
||||
return Client_Hostname(Client);
|
||||
} /* Client_HostnameCloaked */
|
||||
|
||||
|
||||
GLOBAL char *
|
||||
Client_Password( CLIENT *Client )
|
||||
{
|
||||
@ -756,6 +773,32 @@ Client_Mask( CLIENT *Client )
|
||||
} /* Client_Mask */
|
||||
|
||||
|
||||
/**
|
||||
* 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 erlier 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
|
||||
*/
|
||||
GLOBAL char *
|
||||
Client_MaskCloaked(CLIENT *Client)
|
||||
{
|
||||
static char Mask_Buffer[GETID_LEN];
|
||||
|
||||
assert (Client != NULL);
|
||||
|
||||
/* Is the client using cloaking at all? */
|
||||
if (!Client_HasMode(Client, 'x'))
|
||||
return Client_Mask(Client);
|
||||
|
||||
snprintf(Mask_Buffer, GETID_LEN, "%s!%s@%s",
|
||||
Client->id, Client->user, Client_ID(Client->introducer));
|
||||
return Mask_Buffer;
|
||||
} /* Client_MaskCloaked */
|
||||
|
||||
|
||||
GLOBAL CLIENT *
|
||||
Client_Introducer( CLIENT *Client )
|
||||
{
|
||||
|
@ -93,12 +93,14 @@ GLOBAL int Client_Type PARAMS(( CLIENT *Client ));
|
||||
GLOBAL CONN_ID Client_Conn PARAMS(( CLIENT *Client ));
|
||||
GLOBAL char *Client_ID PARAMS(( CLIENT *Client ));
|
||||
GLOBAL char *Client_Mask PARAMS(( CLIENT *Client ));
|
||||
GLOBAL char *Client_MaskCloaked PARAMS(( CLIENT *Client ));
|
||||
GLOBAL char *Client_Info PARAMS(( CLIENT *Client ));
|
||||
GLOBAL char *Client_User PARAMS(( CLIENT *Client ));
|
||||
#ifdef PAM
|
||||
GLOBAL char *Client_OrigUser PARAMS(( CLIENT *Client ));
|
||||
#endif
|
||||
GLOBAL char *Client_Hostname PARAMS(( CLIENT *Client ));
|
||||
GLOBAL char *Client_HostnameCloaked PARAMS(( CLIENT *Client ));
|
||||
GLOBAL char *Client_Password PARAMS(( CLIENT *Client ));
|
||||
GLOBAL char *Client_Modes PARAMS(( CLIENT *Client ));
|
||||
GLOBAL char *Client_Flags PARAMS(( CLIENT *Client ));
|
||||
|
Loading…
Reference in New Issue
Block a user