mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-07-05 07:13:14 +02:00
- Split out servers into global_server_list.
Now client_list only includes clients, and global_server_list only includes servers.
This commit is contained in:
+1
-1
@@ -148,7 +148,7 @@ extern MODVAR int R_do_dns, R_fin_dns, R_fin_dnsc, R_fail_dns,
|
||||
R_do_id, R_fin_id, R_fail_id;
|
||||
|
||||
#endif
|
||||
extern MODVAR struct list_head client_list, lclient_list, server_list, oper_list, unknown_list;
|
||||
extern MODVAR struct list_head client_list, lclient_list, server_list, oper_list, unknown_list, global_server_list;
|
||||
extern inline aCommand *find_Command(char *cmd, short token, int flags);
|
||||
extern aCommand *find_Command_simple(char *cmd);
|
||||
extern aChannel *find_channel(char *, aChannel *);
|
||||
|
||||
+2
-1
@@ -72,7 +72,7 @@ MODVAR MembershipL *freemembershipL = NULL;
|
||||
MODVAR int numclients = 0;
|
||||
|
||||
/* unless documented otherwise, these are all local-only, except client_list. */
|
||||
MODVAR struct list_head client_list, lclient_list, server_list, oper_list, unknown_list;
|
||||
MODVAR struct list_head client_list, lclient_list, server_list, oper_list, unknown_list, global_server_list;
|
||||
|
||||
void initlists(void)
|
||||
{
|
||||
@@ -90,6 +90,7 @@ void initlists(void)
|
||||
INIT_LIST_HEAD(&server_list);
|
||||
INIT_LIST_HEAD(&oper_list);
|
||||
INIT_LIST_HEAD(&unknown_list);
|
||||
INIT_LIST_HEAD(&global_server_list);
|
||||
}
|
||||
|
||||
void outofmemory(void)
|
||||
|
||||
@@ -666,6 +666,7 @@ CMD_FUNC(m_server_remote)
|
||||
(void)find_or_add(acptr->name);
|
||||
add_client_to_list(acptr);
|
||||
(void)add_to_client_hash_table(acptr->name, acptr);
|
||||
list_move(&acptr->client_node, &global_server_list);
|
||||
RunHook(HOOKTYPE_SERVER_CONNECT, acptr);
|
||||
|
||||
list_for_each_entry(bcptr, &server_list, special_node)
|
||||
@@ -756,6 +757,7 @@ int m_server_synch(aClient *cptr, long numeric, ConfigItem_link *aconf)
|
||||
IRCstats.me_servers++;
|
||||
IRCstats.servers++;
|
||||
IRCstats.unknown--;
|
||||
list_move(&cptr->client_node, &global_server_list);
|
||||
list_move(&cptr->lclient_node, &lclient_list);
|
||||
list_add(&cptr->special_node, &server_list);
|
||||
if ((Find_uline(cptr->name)))
|
||||
@@ -825,11 +827,12 @@ int m_server_synch(aClient *cptr, long numeric, ConfigItem_link *aconf)
|
||||
}
|
||||
}
|
||||
|
||||
list_for_each_entry_reverse(acptr, &server_list, special_node)
|
||||
list_for_each_entry_reverse(acptr, &global_server_list, client_node)
|
||||
{
|
||||
/* acptr->from == acptr for acptr == cptr */
|
||||
if (acptr->from == cptr)
|
||||
continue;
|
||||
|
||||
if (IsServer(acptr))
|
||||
{
|
||||
if (SupportNS(cptr))
|
||||
@@ -874,6 +877,7 @@ int m_server_synch(aClient *cptr, long numeric, ConfigItem_link *aconf)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Synching nick information */
|
||||
list_for_each_entry_reverse(acptr, &client_list, client_node)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user