Lines Matching refs:Client

54 static void Generate_MyToken PARAMS(( CLIENT *Client ));
55 static void Adjust_Counters PARAMS(( CLIENT *Client ));
57 static void Free_Client PARAMS(( CLIENT **Client ));
65 static void Destroy_UserOrService PARAMS((CLIENT *Client,const char *Txt, const char *FwdMsg,
68 static void cb_introduceClient PARAMS((CLIENT *Client, CLIENT *Prefix,
228 Client_Destroy( CLIENT *Client, const char *LogMsg, const char *FwdMsg, bool SendQuit ) in Client_Destroy() argument
236 assert( Client != NULL ); in Client_Destroy()
243 if( Client->type == CLIENT_SERVER ) { in Client_Destroy()
246 strlcat(msg, Client->id, sizeof (msg)); in Client_Destroy()
253 if(( Client->type == CLIENT_SERVER ) && ( c->introducer == Client ) && ( c != Client )) in Client_Destroy()
270 if( c == Client ) in Client_Destroy()
335 Client_SetHostname( CLIENT *Client, const char *Hostname ) in Client_SetHostname() argument
337 assert(Client != NULL); in Client_SetHostname()
343 if (Conf_CloakHost[0] && (!Client->host[0] || strchr(Client->host, '.') in Client_SetHostname()
344 || strchr(Client->host, ':'))) { in Client_SetHostname()
352 Client_ID(Client), Client->host, cloak); in Client_SetHostname()
353 strlcpy(Client->host, cloak, sizeof(Client->host)); in Client_SetHostname()
356 Client_ID(Client), Client->host, Hostname); in Client_SetHostname()
357 strlcpy(Client->host, Hostname, sizeof(Client->host)); in Client_SetHostname()
369 Client_SetIPAText(CLIENT *Client, const char *IPAText) in Client_SetIPAText() argument
371 assert(Client != NULL); in Client_SetIPAText()
373 if (Client->ipa_text) in Client_SetIPAText()
374 free(Client->ipa_text); in Client_SetIPAText()
377 Client->ipa_text = strndup(IPAText, CLIENT_HOST_LEN - 1); in Client_SetIPAText()
379 Client->ipa_text = NULL; in Client_SetIPAText()
384 Client_SetID( CLIENT *Client, const char *ID ) in Client_SetID() argument
386 assert( Client != NULL ); in Client_SetID()
389 strlcpy( Client->id, ID, sizeof( Client->id )); in Client_SetID()
392 strlcpy( Client->user, ID, sizeof( Client->user )); in Client_SetID()
393 strlcpy( Client->info, ID, sizeof( Client->info )); in Client_SetID()
397 Client->hash = Hash( Client->id ); in Client_SetID()
402 Client_SetUser( CLIENT *Client, const char *User, bool Idented ) in Client_SetUser() argument
406 assert( Client != NULL ); in Client_SetUser()
410 strlcpy(Client->user, Client->id, sizeof(Client->user)); in Client_SetUser()
412 strlcpy(Client->user, User, sizeof(Client->user)); in Client_SetUser()
414 Client->user[0] = '~'; in Client_SetUser()
415 strlcpy(Client->user + 1, User, sizeof(Client->user) - 1); in Client_SetUser()
429 Client_SetOrigUser(CLIENT UNUSED *Client, const char UNUSED *User) in Client_SetOrigUser() argument
431 assert(Client != NULL); in Client_SetOrigUser()
435 strlcpy(Client->orig_user, User, sizeof(Client->orig_user)); in Client_SetOrigUser()
441 Client_SetInfo( CLIENT *Client, const char *Info ) in Client_SetInfo() argument
445 assert( Client != NULL ); in Client_SetInfo()
449 strlcpy(Client->info, Client->id, sizeof(Client->info)); in Client_SetInfo()
451 strlcpy(Client->info, Info, sizeof(Client->info)); in Client_SetInfo()
456 Client_SetModes( CLIENT *Client, const char *Modes ) in Client_SetModes() argument
458 assert( Client != NULL ); in Client_SetModes()
461 strlcpy(Client->modes, Modes, sizeof( Client->modes )); in Client_SetModes()
466 Client_SetFlags( CLIENT *Client, const char *Flags ) in Client_SetFlags() argument
468 assert( Client != NULL ); in Client_SetFlags()
471 strlcpy(Client->flags, Flags, sizeof(Client->flags)); in Client_SetFlags()
476 Client_SetAccountName(CLIENT *Client, const char *AccountName) in Client_SetAccountName() argument
478 assert(Client != NULL); in Client_SetAccountName()
480 if (Client->account_name) in Client_SetAccountName()
481 free(Client->account_name); in Client_SetAccountName()
484 Client->account_name = strndup(AccountName, in Client_SetAccountName()
487 Client->account_name = NULL; in Client_SetAccountName()
492 Client_SetAway( CLIENT *Client, const char *Txt ) in Client_SetAway() argument
496 assert( Client != NULL ); in Client_SetAway()
499 if (Client->away) in Client_SetAway()
500 free(Client->away); in Client_SetAway()
502 Client->away = strndup(Txt, CLIENT_AWAY_LEN - 1); in Client_SetAway()
504 LogDebug("%s \"%s\" is away: %s", Client_TypeText(Client), in Client_SetAway()
505 Client_Mask(Client), Txt); in Client_SetAway()
510 Client_SetType( CLIENT *Client, int Type ) in Client_SetType() argument
512 assert( Client != NULL ); in Client_SetType()
513 Client->type = Type; in Client_SetType()
514 if( Type == CLIENT_SERVER ) Generate_MyToken( Client ); in Client_SetType()
515 Adjust_Counters( Client ); in Client_SetType()
520 Client_SetHops( CLIENT *Client, int Hops ) in Client_SetHops() argument
522 assert( Client != NULL ); in Client_SetHops()
523 Client->hops = Hops; in Client_SetHops()
528 Client_SetToken( CLIENT *Client, int Token ) in Client_SetToken() argument
530 assert( Client != NULL ); in Client_SetToken()
531 Client->token = Token; in Client_SetToken()
536 Client_SetIntroducer( CLIENT *Client, CLIENT *Introducer ) in Client_SetIntroducer() argument
538 assert( Client != NULL ); in Client_SetIntroducer()
540 Client->introducer = Introducer; in Client_SetIntroducer()
545 Client_ModeAdd( CLIENT *Client, char Mode ) in Client_ModeAdd() argument
554 assert( Client != NULL ); in Client_ModeAdd()
557 if (!Client_HasMode(Client, x[0])) { in Client_ModeAdd()
558 strlcat( Client->modes, x, sizeof( Client->modes )); in Client_ModeAdd()
566 Client_ModeDel( CLIENT *Client, char Mode ) in Client_ModeDel() argument
575 assert( Client != NULL ); in Client_ModeDel()
579 p = strchr( Client->modes, x[0] ); in Client_ModeDel()
660 Client_GetFromToken( CLIENT *Client, int Token ) in Client_GetFromToken() argument
664 assert( Client != NULL ); in Client_GetFromToken()
671 if ((c->type == CLIENT_SERVER) && (c->introducer == Client) && in Client_GetFromToken()
681 Client_Type( CLIENT *Client ) in Client_Type() argument
683 assert( Client != NULL ); in Client_Type()
684 return Client->type; in Client_Type()
689 Client_Conn( CLIENT *Client ) in Client_Conn() argument
691 assert( Client != NULL ); in Client_Conn()
692 return Client->conn_id; in Client_Conn()
697 Client_ID( CLIENT *Client ) in Client_ID() argument
699 assert( Client != NULL ); in Client_ID()
702 if(Client->type == CLIENT_USER) in Client_ID()
703 assert(strlen(Client->id) < Conf_MaxNickLength); in Client_ID()
706 if( Client->id[0] ) return Client->id; in Client_ID()
712 Client_Info( CLIENT *Client ) in Client_Info() argument
714 assert( Client != NULL ); in Client_Info()
715 return Client->info; in Client_Info()
720 Client_User( CLIENT *Client ) in Client_User() argument
722 assert( Client != NULL ); in Client_User()
723 return Client->user[0] ? Client->user : "~"; in Client_User()
737 Client_OrigUser(CLIENT *Client) { in Client_OrigUser() argument
738 return Client->orig_user; in Client_OrigUser()
749 Client_Hostname(CLIENT *Client) in Client_Hostname() argument
751 assert (Client != NULL); in Client_Hostname()
752 return Client->host; in Client_Hostname()
761 Client_HostnameCloaked(CLIENT *Client) in Client_HostnameCloaked() argument
763 assert(Client != NULL); in Client_HostnameCloaked()
764 return Client->cloaked; in Client_HostnameCloaked()
776 Client_HostnameDisplayed(CLIENT *Client) in Client_HostnameDisplayed() argument
778 assert(Client != NULL); in Client_HostnameDisplayed()
781 if (!Client_HasMode(Client, 'x')) in Client_HostnameDisplayed()
782 return Client_Hostname(Client); in Client_HostnameDisplayed()
785 if (Client->cloaked) in Client_HostnameDisplayed()
786 return Client->cloaked; in Client_HostnameDisplayed()
788 Client_UpdateCloakedHostname(Client, NULL, NULL); in Client_HostnameDisplayed()
789 return Client->cloaked; in Client_HostnameDisplayed()
793 Client_IPAText(CLIENT *Client) in Client_IPAText() argument
795 assert(Client != NULL); in Client_IPAText()
798 if (Client_Conn(Client) <= NONE) in Client_IPAText()
801 if (!Client->ipa_text) in Client_IPAText()
802 return Conn_GetIPAInfo(Client_Conn(Client)); in Client_IPAText()
804 return Client->ipa_text; in Client_IPAText()
818 Client_UpdateCloakedHostname(CLIENT *Client, CLIENT *Origin, in Client_UpdateCloakedHostname() argument
823 assert(Client != NULL); in Client_UpdateCloakedHostname()
827 if (!Client->cloaked) { in Client_UpdateCloakedHostname()
828 Client->cloaked = malloc(CLIENT_HOST_LEN); in Client_UpdateCloakedHostname()
829 if (!Client->cloaked) in Client_UpdateCloakedHostname()
836 strlcpy(Cloak_Buffer, Client->host, in Client_UpdateCloakedHostname()
840 snprintf(Client->cloaked, CLIENT_HOST_LEN, in Client_UpdateCloakedHostname()
843 strlcpy(Client->cloaked, Client_ID(Client->introducer), in Client_UpdateCloakedHostname()
846 strlcpy(Client->cloaked, Hostname, CLIENT_HOST_LEN); in Client_UpdateCloakedHostname()
848 Client_ID(Client), Client->cloaked); in Client_UpdateCloakedHostname()
853 Client_ID(Client), Client->cloaked); in Client_UpdateCloakedHostname()
857 Client_Modes( CLIENT *Client ) in Client_Modes() argument
859 assert( Client != NULL ); in Client_Modes()
860 return Client->modes; in Client_Modes()
865 Client_Flags( CLIENT *Client ) in Client_Flags() argument
867 assert( Client != NULL ); in Client_Flags()
868 return Client->flags; in Client_Flags()
873 Client_Hops( CLIENT *Client ) in Client_Hops() argument
875 assert( Client != NULL ); in Client_Hops()
876 return Client->hops; in Client_Hops()
881 Client_Token( CLIENT *Client ) in Client_Token() argument
883 assert( Client != NULL ); in Client_Token()
884 return Client->token; in Client_Token()
889 Client_MyToken( CLIENT *Client ) in Client_MyToken() argument
891 assert( Client != NULL ); in Client_MyToken()
892 return Client->mytoken; in Client_MyToken()
897 Client_NextHop( CLIENT *Client ) in Client_NextHop() argument
901 assert( Client != NULL ); in Client_NextHop()
903 c = Client; in Client_NextHop()
920 Client_Mask( CLIENT *Client ) in Client_Mask() argument
924 assert (Client != NULL); in Client_Mask()
927 if (Client->type == CLIENT_SERVER) in Client_Mask()
928 return Client->id; in Client_Mask()
931 Client->id, Client->user, Client->host); in Client_Mask()
948 Client_MaskCloaked(CLIENT *Client) in Client_MaskCloaked() argument
952 assert (Client != NULL); in Client_MaskCloaked()
955 if (!Client_HasMode(Client, 'x')) in Client_MaskCloaked()
956 return Client_Mask(Client); in Client_MaskCloaked()
958 snprintf(Mask_Buffer, GETID_LEN, "%s!%s@%s", Client->id, Client->user, in Client_MaskCloaked()
959 Client_HostnameDisplayed(Client)); in Client_MaskCloaked()
966 Client_Introducer( CLIENT *Client ) in Client_Introducer() argument
968 assert( Client != NULL ); in Client_Introducer()
969 return Client->introducer; in Client_Introducer()
974 Client_TopServer( CLIENT *Client ) in Client_TopServer() argument
976 assert( Client != NULL ); in Client_TopServer()
977 return Client->topserver; in Client_TopServer()
982 Client_HasMode( CLIENT *Client, char Mode ) in Client_HasMode() argument
984 assert( Client != NULL ); in Client_HasMode()
985 return strchr( Client->modes, Mode ) != NULL; in Client_HasMode()
990 Client_HasFlag( CLIENT *Client, char Flag ) in Client_HasFlag() argument
992 assert( Client != NULL ); in Client_HasFlag()
993 return strchr( Client->flags, Flag ) != NULL; in Client_HasFlag()
998 Client_Away( CLIENT *Client ) in Client_Away() argument
1000 assert( Client != NULL ); in Client_Away()
1001 return Client->away; in Client_Away()
1006 Client_AccountName(CLIENT *Client) in Client_AccountName() argument
1008 assert(Client != NULL); in Client_AccountName()
1009 return Client->account_name; in Client_AccountName()
1024 Client_CheckNick(CLIENT *Client, char *Nick) in Client_CheckNick() argument
1026 assert(Client != NULL); in Client_CheckNick()
1031 IRC_WriteErrClient(Client, ERR_NICKNAMETOOLONG_MSG, in Client_CheckNick()
1032 Client_ID(Client), Nick, in Client_CheckNick()
1035 IRC_WriteErrClient(Client, ERR_ERRONEUSNICKNAME_MSG, in Client_CheckNick()
1036 Client_ID(Client), Nick); in Client_CheckNick()
1040 if (Client_Type(Client) != CLIENT_SERVER in Client_CheckNick()
1041 && Client_Type(Client) != CLIENT_SERVICE) { in Client_CheckNick()
1044 IRC_WriteErrClient(Client, ERR_FORBIDDENNICKNAME_MSG, in Client_CheckNick()
1045 Client_ID(Client), Nick); in Client_CheckNick()
1052 IRC_WriteErrClient(Client, ERR_NICKNAMEINUSE_MSG, in Client_CheckNick()
1053 Client_ID(Client), Nick); in Client_CheckNick()
1062 Client_CheckID( CLIENT *Client, char *ID ) in Client_CheckID() argument
1067 assert( Client != NULL ); in Client_CheckID()
1068 assert( Client->conn_id > NONE ); in Client_CheckID()
1073 IRC_WriteErrClient(Client, ERR_ERRONEUSNICKNAME_MSG, in Client_CheckID()
1074 Client_ID(Client), ID); in Client_CheckID()
1087 Conn_Close(Client->conn_id, str, str, true); in Client_CheckID()
1268 Client_StartTime(CLIENT *Client) in Client_StartTime() argument
1270 assert( Client != NULL ); in Client_StartTime()
1271 return Client->starttime; in Client_StartTime()
1289 Client_Reject(CLIENT *Client, const char *Reason, bool InformClient) in Client_Reject() argument
1293 assert(Client != NULL); in Client_Reject()
1303 Client_Mask(Client), Client_Conn(Client), Reason); in Client_Reject()
1304 Conn_Close(Client_Conn(Client), Reason, info, true); in Client_Reject()
1316 Client_Introduce(CLIENT *From, CLIENT *Client, int Type) in Client_Introduce() argument
1319 Client_SetType(Client, Type); in Client_Introduce()
1323 Client_ID(Client))) in Client_Introduce()
1324 Client_SetType(Client, CLIENT_SERVICE); in Client_Introduce()
1326 Client_TypeText(Client), Client_Mask(Client), in Client_Introduce()
1327 Client_Modes(Client), Client_ID(From), in Client_Introduce()
1328 Client_ID(Client_Introducer(Client)), in Client_Introduce()
1329 Client_Hops(Client), Client_Hops(Client) > 1 ? "s": ""); in Client_Introduce()
1332 Client_TypeText(Client), Client_Mask(Client), in Client_Introduce()
1333 Client_Conn(Client)); in Client_Introduce()
1335 Client_ID(Client), Client_User(Client), in Client_Introduce()
1336 Client_Hostname(Client), in Client_Introduce()
1337 Conn_IPA(Client_Conn(Client)), in Client_Introduce()
1338 Client_TypeText(Client)); in Client_Introduce()
1344 '\0', cb_introduceClient, (void *)Client); in Client_Introduce()
1412 Free_Client(CLIENT **Client) in Free_Client() argument
1414 assert(Client != NULL); in Free_Client()
1415 assert(*Client != NULL); in Free_Client()
1417 if ((*Client)->account_name) in Free_Client()
1418 free((*Client)->account_name); in Free_Client()
1419 if ((*Client)->away) in Free_Client()
1420 free((*Client)->away); in Free_Client()
1421 if ((*Client)->cloaked) in Free_Client()
1422 free((*Client)->cloaked); in Free_Client()
1423 if ((*Client)->ipa_text) in Free_Client()
1424 free((*Client)->ipa_text); in Free_Client()
1426 free(*Client); in Free_Client()
1427 *Client = NULL; in Free_Client()
1431 Generate_MyToken( CLIENT *Client ) in Generate_MyToken() argument
1449 Client->mytoken = token; in Generate_MyToken()
1450 LogDebug("Assigned token %d to server \"%s\".", token, Client->id); in Generate_MyToken()
1455 Adjust_Counters( CLIENT *Client ) in Adjust_Counters() argument
1459 assert( Client != NULL ); in Adjust_Counters()
1461 if( Client->type != CLIENT_USER ) return; in Adjust_Counters()
1463 if( Client->conn_id != NONE ) in Adjust_Counters()
1481 Client_RegisterWhowas( CLIENT *Client ) in Client_RegisterWhowas() argument
1486 assert( Client != NULL ); in Client_RegisterWhowas()
1494 if( now - Client->starttime < 30 ) in Client_RegisterWhowas()
1505 strlcpy( My_Whowas[slot].id, Client_ID( Client ), in Client_RegisterWhowas()
1507 strlcpy( My_Whowas[slot].user, Client_User( Client ), in Client_RegisterWhowas()
1509 strlcpy( My_Whowas[slot].host, Client_HostnameDisplayed( Client ), in Client_RegisterWhowas()
1511 strlcpy( My_Whowas[slot].info, Client_Info( Client ), in Client_RegisterWhowas()
1513 strlcpy( My_Whowas[slot].server, Client_ID( Client_Introducer( Client )), in Client_RegisterWhowas()
1521 Client_TypeText(CLIENT *Client) in Client_TypeText() argument
1523 assert(Client != NULL); in Client_TypeText()
1524 switch (Client_Type(Client)) { in Client_TypeText()
1544 Destroy_UserOrService(CLIENT *Client, const char *Txt, const char *FwdMsg, bool SendQuit) in Destroy_UserOrService() argument
1546 if(Client->conn_id != NONE) { in Destroy_UserOrService()
1550 Client_TypeText(Client), Client_Mask(Client), in Destroy_UserOrService()
1551 Client->conn_id, Txt); in Destroy_UserOrService()
1553 Client_ID(Client), Client_User(Client), in Destroy_UserOrService()
1554 Client_Hostname(Client), Txt); in Destroy_UserOrService()
1560 Client, "QUIT :%s", FwdMsg ); in Destroy_UserOrService()
1563 Client, "QUIT :"); in Destroy_UserOrService()
1568 Client_TypeText(Client), Client_Mask(Client), Txt); in Destroy_UserOrService()
1574 IRC_WriteStrServersPrefix(Client_NextHop(Client), in Destroy_UserOrService()
1575 Client, "QUIT :%s", FwdMsg ); in Destroy_UserOrService()
1577 IRC_WriteStrServersPrefix(Client_NextHop(Client), in Destroy_UserOrService()
1578 Client, "QUIT :" ); in Destroy_UserOrService()
1583 Channel_Quit(Client, FwdMsg ? FwdMsg : Client->id); in Destroy_UserOrService()
1586 Client_RegisterWhowas(Client); in Destroy_UserOrService()
1618 Client_Announce(CLIENT * Client, CLIENT * Prefix, CLIENT * User) in Client_Announce() argument
1627 conn = Client_Conn(Client); in Client_Announce()
1647 && Client_HasFlag(Client, 'S')) { in Client_Announce()
1648 if (!IRC_WriteStrClientPrefix(Client, Prefix, in Client_Announce()
1656 if (!IRC_WriteStrClientPrefix(Client, Prefix, in Client_Announce()
1666 if (Client_HasFlag(Client, 'M')) { in Client_Announce()
1669 if (!IRC_WriteStrClientPrefix(Client, Prefix, in Client_Announce()
1677 if (!IRC_WriteStrClientPrefix(Client, Prefix, in Client_Announce()
1685 if (!IRC_WriteStrClientPrefix(Client, Prefix, in Client_Announce()