summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/modules.h4
-rw-r--r--src/core/ss_main.c3
-rw-r--r--src/servers.c13
3 files changed, 12 insertions, 8 deletions
diff --git a/include/modules.h b/include/modules.h
index f0da30255..8b0144d85 100644
--- a/include/modules.h
+++ b/include/modules.h
@@ -506,9 +506,9 @@ class CoreExport Module
virtual void OnUserConnect(User *u) { }
/** Called when a new server connects to the network.
- * @param sname The server name that is connecting
+ * @param s The server that has connected to the network
*/
- virtual void OnServerConnect(const std::string &sname) { }
+ virtual void OnServerConnect(Server *s) { }
/** Called when anope saves databases.
* NOTE: This event is deprecated pending new database handling.
diff --git a/src/core/ss_main.c b/src/core/ss_main.c
index c92ce5211..e4fb1df15 100644
--- a/src/core/ss_main.c
+++ b/src/core/ss_main.c
@@ -72,7 +72,8 @@ class SSMain : public Module
}
}
- void OnServerConnect(const std::string &sname)
+ /** This hack is necessary to replace delayed loading, for now */
+ void OnServerConnect(Server *)
{
statserv = findbot("StatServ");
if (!statserv)
diff --git a/src/servers.c b/src/servers.c
index e66c5be98..073891fad 100644
--- a/src/servers.c
+++ b/src/servers.c
@@ -161,10 +161,6 @@ Server *new_server(Server * server_uplink, const char *name, const char *desc,
if ((server_uplink == me_server) && !(flags & SERVER_JUPED))
serv_uplink = serv;
- /* Write the StartGlobal (to non-juped servers) */
- if (GlobalOnCycle && GlobalOnCycleUP && !(flags & SERVER_JUPED))
- notice_server(s_GlobalNoticer, serv, "%s", GlobalOnCycleUP);
-
return serv;
}
@@ -402,8 +398,15 @@ void do_server(const char *source, const char *servername, const char *hops,
if (s == NULL)
throw CoreException("Recieved a server from a nonexistant uplink?");
+ /* Create a server structure. */
new_server(s, servername, descript, 0, numeric);
- FOREACH_MOD(I_OnServerConnect, OnServerConnect(servername));
+
+ /* Announce services being online. */
+ if (GlobalOnCycle && GlobalOnCycleUP)
+ notice_server(s_GlobalNoticer, serv, "%s", GlobalOnCycleUP);
+
+ /* Let modules know about the connection */
+ FOREACH_MOD(I_OnServerConnect, OnServerConnect(s));
}
/*************************************************************************/