X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fclientprotocolmsg.h;h=53122cff9965ca9652f696230b521d9f2c38e5a9;hb=405396945a7a3f8f120ad71386b039edfcae0657;hp=d2f838d69af3c667e3455dfab111c214121cdb11;hpb=0e6b18ff9180fc7794cea53d0566411b9afb0d7e;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/clientprotocolmsg.h b/include/clientprotocolmsg.h index d2f838d69..53122cff9 100644 --- a/include/clientprotocolmsg.h +++ b/include/clientprotocolmsg.h @@ -1,7 +1,8 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2016 Attila Molnar + * Copyright (C) 2018, 2020 Sadie Powell + * Copyright (C) 2018 Attila Molnar * * 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 @@ -67,7 +68,7 @@ class ClientProtocol::Messages::Numeric : public ClientProtocol::Message * @param user User to send the numeric to. May be unregistered, must remain valid as long as this object is alive. */ Numeric(const ::Numeric::Numeric& num, User* user) - : ClientProtocol::Message(NULL, (num.GetServer() ? num.GetServer()->GetName() : ServerInstance->Config->ServerName)) + : ClientProtocol::Message(NULL, (num.GetServer() ? num.GetServer() : ServerInstance->FakeClient->server)->GetName()) { if (user->registered & REG_NICK) PushParamRef(user->nick); @@ -81,7 +82,7 @@ class ClientProtocol::Messages::Numeric : public ClientProtocol::Message * @param target Target string, must stay valid as long as this object is alive. */ Numeric(const ::Numeric::Numeric& num, const std::string& target) - : ClientProtocol::Message(NULL, (num.GetServer() ? num.GetServer()->GetName() : ServerInstance->Config->ServerName)) + : ClientProtocol::Message(NULL, (num.GetServer() ? num.GetServer() : ServerInstance->FakeClient->server)->GetName()) { PushParamRef(target); InitFromNumeric(num); @@ -91,7 +92,7 @@ class ClientProtocol::Messages::Numeric : public ClientProtocol::Message * @param num Numeric number. */ Numeric(unsigned int num) - : ClientProtocol::Message(NULL, ServerInstance->Config->ServerName) + : ClientProtocol::Message(NULL, ServerInstance->Config->GetServerName()) { InitCommand(num); PushParam("*"); @@ -487,11 +488,21 @@ class ClientProtocol::Messages::Privmsg : public ClientProtocol::Message * @param target Target string. * @param text Privmsg text, will be copied. * @param mt Message type. + * @param status Prefix character for status messages. If non-zero the message is a status message. Optional, defaults to 0. */ - Privmsg(const std::string& source, const std::string& target, const std::string& text, MessageType mt = MSG_PRIVMSG) + Privmsg(const std::string& source, const std::string& target, const std::string& text, MessageType mt = MSG_PRIVMSG, char status = 0) : ClientProtocol::Message(CommandStrFromMsgType(mt), source) { - PushParam(target); + if (status) + { + std::string rawtarget(1, status); + rawtarget.append(target); + PushParam(rawtarget); + } + else + { + PushParam(target); + } PushParam(text); } @@ -632,7 +643,7 @@ struct ClientProtocol::Messages::Ping : public ClientProtocol::Message Ping() : ClientProtocol::Message("PING") { - PushParamRef(ServerInstance->Config->ServerName); + PushParamRef(ServerInstance->Config->GetServerName()); } /** Constructor. @@ -652,11 +663,14 @@ struct ClientProtocol::Messages::Pong : public ClientProtocol::Message { /** Constructor. * @param cookie Ping cookie. Must remain valid as long as this object is alive. + * @param server Pinged server. Must remain valid as long as this object is alive if non-empty. */ - Pong(const std::string& cookie) - : ClientProtocol::Message("PONG", ServerInstance->Config->ServerName) + Pong(const std::string& cookie, const std::string& server = "") + : ClientProtocol::Message("PONG", ServerInstance->Config->GetServerName()) { - PushParamRef(ServerInstance->Config->ServerName); + PushParamRef(ServerInstance->Config->GetServerName()); + if (!server.empty()) + PushParamRef(server); PushParamRef(cookie); } };