1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-02 23:43:13 +02:00

Some more server_sync cleanups

This commit is contained in:
Bram Matthys
2021-08-06 09:32:59 +02:00
parent 64f62adb1b
commit 4de2fa648f
+13 -3
View File
@@ -1318,16 +1318,21 @@ void _broadcast_sinfo(Client *acptr, Client *to, Client *except)
}
}
/** Sync all information with server 'client'.
* Eg: users, channels, everything.
* @param client The newly linked in server
* @param aconf The link block that belongs to this server
* @note This function (via cmd_server) is called from both sides, so
* from the incoming side and the outgoing side.
*/
int server_sync(Client *client, ConfigItem_link *aconf)
{
Client *acptr;
int incoming = IsUnknown(client) ? 1 : 0;
if (client->local->passwd)
{
safe_free(client->local->passwd);
client->local->passwd = NULL;
}
if (incoming)
{
/* If this is an incomming connection, then we have just received
@@ -1349,6 +1354,7 @@ int server_sync(Client *client, ConfigItem_link *aconf)
list_move(&client->client_node, &global_server_list);
list_move(&client->lclient_node, &lclient_list);
list_add(&client->special_node, &server_list);
if (find_uline(client->name))
{
if (client->serv && client->serv->features.software && !strncmp(client->serv->features.software, "UnrealIRCd-", 11))
@@ -1361,7 +1367,9 @@ int server_sync(Client *client, ConfigItem_link *aconf)
}
SetULine(client);
}
find_or_add(client->name);
if (IsSecure(client))
{
unreal_log(ULOG_INFO, "link", "SERVER_LINKED", client,
@@ -1390,6 +1398,7 @@ int server_sync(Client *client, ConfigItem_link *aconf)
tls_get_cipher(client->local->ssl));
}
}
add_to_client_hash_table(client->name, client);
/* doesnt duplicate client->serv if allocted this struct already */
make_server(client);
@@ -1401,6 +1410,7 @@ int server_sync(Client *client, ConfigItem_link *aconf)
client->serv->conf->refcount++;
client->serv->conf->class->clients++;
client->local->class = client->serv->conf->class;
RunHook(HOOKTYPE_SERVER_CONNECT, client);
/* Broadcast new server to the rest of the network */