summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864>2009-08-09 11:19:45 +0000
committerrburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864>2009-08-09 11:19:45 +0000
commit6b8728428b55baa87596be7258497d2e8c15dd14 (patch)
tree02e820cd5516b5697d7645d3e659b04e61a2d91d
parent4d52274432e897a0c0204bdfb402e780b61cb468 (diff)
Make this really work now. Promise. serv_uplink double setting needs to go away in the future.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2447 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r--src/servers.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/servers.c b/src/servers.c
index cb990032e..29649f114 100644
--- a/src/servers.c
+++ b/src/servers.c
@@ -155,19 +155,24 @@ Server *new_server(Server * server_uplink, const char *name, const char *desc,
server_uplink->links->prev = serv;
server_uplink->links = serv;
}
- /* Check if this is our uplink server */
- if ((server_uplink == me_server) && !(flags & SERVER_JUPED)) {
- serv_uplink = serv;
- serv->flags |= SERVER_ISUPLINK;
- /* Bring in our pseudo-clients */
- introduce_user(NULL);
+ /* Check if this is our uplink server */
+ if ((server_uplink == me_server) && !(flags & SERVER_JUPED))
+ {
+ // XXX: Apparantly we set ourselves as serv_uplink before we (really) set the uplink when we recieve SERVER. This is wrong and ugly.
+ if (serv_uplink != NULL)
+ {
+ /* Bring in our pseudo-clients */
+ introduce_user(NULL);
- /* And hybrid needs Global joined in the logchan */
- if (logchan && ircd->join2msg) {
- /* XXX might desync */
- ircdproto->SendJoin(findbot(s_GlobalNoticer), LogChannel, time(NULL));
+ /* And hybrid needs Global joined in the logchan */
+ if (logchan && ircd->join2msg) {
+ /* XXX might desync */
+ ircdproto->SendJoin(findbot(s_GlobalNoticer), LogChannel, time(NULL));
+ }
}
+ serv_uplink = serv;
+ serv->flags |= SERVER_ISUPLINK;
}
return serv;