summaryrefslogtreecommitdiff
path: root/src/modules/mysql/db_mysql_read.cpp
diff options
context:
space:
mode:
authorAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2010-03-20 04:59:38 +0000
committerAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2010-03-20 04:59:38 +0000
commit51351aac2b7e993de3610c406af1218d32a2811f (patch)
tree452919cf896b89063894d5ff4af7a7e676d54c00 /src/modules/mysql/db_mysql_read.cpp
parentba4c7d813808cad3dd79bfb58025b61506482252 (diff)
Added in support for OperServ and MemoServ into SQL
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2822 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/modules/mysql/db_mysql_read.cpp')
-rw-r--r--src/modules/mysql/db_mysql_read.cpp102
1 files changed, 102 insertions, 0 deletions
diff --git a/src/modules/mysql/db_mysql_read.cpp b/src/modules/mysql/db_mysql_read.cpp
index f9330270c..36c48b4eb 100644
--- a/src/modules/mysql/db_mysql_read.cpp
+++ b/src/modules/mysql/db_mysql_read.cpp
@@ -486,6 +486,108 @@ static void LoadDatabase()
}
}
}
+
+ query << "SELECT * FROM `anope_ms_info`";
+ qres = StoreQuery(query);
+
+ if (qres)
+ {
+ for (size_t i = 0; i < qres.num_rows(); ++i)
+ {
+ MemoInfo *mi = NULL;
+ if (qres[i]["serv"] == "NICK")
+ {
+ NickCore *nc = findcore(qres[i]["receiver"].c_str());
+ if (nc)
+ mi = &nc->memos;
+ }
+ else if (qres[i]["serv"] == "CHAN")
+ {
+ ChannelInfo *ci = cs_findchan(SQLAssign(qres[i]["receiver"]));
+ if (ci)
+ mi = &ci->memos;
+ }
+ if (mi)
+ {
+ Memo *m = new Memo();
+ mi->memos.push_back(m);
+ m->sender = SQLAssign(qres[i]["sender"]);
+ if (mi->memos.size() > 1)
+ {
+ m->number = mi->memos[mi->memos.size() - 2]->number + 1;
+ if (m->number < 1)
+ {
+ for (unsigned j = 0; j < mi->memos.size(); ++j)
+ mi->memos[j]->number = j + 1;
+ }
+ }
+ else
+ {
+ m->number = 1;
+ }
+ m->time = atol(qres[i]["time"].c_str());
+ m->text = sstrdup(qres[i]["text"].c_str());
+
+ if (!qres[i]["flags"].empty())
+ {
+ spacesepstream sep(SQLAssign(qres[i]["flags"]));
+ std::string buf;
+ while (sep.GetToken(buf))
+ {
+ for (unsigned j = 0; MemoFlags[j].Flag != -1; ++j)
+ {
+ if (MemoFlags[j].Name == buf)
+ {
+ m->SetFlag(MemoFlags[j].Flag);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ query << "SELECT * FROM `anope_os_akills`";
+ qres = StoreQuery(query);
+
+ if (qres)
+ {
+ for (size_t i = 0; i < qres.size(); ++i)
+ {
+ Akill *ak = new Akill;
+ ak->user = sstrdup(qres[i]["user"].c_str());
+ ak->host = sstrdup(qres[i]["host"].c_str());
+ ak->by = sstrdup(qres[i]["xby"].c_str());
+ ak->reason = sstrdup(qres[i]["reason"].c_str());
+ ak->seton = atol(qres[i]["seton"].c_str());
+ ak->expires = atol(qres[i]["expire"].c_str());
+ slist_add(&akills, ak);
+ }
+ }
+
+ query << "SELECT * FROM `anope_os_sxlines`";
+ qres = StoreQuery(query);
+
+ if (qres)
+ {
+ for (size_t i = 0; i < qres.size(); ++i)
+ {
+ SXLine *sx = new SXLine;
+ sx->mask = sstrdup(qres[i]["mask"].c_str());
+ sx->by = sstrdup(qres[i]["xby"].c_str());
+ sx->reason = sstrdup(qres[i]["reason"].c_str());
+ sx->seton = atol(qres[i]["seton"].c_str());
+ sx->expires = atol(qres[i]["expires"].c_str());
+ if (qres[i]["type"] == "SGLINE")
+ slist_add(&sglines, sx);
+ else if (qres[i]["type"] == "SQLINE")
+ slist_add(&sqlines, sx);
+ else if (qres[i]["type"] == "SZLINE")
+ slist_add(&szlines, sx);
+ else
+ delete sx;
+ }
+ }
}
class DBMySQLRead : public DBMySQL