diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-09-19 18:12:43 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-09-19 18:12:43 +0000 |
commit | 066e5ca3665835e50dddaaf612212ffb94c68a85 (patch) | |
tree | b9cc645618c28840efd999c715a280c1d8a4496f /src/xline.cpp | |
parent | c212eb49dfd808aae0a146cb978de2c5e9eb2490 (diff) |
Fix crashes, and in the process make xline even faster!
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5304 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/xline.cpp')
-rw-r--r-- | src/xline.cpp | 272 |
1 files changed, 141 insertions, 131 deletions
diff --git a/src/xline.cpp b/src/xline.cpp index eb00eaee0..7bb5ec1fb 100644 --- a/src/xline.cpp +++ b/src/xline.cpp @@ -121,7 +121,7 @@ bool XLineManager::add_gline(long duration, const char* source,const char* reaso bool ret = del_gline(hostmask); - GLine item(ServerInstance->Time(), duration, source, reason, ih.first.c_str(), ih.second.c_str()); + GLine* item = new GLine(ServerInstance->Time(), duration, source, reason, ih.first.c_str(), ih.second.c_str()); if (duration) { @@ -144,7 +144,7 @@ bool XLineManager::add_eline(long duration, const char* source, const char* reas bool ret = del_eline(hostmask); - ELine item(ServerInstance->Time(), duration, source, reason, ih.first.c_str(), ih.second.c_str()); + ELine* item = new ELine(ServerInstance->Time(), duration, source, reason, ih.first.c_str(), ih.second.c_str()); if (duration) { @@ -163,7 +163,7 @@ bool XLineManager::add_eline(long duration, const char* source, const char* reas bool XLineManager::add_qline(long duration, const char* source, const char* reason, const char* nickname) { bool ret = del_qline(nickname); - QLine item(ServerInstance->Time(), duration, source, reason, nickname); + QLine* item = new QLine(ServerInstance->Time(), duration, source, reason, nickname); if (duration) { @@ -190,7 +190,7 @@ bool XLineManager::add_zline(long duration, const char* source, const char* reas ipaddr++; } - ZLine item(ServerInstance->Time(), duration, source, reason, ipaddr); + ZLine* item = new ZLine(ServerInstance->Time(), duration, source, reason, ipaddr); if (duration) { @@ -212,7 +212,7 @@ bool XLineManager::add_kline(long duration, const char* source, const char* reas bool ret = del_kline(hostmask); - KLine item(ServerInstance->Time(), duration, source, reason, ih.first.c_str(), ih.second.c_str()); + KLine* item = new KLine(ServerInstance->Time(), duration, source, reason, ih.first.c_str(), ih.second.c_str()); if (duration) { @@ -231,18 +231,20 @@ bool XLineManager::add_kline(long duration, const char* source, const char* reas bool XLineManager::del_gline(const char* hostmask) { IdentHostPair ih = IdentSplit(hostmask); - for (std::vector<GLine>::iterator i = glines.begin(); i != glines.end(); i++) + for (std::vector<GLine*>::iterator i = glines.begin(); i != glines.end(); i++) { - if (!strcasecmp(ih.first.c_str(),i->identmask) && !strcasecmp(ih.second.c_str(),i->hostmask)) + if (!strcasecmp(ih.first.c_str(),(*i)->identmask) && !strcasecmp(ih.second.c_str(),(*i)->hostmask)) { + delete *i; glines.erase(i); return true; } } - for (std::vector<GLine>::iterator i = pglines.begin(); i != pglines.end(); i++) + for (std::vector<GLine*>::iterator i = pglines.begin(); i != pglines.end(); i++) { - if (!strcasecmp(ih.first.c_str(),i->identmask) && !strcasecmp(ih.second.c_str(),i->hostmask)) + if (!strcasecmp(ih.first.c_str(),(*i)->identmask) && !strcasecmp(ih.second.c_str(),(*i)->hostmask)) { + delete *i; pglines.erase(i); return true; } @@ -255,18 +257,20 @@ bool XLineManager::del_gline(const char* hostmask) bool XLineManager::del_eline(const char* hostmask) { IdentHostPair ih = IdentSplit(hostmask); - for (std::vector<ELine>::iterator i = elines.begin(); i != elines.end(); i++) + for (std::vector<ELine*>::iterator i = elines.begin(); i != elines.end(); i++) { - if (!strcasecmp(ih.first.c_str(),i->identmask) && !strcasecmp(ih.second.c_str(),i->hostmask)) + if (!strcasecmp(ih.first.c_str(),(*i)->identmask) && !strcasecmp(ih.second.c_str(),(*i)->hostmask)) { + delete *i; elines.erase(i); return true; } } - for (std::vector<ELine>::iterator i = pelines.begin(); i != pelines.end(); i++) + for (std::vector<ELine*>::iterator i = pelines.begin(); i != pelines.end(); i++) { - if (!strcasecmp(ih.first.c_str(),i->identmask) && !strcasecmp(ih.second.c_str(),i->hostmask)) + if (!strcasecmp(ih.first.c_str(),(*i)->identmask) && !strcasecmp(ih.second.c_str(),(*i)->hostmask)) { + delete *i; pelines.erase(i); return true; } @@ -278,18 +282,20 @@ bool XLineManager::del_eline(const char* hostmask) bool XLineManager::del_qline(const char* nickname) { - for (std::vector<QLine>::iterator i = qlines.begin(); i != qlines.end(); i++) + for (std::vector<QLine*>::iterator i = qlines.begin(); i != qlines.end(); i++) { - if (!strcasecmp(nickname,i->nick)) + if (!strcasecmp(nickname,(*i)->nick)) { + delete *i; qlines.erase(i); return true; } } - for (std::vector<QLine>::iterator i = pqlines.begin(); i != pqlines.end(); i++) + for (std::vector<QLine*>::iterator i = pqlines.begin(); i != pqlines.end(); i++) { - if (!strcasecmp(nickname,i->nick)) + if (!strcasecmp(nickname,(*i)->nick)) { + delete *i; pqlines.erase(i); return true; } @@ -301,18 +307,20 @@ bool XLineManager::del_qline(const char* nickname) bool XLineManager::del_zline(const char* ipaddr) { - for (std::vector<ZLine>::iterator i = zlines.begin(); i != zlines.end(); i++) + for (std::vector<ZLine*>::iterator i = zlines.begin(); i != zlines.end(); i++) { - if (!strcasecmp(ipaddr,i->ipaddr)) + if (!strcasecmp(ipaddr,(*i)->ipaddr)) { + delete *i; zlines.erase(i); return true; } } - for (std::vector<ZLine>::iterator i = pzlines.begin(); i != pzlines.end(); i++) + for (std::vector<ZLine*>::iterator i = pzlines.begin(); i != pzlines.end(); i++) { - if (!strcasecmp(ipaddr,i->ipaddr)) + if (!strcasecmp(ipaddr,(*i)->ipaddr)) { + delete *i; pzlines.erase(i); return true; } @@ -325,18 +333,20 @@ bool XLineManager::del_zline(const char* ipaddr) bool XLineManager::del_kline(const char* hostmask) { IdentHostPair ih = IdentSplit(hostmask); - for (std::vector<KLine>::iterator i = klines.begin(); i != klines.end(); i++) + for (std::vector<KLine*>::iterator i = klines.begin(); i != klines.end(); i++) { - if (!strcasecmp(ih.first.c_str(),i->identmask) && !strcasecmp(ih.second.c_str(),i->hostmask)) + if (!strcasecmp(ih.first.c_str(),(*i)->identmask) && !strcasecmp(ih.second.c_str(),(*i)->hostmask)) { + delete *i; klines.erase(i); return true; } } - for (std::vector<KLine>::iterator i = pklines.begin(); i != pklines.end(); i++) + for (std::vector<KLine*>::iterator i = pklines.begin(); i != pklines.end(); i++) { - if (!strcasecmp(ih.first.c_str(),i->identmask) && !strcasecmp(ih.second.c_str(),i->hostmask)) + if (!strcasecmp(ih.first.c_str(),(*i)->identmask) && !strcasecmp(ih.second.c_str(),(*i)->hostmask)) { + delete *i; pklines.erase(i); return true; } @@ -350,12 +360,12 @@ char* XLineManager::matches_qline(const char* nick) { if ((qlines.empty()) && (pqlines.empty())) return NULL; - for (std::vector<QLine>::iterator i = qlines.begin(); i != qlines.end(); i++) - if (match(nick,i->nick)) - return i->reason; - for (std::vector<QLine>::iterator i = pqlines.begin(); i != pqlines.end(); i++) - if (match(nick,i->nick)) - return i->reason; + for (std::vector<QLine*>::iterator i = qlines.begin(); i != qlines.end(); i++) + if (match(nick,(*i)->nick)) + return (*i)->reason; + for (std::vector<QLine*>::iterator i = pqlines.begin(); i != pqlines.end(); i++) + if (match(nick,(*i)->nick)) + return (*i)->reason; return NULL; } @@ -365,23 +375,23 @@ char* XLineManager::matches_gline(userrec* user) { if ((glines.empty()) && (pglines.empty())) return NULL; - for (std::vector<GLine>::iterator i = glines.begin(); i != glines.end(); i++) + for (std::vector<GLine*>::iterator i = glines.begin(); i != glines.end(); i++) { - if ((match(user->ident,i->identmask))) + if ((match(user->ident,(*i)->identmask))) { - if ((match(user->host,i->hostmask, true)) || (match(user->GetIPString(),i->hostmask, true))) + if ((match(user->host,(*i)->hostmask, true)) || (match(user->GetIPString(),(*i)->hostmask, true))) { - return i->reason; + return (*i)->reason; } } } - for (std::vector<GLine>::iterator i = pglines.begin(); i != pglines.end(); i++) + for (std::vector<GLine*>::iterator i = pglines.begin(); i != pglines.end(); i++) { - if ((match(user->ident,i->identmask))) + if ((match(user->ident,(*i)->identmask))) { - if ((match(user->host,i->hostmask, true)) || (match(user->GetIPString(),i->hostmask, true))) + if ((match(user->host,(*i)->hostmask, true)) || (match(user->GetIPString(),(*i)->hostmask, true))) { - return i->reason; + return (*i)->reason; } } } @@ -394,23 +404,23 @@ char* XLineManager::matches_exception(userrec* user) return NULL; char host2[MAXBUF]; snprintf(host2,MAXBUF,"*@%s",user->host); - for (std::vector<ELine>::iterator i = elines.begin(); i != elines.end(); i++) + for (std::vector<ELine*>::iterator i = elines.begin(); i != elines.end(); i++) { - if ((match(user->ident,i->identmask))) + if ((match(user->ident,(*i)->identmask))) { - if ((match(user->host,i->hostmask, true)) || (match(user->GetIPString(),i->hostmask, true))) + if ((match(user->host,(*i)->hostmask, true)) || (match(user->GetIPString(),(*i)->hostmask, true))) { - return i->reason; + return (*i)->reason; } } } - for (std::vector<ELine>::iterator i = pelines.begin(); i != pelines.end(); i++) + for (std::vector<ELine*>::iterator i = pelines.begin(); i != pelines.end(); i++) { - if ((match(user->ident,i->identmask))) + if ((match(user->ident,(*i)->identmask))) { - if ((match(user->host,i->hostmask, true)) || (match(user->GetIPString(),i->hostmask, true))) + if ((match(user->host,(*i)->hostmask, true)) || (match(user->GetIPString(),(*i)->hostmask, true))) { - return i->reason; + return (*i)->reason; } } } @@ -420,19 +430,19 @@ char* XLineManager::matches_exception(userrec* user) void XLineManager::gline_set_creation_time(const char* host, time_t create_time) { - for (std::vector<GLine>::iterator i = glines.begin(); i != glines.end(); i++) + for (std::vector<GLine*>::iterator i = glines.begin(); i != glines.end(); i++) { - if (!strcasecmp(host,i->hostmask)) + if (!strcasecmp(host,(*i)->hostmask)) { - i->set_time = create_time; + (*i)->set_time = create_time; return; } } - for (std::vector<GLine>::iterator i = pglines.begin(); i != pglines.end(); i++) + for (std::vector<GLine*>::iterator i = pglines.begin(); i != pglines.end(); i++) { - if (!strcasecmp(host,i->hostmask)) + if (!strcasecmp(host,(*i)->hostmask)) { - i->set_time = create_time; + (*i)->set_time = create_time; return; } } @@ -441,19 +451,19 @@ void XLineManager::gline_set_creation_time(const char* host, time_t create_time) void XLineManager::eline_set_creation_time(const char* host, time_t create_time) { - for (std::vector<ELine>::iterator i = elines.begin(); i != elines.end(); i++) + for (std::vector<ELine*>::iterator i = elines.begin(); i != elines.end(); i++) { - if (!strcasecmp(host,i->hostmask)) + if (!strcasecmp(host,(*i)->hostmask)) { - i->set_time = create_time; + (*i)->set_time = create_time; return; } } - for (std::vector<ELine>::iterator i = pelines.begin(); i != pelines.end(); i++) + for (std::vector<ELine*>::iterator i = pelines.begin(); i != pelines.end(); i++) { - if (!strcasecmp(host,i->hostmask)) + if (!strcasecmp(host,(*i)->hostmask)) { - i->set_time = create_time; + (*i)->set_time = create_time; return; } } @@ -462,19 +472,19 @@ void XLineManager::eline_set_creation_time(const char* host, time_t create_time) void XLineManager::qline_set_creation_time(const char* nick, time_t create_time) { - for (std::vector<QLine>::iterator i = qlines.begin(); i != qlines.end(); i++) + for (std::vector<QLine*>::iterator i = qlines.begin(); i != qlines.end(); i++) { - if (!strcasecmp(nick,i->nick)) + if (!strcasecmp(nick,(*i)->nick)) { - i->set_time = create_time; + (*i)->set_time = create_time; return; } } - for (std::vector<QLine>::iterator i = pqlines.begin(); i != pqlines.end(); i++) + for (std::vector<QLine*>::iterator i = pqlines.begin(); i != pqlines.end(); i++) { - if (!strcasecmp(nick,i->nick)) + if (!strcasecmp(nick,(*i)->nick)) { - i->set_time = create_time; + (*i)->set_time = create_time; return; } } @@ -483,19 +493,19 @@ void XLineManager::qline_set_creation_time(const char* nick, time_t create_time) void XLineManager::zline_set_creation_time(const char* ip, time_t create_time) { - for (std::vector<ZLine>::iterator i = zlines.begin(); i != zlines.end(); i++) + for (std::vector<ZLine*>::iterator i = zlines.begin(); i != zlines.end(); i++) { - if (!strcasecmp(ip,i->ipaddr)) + if (!strcasecmp(ip,(*i)->ipaddr)) { - i->set_time = create_time; + (*i)->set_time = create_time; return; } } - for (std::vector<ZLine>::iterator i = pzlines.begin(); i != pzlines.end(); i++) + for (std::vector<ZLine*>::iterator i = pzlines.begin(); i != pzlines.end(); i++) { - if (!strcasecmp(ip,i->ipaddr)) + if (!strcasecmp(ip,(*i)->ipaddr)) { - i->set_time = create_time; + (*i)->set_time = create_time; return; } } @@ -508,12 +518,12 @@ char* XLineManager::matches_zline(const char* ipaddr) { if ((zlines.empty()) && (pzlines.empty())) return NULL; - for (std::vector<ZLine>::iterator i = zlines.begin(); i != zlines.end(); i++) - if (match(ipaddr,i->ipaddr, true)) - return i->reason; - for (std::vector<ZLine>::iterator i = pzlines.begin(); i != pzlines.end(); i++) - if (match(ipaddr,i->ipaddr, true)) - return i->reason; + for (std::vector<ZLine*>::iterator i = zlines.begin(); i != zlines.end(); i++) + if (match(ipaddr,(*i)->ipaddr, true)) + return (*i)->reason; + for (std::vector<ZLine*>::iterator i = pzlines.begin(); i != pzlines.end(); i++) + if (match(ipaddr,(*i)->ipaddr, true)) + return (*i)->reason; return NULL; } @@ -523,52 +533,52 @@ char* XLineManager::matches_kline(userrec* user) { if ((klines.empty()) && (pklines.empty())) return NULL; - for (std::vector<KLine>::iterator i = klines.begin(); i != klines.end(); i++) + for (std::vector<KLine*>::iterator i = klines.begin(); i != klines.end(); i++) { - if ((match(user->ident,i->identmask))) + if ((match(user->ident,(*i)->identmask))) { - if ((match(user->host,i->hostmask, true)) || (match(user->GetIPString(),i->hostmask, true))) + if ((match(user->host,(*i)->hostmask, true)) || (match(user->GetIPString(),(*i)->hostmask, true))) { - return i->reason; + return (*i)->reason; } } } - for (std::vector<KLine>::iterator i = pklines.begin(); i != pklines.end(); i++) + for (std::vector<KLine*>::iterator i = pklines.begin(); i != pklines.end(); i++) { - if ((match(user->ident,i->identmask))) + if ((match(user->ident,(*i)->identmask))) { - if ((match(user->host,i->hostmask, true)) || (match(user->GetIPString(),i->hostmask, true))) + if ((match(user->host,(*i)->hostmask, true)) || (match(user->GetIPString(),(*i)->hostmask, true))) { - return i->reason; + return (*i)->reason; } } } return NULL; } -bool XLineManager::GSortComparison ( const GLine one, const GLine two ) +bool XLineManager::GSortComparison ( const GLine* one, const GLine* two ) { - return (one.duration + one.set_time) < (two.duration + two.set_time); + return (one->duration + one->set_time) < (two->duration + two->set_time); } -bool XLineManager::ESortComparison ( const ELine one, const ELine two ) +bool XLineManager::ESortComparison ( const ELine* one, const ELine* two ) { - return (one.duration + one.set_time) < (two.duration + two.set_time); + return (one->duration + one->set_time) < (two->duration + two->set_time); } -bool XLineManager::ZSortComparison ( const ZLine one, const ZLine two ) +bool XLineManager::ZSortComparison ( const ZLine* one, const ZLine* two ) { - return (one.duration + one.set_time) < (two.duration + two.set_time); + return (one->duration + one->set_time) < (two->duration + two->set_time); } -bool XLineManager::KSortComparison ( const KLine one, const KLine two ) +bool XLineManager::KSortComparison ( const KLine* one, const KLine* two ) { - return (one.duration + one.set_time) < (two.duration + two.set_time); + return (one->duration + one->set_time) < (two->duration + two->set_time); } -bool XLineManager::QSortComparison ( const QLine one, const QLine two ) +bool XLineManager::QSortComparison ( const QLine* one, const QLine* two ) { - return (one.duration + one.set_time) < (two.duration + two.set_time); + return (one->duration + one->set_time) < (two->duration + two->set_time); } // removes lines that have expired @@ -577,43 +587,43 @@ void XLineManager::expire_lines() { time_t current = ServerInstance->Time(); - /* Because we now store all our XLines in sorted order using (i->duration + i->set_time) as a key, this + /* Because we now store all our XLines in sorted order using ((*i)->duration + (*i)->set_time) as a key, this * means that to expire the XLines we just need to do a while, picking off the top few until there are * none left at the head of the queue that are after the current time. */ - while ((glines.size()) && (current > (glines.begin()->duration + glines.begin()->set_time))) + while ((glines.size()) && (current > ((*glines.begin())->duration + (*glines.begin())->set_time))) { - std::vector<GLine>::iterator i = glines.begin(); - ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed G-Line %s (set by %s %d seconds ago)",i->hostmask,i->source,i->duration); + std::vector<GLine*>::iterator i = glines.begin(); + ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed G-Line %s (set by %s %d seconds ago)",(*i)->hostmask,(*i)->source,(*i)->duration); glines.erase(i); } - while ((elines.size()) && (current > (elines.begin()->duration + elines.begin()->set_time))) + while ((elines.size()) && (current > ((*elines.begin())->duration + (*elines.begin())->set_time))) { - std::vector<ELine>::iterator i = elines.begin(); - ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed E-Line %s (set by %s %d seconds ago)",i->hostmask,i->source,i->duration); + std::vector<ELine*>::iterator i = elines.begin(); + ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed E-Line %s (set by %s %d seconds ago)",(*i)->hostmask,(*i)->source,(*i)->duration); elines.erase(i); } - while ((zlines.size()) && (current > (zlines.begin()->duration + zlines.begin()->set_time))) + while ((zlines.size()) && (current > ((*zlines.begin())->duration + (*zlines.begin())->set_time))) { - std::vector<ZLine>::iterator i = zlines.begin(); - ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed Z-Line %s (set by %s %d seconds ago)",i->ipaddr,i->source,i->duration); + std::vector<ZLine*>::iterator i = zlines.begin(); + ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed Z-Line %s (set by %s %d seconds ago)",(*i)->ipaddr,(*i)->source,(*i)->duration); zlines.erase(i); } - while ((klines.size()) && (current > (klines.begin()->duration + klines.begin()->set_time))) + while ((klines.size()) && (current > ((*klines.begin())->duration + (*klines.begin())->set_time))) { - std::vector<KLine>::iterator i = klines.begin(); - ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed K-Line %s (set by %s %d seconds ago)",i->hostmask,i->source,i->duration); + std::vector<KLine*>::iterator i = klines.begin(); + ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed K-Line %s (set by %s %d seconds ago)",(*i)->hostmask,(*i)->source,(*i)->duration); klines.erase(i); } - while ((qlines.size()) && (current > (qlines.begin()->duration + qlines.begin()->set_time))) + while ((qlines.size()) && (current > ((*qlines.begin())->duration + (*qlines.begin())->set_time))) { - std::vector<QLine>::iterator i = qlines.begin(); - ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed Q-Line %s (set by %s %d seconds ago)",i->nick,i->source,i->duration); + std::vector<QLine*>::iterator i = qlines.begin(); + ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed Q-Line %s (set by %s %d seconds ago)",(*i)->nick,(*i)->source,(*i)->duration); qlines.erase(i); } @@ -682,46 +692,46 @@ void XLineManager::apply_lines(const int What) void XLineManager::stats_k(userrec* user, string_list &results) { std::string sn = ServerInstance->Config->ServerName; - for (std::vector<KLine>::iterator i = klines.begin(); i != klines.end(); i++) - results.push_back(sn+" 216 "+user->nick+" :"+i->identmask+"@"+i->hostmask+" "+ConvToStr(i->set_time)+" "+ConvToStr(i->duration)+" "+i->source+" :"+i->reason); - for (std::vector<KLine>::iterator i = pklines.begin(); i != pklines.end(); i++) - results.push_back(sn+" 216 "+user->nick+" :"+i->identmask+"@"+i->hostmask+" "+ConvToStr(i->set_time)+" "+ConvToStr(i->duration)+" "+i->source+" :"+i->reason); + for (std::vector<KLine*>::iterator i = klines.begin(); i != klines.end(); i++) + results.push_back(sn+" 216 "+user->nick+" :"+(*i)->identmask+"@"+(*i)->hostmask+" "+ConvToStr((*i)->set_time)+" "+ConvToStr((*i)->duration)+" "+(*i)->source+" :"+(*i)->reason); + for (std::vector<KLine*>::iterator i = pklines.begin(); i != pklines.end(); i++) + results.push_back(sn+" 216 "+user->nick+" :"+(*i)->identmask+"@"+(*i)->hostmask+" "+ConvToStr((*i)->set_time)+" "+ConvToStr((*i)->duration)+" "+(*i)->source+" :"+(*i)->reason); } void XLineManager::stats_g(userrec* user, string_list &results) { std::string sn = ServerInstance->Config->ServerName; - for (std::vector<GLine>::iterator i = glines.begin(); i != glines.end(); i++) - results.push_back(sn+" 223 "+user->nick+" :"+i->identmask+"@"+i->hostmask+" "+ConvToStr(i->set_time)+" "+ConvToStr(i->duration)+" "+i->source+" :"+i->reason); - for (std::vector<GLine>::iterator i = pglines.begin(); i != pglines.end(); i++) - results.push_back(sn+" 223 "+user->nick+" :"+i->identmask+"@"+i->hostmask+" "+ConvToStr(i->set_time)+" "+ConvToStr(i->duration)+" "+i->source+" :"+i->reason); + for (std::vector<GLine*>::iterator i = glines.begin(); i != glines.end(); i++) + results.push_back(sn+" 223 "+user->nick+" :"+(*i)->identmask+"@"+(*i)->hostmask+" "+ConvToStr((*i)->set_time)+" "+ConvToStr((*i)->duration)+" "+(*i)->source+" :"+(*i)->reason); + for (std::vector<GLine*>::iterator i = pglines.begin(); i != pglines.end(); i++) + results.push_back(sn+" 223 "+user->nick+" :"+(*i)->identmask+"@"+(*i)->hostmask+" "+ConvToStr((*i)->set_time)+" "+ConvToStr((*i)->duration)+" "+(*i)->source+" :"+(*i)->reason); } void XLineManager::stats_q(userrec* user, string_list &results) { std::string sn = ServerInstance->Config->ServerName; - for (std::vector<QLine>::iterator i = qlines.begin(); i != qlines.end(); i++) - results.push_back(sn+" 217 "+user->nick+" :"+i->nick+" "+ConvToStr(i->set_time)+" "+ConvToStr(i->duration)+" "+i->source+" :"+i->reason); - for (std::vector<QLine>::iterator i = pqlines.begin(); i != pqlines.end(); i++) - results.push_back(sn+" 217 "+user->nick+" :"+i->nick+" "+ConvToStr(i->set_time)+" "+ConvToStr(i->duration)+" "+i->source+" :"+i->reason); + for (std::vector<QLine*>::iterator i = qlines.begin(); i != qlines.end(); i++) + results.push_back(sn+" 217 "+user->nick+" :"+(*i)->nick+" "+ConvToStr((*i)->set_time)+" "+ConvToStr((*i)->duration)+" "+(*i)->source+" :"+(*i)->reason); + for (std::vector<QLine*>::iterator i = pqlines.begin(); i != pqlines.end(); i++) + results.push_back(sn+" 217 "+user->nick+" :"+(*i)->nick+" "+ConvToStr((*i)->set_time)+" "+ConvToStr((*i)->duration)+" "+(*i)->source+" :"+(*i)->reason); } void XLineManager::stats_z(userrec* user, string_list &results) { std::string sn = ServerInstance->Config->ServerName; - for (std::vector<ZLine>::iterator i = zlines.begin(); i != zlines.end(); i++) - results.push_back(sn+" 223 "+user->nick+" :"+i->ipaddr+" "+ConvToStr(i->set_time)+" "+ConvToStr(i->duration)+" "+i->source+" :"+i->reason); - for (std::vector<ZLine>::iterator i = pzlines.begin(); i != pzlines.end(); i++) - results.push_back(sn+" 223 "+user->nick+" :"+i->ipaddr+" "+ConvToStr(i->set_time)+" "+ConvToStr(i->duration)+" "+i->source+" :"+i->reason); + for (std::vector<ZLine*>::iterator i = zlines.begin(); i != zlines.end(); i++) + results.push_back(sn+" 223 "+user->nick+" :"+(*i)->ipaddr+" "+ConvToStr((*i)->set_time)+" "+ConvToStr((*i)->duration)+" "+(*i)->source+" :"+(*i)->reason); + for (std::vector<ZLine*>::iterator i = pzlines.begin(); i != pzlines.end(); i++) + results.push_back(sn+" 223 "+user->nick+" :"+(*i)->ipaddr+" "+ConvToStr((*i)->set_time)+" "+ConvToStr((*i)->duration)+" "+(*i)->source+" :"+(*i)->reason); } void XLineManager::stats_e(userrec* user, string_list &results) { std::string sn = ServerInstance->Config->ServerName; - for (std::vector<ELine>::iterator i = elines.begin(); i != elines.end(); i++) - results.push_back(sn+" 223 "+user->nick+" :"+i->identmask+"@"+i->hostmask+" "+ConvToStr(i->set_time)+" "+ConvToStr(i->duration)+" "+i->source+" :"+i->reason); - for (std::vector<ELine>::iterator i = pelines.begin(); i != pelines.end(); i++) - results.push_back(sn+" 223 "+user->nick+" :"+i->identmask+"@"+i->hostmask+" "+ConvToStr(i->set_time)+" "+ConvToStr(i->duration)+" "+i->source+" :"+i->reason); + for (std::vector<ELine*>::iterator i = elines.begin(); i != elines.end(); i++) + results.push_back(sn+" 223 "+user->nick+" :"+(*i)->identmask+"@"+(*i)->hostmask+" "+ConvToStr((*i)->set_time)+" "+ConvToStr((*i)->duration)+" "+(*i)->source+" :"+(*i)->reason); + for (std::vector<ELine*>::iterator i = pelines.begin(); i != pelines.end(); i++) + results.push_back(sn+" 223 "+user->nick+" :"+(*i)->identmask+"@"+(*i)->hostmask+" "+ConvToStr((*i)->set_time)+" "+ConvToStr((*i)->duration)+" "+(*i)->source+" :"+(*i)->reason); } XLineManager::XLineManager(InspIRCd* Instance) : ServerInstance(Instance) |