X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=src%2Fngircd%2Fclient.c;h=07d448fdbaf9a84873f32e22584636251e2d3fd5;hp=2835b46f51f7bc6d19e59894f5bb43d8cef4cfcd;hb=bf2eae3249cd7890c0189dfcf1a50b0e40e199b2;hpb=44698e44e8a9bf9f3a1211e10b4d59e00be5864f diff --git a/src/ngircd/client.c b/src/ngircd/client.c index 2835b46f..07d448fd 100644 --- a/src/ngircd/client.c +++ b/src/ngircd/client.c @@ -1,6 +1,6 @@ /* * ngIRCd -- The Next Generation IRC Daemon - * Copyright (c)2001-2013 Alexander Barton (alex@barton.de) and Contributors. + * Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,22 +18,16 @@ * Client management. */ -#include "imp.h" #include #include #include #include #include #include +#include #include -#include "defines.h" #include "conn.h" - -#include "exp.h" -#include "client.h" - -#include #include "ngircd.h" #include "channel.h" #include "conf.h" @@ -44,8 +38,6 @@ #include "match.h" #include "messages.h" -#include - #define GETID_LEN (CLIENT_NICK_LEN-1) + 1 + (CLIENT_USER_LEN-1) + 1 + (CLIENT_HOST_LEN-1) + 1 static CLIENT *This_Server, *My_Clients; @@ -221,7 +213,7 @@ Init_New_Client(CONN_ID Idx, CLIENT *Introducer, CLIENT *TopServer, Generate_MyToken(client); if (Client_HasMode(client, 'a')) - strlcpy(client->away, DEFAULT_AWAY_MSG, sizeof(client->away)); + client->away = strndup(DEFAULT_AWAY_MSG, CLIENT_AWAY_LEN - 1); client->next = (POINTER *)My_Clients; My_Clients = client; @@ -238,7 +230,7 @@ Client_Destroy( CLIENT *Client, const char *LogMsg, const char *FwdMsg, bool Sen /* remove a client */ CLIENT *last, *c; - char msg[LINE_LEN]; + char msg[COMMAND_LEN]; const char *txt; assert( Client != NULL ); @@ -345,7 +337,7 @@ Client_SetHostname( CLIENT *Client, const char *Hostname ) assert(Client != NULL); assert(Hostname != NULL); - if (strlen(Conf_CloakHost)) { + if (Conf_CloakHost[0]) { char cloak[GETID_LEN]; strlcpy(cloak, Hostname, GETID_LEN); @@ -435,7 +427,7 @@ Client_SetOrigUser(CLIENT UNUSED *Client, const char UNUSED *User) assert(Client != NULL); assert(User != NULL); -#if defined(PAM) && defined(IDENTAUTH) +#if defined(PAM) strlcpy(Client->orig_user, User, sizeof(Client->orig_user)); #endif } /* Client_SetOrigUser */ @@ -500,7 +492,11 @@ Client_SetAway( CLIENT *Client, const char *Txt ) assert( Client != NULL ); assert( Txt != NULL ); - strlcpy( Client->away, Txt, sizeof( Client->away )); + if (Client->away) + free(Client->away); + + Client->away = strndup(Txt, CLIENT_AWAY_LEN - 1); + LogDebug("%s \"%s\" is away: %s", Client_TypeText(Client), Client_Mask(Client), Txt); } /* Client_SetAway */ @@ -541,14 +537,6 @@ Client_SetIntroducer( CLIENT *Client, CLIENT *Introducer ) } /* Client_SetIntroducer */ -GLOBAL void -Client_SetOperByMe( CLIENT *Client, bool OperByMe ) -{ - assert( Client != NULL ); - Client->oper_by_me = OperByMe; -} /* Client_SetOperByMe */ - - GLOBAL bool Client_ModeAdd( CLIENT *Client, char Mode ) { @@ -743,15 +731,7 @@ Client_User( CLIENT *Client ) */ GLOBAL char * Client_OrigUser(CLIENT *Client) { -#ifndef IDENTAUTH - char *user = Client->user; - - if (user[0] == '~') - user++; - return user; -#else return Client->orig_user; -#endif } /* Client_OrigUser */ #endif @@ -885,14 +865,6 @@ Client_Flags( CLIENT *Client ) } /* Client_Flags */ -GLOBAL bool -Client_OperByMe( CLIENT *Client ) -{ - assert( Client != NULL ); - return Client->oper_by_me; -} /* Client_OperByMe */ - - GLOBAL int Client_Hops( CLIENT *Client ) { @@ -1422,7 +1394,6 @@ New_Client_Struct( void ) c->type = CLIENT_UNKNOWN; c->conn_id = NONE; - c->oper_by_me = false; c->hops = -1; c->token = -1; c->mytoken = -1; @@ -1441,6 +1412,8 @@ Free_Client(CLIENT **Client) if ((*Client)->account_name) free((*Client)->account_name); + if ((*Client)->away) + free((*Client)->away); if ((*Client)->cloaked) free((*Client)->cloaked); if ((*Client)->ipa_text)