summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes1
-rw-r--r--src/main.c20
-rw-r--r--version.log6
3 files changed, 18 insertions, 9 deletions
diff --git a/Changes b/Changes
index 68e0eb933..ce92bba38 100644
--- a/Changes
+++ b/Changes
@@ -12,6 +12,7 @@ Anope Version S V N
01/10 F BotServ kicks now obeys the channel's SignKick option. [#663]
01/15 F Only send PONG during MySQL save when we're not syncing. [#669]
01/15 F InspIRCD 1.1 protocol module used windows incompatible strtok_r. [#667]
+01/22 F Crash during first save when MySQL is enabled. [#672]
Anope Version 1.7.18
--------------------
diff --git a/src/main.c b/src/main.c
index 2ebcc48f2..6a9520d90 100644
--- a/src/main.c
+++ b/src/main.c
@@ -183,42 +183,46 @@ void save_databases(void)
* If we send them during the sync, we fuck something up there and
* break the syncing process, resulting in lost (literally lost)
* data. -GD
+ * This used is_sync(serv_uplink) to check for sync states. There's
+ * only a minor error with this: serv_uplink doesn't exist during
+ * the first save. So now we check for serv_uplink only; if it
+ * exists we're safe. -GD
*/
- if (!is_sync(serv_uplink))
+ if (serv_uplink)
anope_cmd_pong(ServerName, ServerName);
waiting = -12;
save_cs_rdb_dbase();
- if (!is_sync(serv_uplink))
+ if (serv_uplink)
anope_cmd_pong(ServerName, ServerName);
if (PreNickDBName) {
save_ns_req_rdb_dbase();
- if (!is_sync(serv_uplink))
+ if (serv_uplink)
anope_cmd_pong(ServerName, ServerName);
waiting = -13;
}
if (s_BotServ) {
waiting = -14;
save_bs_rdb_dbase();
- if (!is_sync(serv_uplink))
+ if (serv_uplink)
anope_cmd_pong(ServerName, ServerName);
}
if (s_HostServ) {
waiting = -15;
save_hs_rdb_dbase();
- if (!is_sync(serv_uplink))
+ if (serv_uplink)
anope_cmd_pong(ServerName, ServerName);
}
waiting = -16;
save_os_rdb_dbase();
- if (!is_sync(serv_uplink))
+ if (serv_uplink)
anope_cmd_pong(ServerName, ServerName);
waiting = -17;
save_rdb_news();
- if (!is_sync(serv_uplink))
+ if (serv_uplink)
anope_cmd_pong(ServerName, ServerName);
waiting = -18;
save_rdb_exceptions();
- if (!is_sync(serv_uplink))
+ if (serv_uplink)
anope_cmd_pong(ServerName, ServerName);
}
diff --git a/version.log b/version.log
index 134921f3e..86f14fa38 100644
--- a/version.log
+++ b/version.log
@@ -9,10 +9,14 @@ VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="18"
VERSION_EXTRA="-svn"
-VERSION_BUILD="1227"
+VERSION_BUILD="1228"
# $Log$
#
+# BUILD : 1.7.18 (1228)
+# BUGS : 672
+# NOTES : Fixed a crash when MySQL was enabled; it checked the (unset) uplink server flags resulting in a segfault
+#
# BUILD : 1.7.18 (1227)
# BUGS : 667
# NOTES : Fixed inspircd11.c using strtok_r - myStrGetToken is more compatible (strtok_r does not work on windows)