X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fu_listmode.h;h=6e654f64faec1db62ced00e505438f78f4361506;hb=a23a840749db9646884907ae28588b1962dc2449;hp=390a8729b444f4b4b8b5f022c657080bec4ad832;hpb=cc07a20aa29bfa7bf23f3cd99b97929882113328;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/u_listmode.h b/include/u_listmode.h index 390a8729b..6e654f64f 100644 --- a/include/u_listmode.h +++ b/include/u_listmode.h @@ -16,10 +16,10 @@ /** Get the time as a string */ -inline std::string stringtime() +inline std::string stringtime(InspIRCd* Instance) { std::ostringstream TIME; - TIME << time(NULL); + TIME << Instance->Time(); return TIME.str(); } @@ -178,7 +178,7 @@ class ListModeBase : public ModeHandler { for (modelist::reverse_iterator it = el->rbegin(); it != el->rend(); ++it) { - user->WriteNumeric(listnumeric, "%s %s %s %s %s", user->nick.c_str(), channel->name.c_str(), it->mask.c_str(), it->nick.c_str(), it->time.c_str()); + user->WriteNumeric(listnumeric, "%s %s %s %s %s", user->nick.c_str(), channel->name.c_str(), it->mask.c_str(), (it->nick.length() ? it->nick.c_str() : ServerInstance->Config->ServerName), it->time.c_str()); } } user->WriteNumeric(endoflistnumeric, "%s %s :%s", user->nick.c_str(), channel->name.c_str(), endofliststring.c_str()); @@ -331,7 +331,7 @@ class ListModeBase : public ModeHandler ListItem e; e.mask = parameter; e.nick = servermode ? ServerInstance->Config->ServerName : source->nick; - e.time = stringtime(); + e.time = stringtime(ServerInstance); el->push_back(e); return MODEACTION_ALLOW; @@ -521,12 +521,13 @@ class ListModeBase : public ModeHandler { if (LM->extban && it->mask.length() > 1 && it->mask[0] == LM->extban && it->mask[1] == ':') { + static std::string ext = it->mask.substr(2); if (LM->user) { - if (InspIRCd::Match(LM->user->GetFullRealHost(), it->mask.substr(2)) || InspIRCd::Match(LM->user->GetFullHost(), it->mask.substr(2)) || (InspIRCd::MatchCIDR(LM->literal, it->mask.substr(2)))) + if (InspIRCd::Match(LM->user->GetFullRealHost(), ext) || InspIRCd::Match(LM->user->GetFullHost(), ext) || (InspIRCd::MatchCIDR(LM->literal, ext))) return it->mask.c_str(); } - else if (InspIRCd::Match(LM->literal, it->mask.substr(2))) + else if (InspIRCd::Match(LM->literal, ext)) return it->mask.c_str(); } else