diff options
author | rburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-08-09 11:19:45 +0000 |
---|---|---|
committer | rburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-08-09 11:19:45 +0000 |
commit | 6b8728428b55baa87596be7258497d2e8c15dd14 (patch) | |
tree | 02e820cd5516b5697d7645d3e659b04e61a2d91d | |
parent | 4d52274432e897a0c0204bdfb402e780b61cb468 (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.c | 25 |
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; |