summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2010-03-29 21:01:52 +0000
committerAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2010-03-29 21:01:52 +0000
commitef5c945e0bf37f534c93fe7dc6303c9e7577615f (patch)
tree325582b7b2a5358014b1ce208248c69c663e9f6e
parent1e0bfbd15a2c041902023be6a614cd2db4e1534f (diff)
Fixed bug #1149 - Number memos in MySQL correctly
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2842 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r--src/memoserv.c3
-rw-r--r--src/mysql.c16
-rw-r--r--version.log3
3 files changed, 15 insertions, 7 deletions
diff --git a/src/memoserv.c b/src/memoserv.c
index e319210a2..262964cd3 100644
--- a/src/memoserv.c
+++ b/src/memoserv.c
@@ -274,6 +274,9 @@ void memo_send(User * u, char *name, char *text, int z)
m->time = time(NULL);
m->text = sstrdup(text);
m->flags = MF_UNREAD;
+#ifdef USE_MYSQL
+ m->id = 0;
+#endif
/* Set notify sent flag - DrStein */
if (z == 2) {
m->flags |= MF_NOTIFYS;
diff --git a/src/mysql.c b/src/mysql.c
index 2dd50efd7..5f47a226b 100644
--- a/src/mysql.c
+++ b/src/mysql.c
@@ -408,15 +408,17 @@ int db_mysql_save_ns_core(NickCore * nc)
q_sender = db_mysql_quote(nc->memos.memos[i].sender);
q_text = db_mysql_quote(nc->memos.memos[i].text);
- ret = db_mysql_try("UPDATE anope_ms_info "
+ if (nc->memos.memos[i].id != 0)
+ {
+ ret = db_mysql_try("UPDATE anope_ms_info "
"SET receiver = '%s', number = %d, flags = %d, time = %d, sender = '%s', text = '%s', active = 1 "
"WHERE nm_id = %d AND serv = 'NICK'",
q_display, nc->memos.memos[i].number,
nc->memos.memos[i].flags,
(int) nc->memos.memos[i].time, q_sender, q_text,
nc->memos.memos[i].id);
-
- if (ret && (mysql_affected_rows(mysql) == 0)) {
+ }
+ if (nc->memos.memos[i].id == 0 || (ret && (mysql_affected_rows(mysql) == 0))) {
ret = db_mysql_try("INSERT INTO anope_ms_info "
"(receiver, number, flags, time, sender, text, serv, active) "
"VALUES ('%s', %d, %d, %d, '%s', '%s', 'NICK', 1)",
@@ -626,15 +628,17 @@ int db_mysql_save_cs_info(ChannelInfo * ci)
q_sender = db_mysql_quote(ci->memos.memos[i].sender);
q_text = db_mysql_quote(ci->memos.memos[i].text);
- ret = db_mysql_try("UPDATE anope_ms_info "
+ if (ci->memos.memos[i].id != 0)
+ {
+ ret = db_mysql_try("UPDATE anope_ms_info "
"SET receiver = '%s', number = %d, flags = %d, time = %d, sender = '%s', text = '%s', active = 1 "
"WHERE nm_id = %d AND serv = 'CHAN'",
q_name, ci->memos.memos[i].number,
ci->memos.memos[i].flags,
(int) ci->memos.memos[i].time, q_sender, q_text,
ci->memos.memos[i].id);
-
- if (ret && (mysql_affected_rows(mysql) == 0)) {
+ }
+ if (ci->memos.memos[i].id == 0 || (ret && (mysql_affected_rows(mysql) == 0))) {
ret = db_mysql_try("INSERT INTO anope_ms_info "
"(receiver, number,flags, time, sender, text, serv, active) "
"VALUES ('%s', %d, %d, %d, '%s', '%s', 'CHAN', 1)",
diff --git a/version.log b/version.log
index b8d028ddf..a2355de40 100644
--- a/version.log
+++ b/version.log
@@ -9,10 +9,11 @@ VERSION_MAJOR="1"
VERSION_MINOR="8"
VERSION_PATCH="3"
VERSION_EXTRA="-svn"
-VERSION_BUILD="2841"
+VERSION_BUILD="2842"
# $Log$ # Changes since 1.8.3 Release
+#Revision 2842 - Fixed bug #1149 - Number memos in MySQL correctly
#Revision 2841 - Fixed bugs #1146 and #1147 - Fixed check_modes to only apply defcon settings when defcon is actually on
#Revision 2840 - Fixed bug #1144 - replaced some strcpy calls with strscpy to be safer
#Revision 2837 - Log deleting and clearing XOP access lists