X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_callerid.cpp;h=b575491d6153376d56325481516f1e90b92b5046;hb=3151d60c1ecc9462e4c335282ee6c31672f45111;hp=f2cf112bf6581b15f2b0200286da651f5821dc3e;hpb=8459e625349c03039e7545c213f84d8756034390;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_callerid.cpp b/src/modules/m_callerid.cpp index f2cf112bf..b575491d6 100644 --- a/src/modules/m_callerid.cpp +++ b/src/modules/m_callerid.cpp @@ -1,10 +1,16 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2009 Daniel De Graaf + * Copyright (C) 2013, 2017-2019 Sadie Powell + * Copyright (C) 2013 Adam + * Copyright (C) 2012-2016 Attila Molnar + * Copyright (C) 2012, 2019 Robby + * Copyright (C) 2009-2010 Daniel De Graaf + * Copyright (C) 2009 Uli Schlachter + * Copyright (C) 2009 John Brooks * Copyright (C) 2008-2009 Robin Burchell + * Copyright (C) 2008, 2010 Craig Edwards * Copyright (C) 2008 Thomas Stagner - * Copyright (C) 2008 Craig Edwards * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -54,7 +60,7 @@ class callerid_data callerid_data() : lastnotify(0) { } - std::string ToString(SerializeFormat format) const + std::string ToString(bool human) const { std::ostringstream oss; oss << lastnotify; @@ -62,7 +68,7 @@ class callerid_data { User* u = *i; // Encode UIDs. - oss << "," << (format == FORMAT_USER ? u->nick : u->uuid); + oss << "," << (human ? u->nick : u->uuid); } return oss.str(); } @@ -75,22 +81,20 @@ struct CallerIDExtInfo : public ExtensionItem { } - std::string serialize(SerializeFormat format, const Extensible* container, void* item) const CXX11_OVERRIDE + std::string ToHuman(const Extensible* container, void* item) const CXX11_OVERRIDE { - std::string ret; - if (format != FORMAT_NETWORK) - { - callerid_data* dat = static_cast(item); - ret = dat->ToString(format); - } - return ret; + callerid_data* dat = static_cast(item); + return dat->ToString(true); } - void unserialize(SerializeFormat format, Extensible* container, const std::string& value) CXX11_OVERRIDE + std::string ToInternal(const Extensible* container, void* item) const CXX11_OVERRIDE { - if (format == FORMAT_NETWORK) - return; + callerid_data* dat = static_cast(item); + return dat->ToString(false); + } + void FromInternal(Extensible* container, const std::string& value) CXX11_OVERRIDE + { void* old = get_raw(container); if (old) this->free(NULL, old); @@ -198,7 +202,7 @@ public: parameter = (action.second ? "" : "-") + action.first->uuid; } - /** Will take any number of nicks (up to MaxTargets), which can be seperated by commas. + /** Will take any number of nicks (up to MaxTargets), which can be separated by commas. * - in front of any nick removes, and an * lists. This effectively means you can do: * /accept nick1,nick2,nick3,* * to add 3 nicks and then show your list @@ -239,12 +243,12 @@ public: RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { // There is a list in parameters[0] in two cases: - // Either when the source is remote, this happens because 2.0 servers send comma seperated uuid lists, + // Either when the source is remote, this happens because 2.0 servers send comma separated uuid lists, // we don't split those but broadcast them, as before. // // Or if the source is local then LoopCall() runs OnPostCommand() after each entry in the list, // meaning the linking module has sent an ACCEPT already for each entry in the list to the - // appropiate server and the ACCEPT with the list of nicks (this) doesn't need to be sent anywhere. + // appropriate server and the ACCEPT with the list of nicks (this) doesn't need to be sent anywhere. if ((!IS_LOCAL(user)) && (parameters[0].find(',') != std::string::npos)) return ROUTE_BROADCAST; @@ -392,7 +396,7 @@ public: Version GetVersion() CXX11_OVERRIDE { - return Version("Implementation of callerid, usermode +g, /accept", VF_COMMON | VF_VENDOR); + return Version("Provides user mode g (bot) which allows users to require that other users are on their whitelist before messaging them.", VF_COMMON | VF_VENDOR); } void On005Numeric(std::map& tokens) CXX11_OVERRIDE @@ -422,7 +426,7 @@ public: if (now > (dat->lastnotify + (time_t)notify_cooldown)) { user->WriteNumeric(RPL_TARGNOTIFY, dest->nick, "has been informed that you messaged them."); - dest->WriteRemoteNumeric(RPL_UMODEGMSG, user->nick, InspIRCd::Format("%s@%s", user->ident.c_str(), user->GetDisplayedHost().c_str()), InspIRCd::Format("is messaging you, and you have umode +g. Use /ACCEPT +%s to allow.", + dest->WriteRemoteNumeric(RPL_UMODEGMSG, user->nick, InspIRCd::Format("%s@%s", user->ident.c_str(), user->GetDisplayedHost().c_str()), InspIRCd::Format("is messaging you, and you have user mode +g set. Use /ACCEPT +%s to allow.", user->nick.c_str())); dat->lastnotify = now; }