X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_shun.cpp;h=8bf4d30e7bf341d4d6ce773bc7c1734455bb586e;hb=426752022ee4b5158b4cfc6c4531fff285029071;hp=70115288919383cca126e7e5acea59502ad80d34;hpb=349106f3f9f75d7f957fc5d1e71ca650f4807bb9;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_shun.cpp b/src/modules/m_shun.cpp index 701152889..8bf4d30e7 100644 --- a/src/modules/m_shun.cpp +++ b/src/modules/m_shun.cpp @@ -30,10 +30,10 @@ class Shun : public XLine public: std::string matchtext; - Shun(time_t s_time, long d, std::string src, std::string re, std::string shunmask) + Shun(time_t s_time, long d, const std::string& src, const std::string& re, const std::string& shunmask) : XLine(s_time, d, src, re, "SHUN") + , matchtext(shunmask) { - this->matchtext = shunmask; } ~Shun() @@ -108,8 +108,8 @@ class CommandShun : public Command std::string target = parameters[0]; - User *find = ServerInstance->FindNick(target.c_str()); - if (find) + User *find = ServerInstance->FindNick(target); + if ((find) && (find->registered == REG_ALL)) target = std::string("*!*@") + find->GetIPString(); if (parameters.size() == 1) @@ -168,6 +168,9 @@ class CommandShun : public Command RouteDescriptor GetRouting(User* user, const std::vector& parameters) { + if (IS_LOCAL(user)) + return ROUTE_LOCALONLY; // spanningtree will send ADDLINE + return ROUTE_BROADCAST; } };