]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/clientprotocolmsg.h
Only check for a join time if a user is actually in the channel.
[user/henk/code/inspircd.git] / include / clientprotocolmsg.h
index b828934d48df22c867480c9d83d71dbf3992a447..ad3ca65c28170997d7801b20e46a6748aa85fe14 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * InspIRCd -- Internet Relay Chat Daemon
  *
- *   Copyright (C) 2018 Sadie Powell <sadie@witchery.services>
+ *   Copyright (C) 2018, 2020-2021 Sadie Powell <sadie@witchery.services>
  *   Copyright (C) 2018 Attila Molnar <attilamolnar@hush.com>
  *
  * This file is part of InspIRCd.  InspIRCd is free software: you can
@@ -68,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);
@@ -82,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);
@@ -92,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("*");
@@ -643,7 +643,7 @@ struct ClientProtocol::Messages::Ping : public ClientProtocol::Message
        Ping()
                : ClientProtocol::Message("PING")
        {
-               PushParamRef(ServerInstance->Config->ServerName);
+               PushParamRef(ServerInstance->Config->GetServerName());
        }
 
        /** Constructor.
@@ -663,11 +663,15 @@ 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);
+               if (server.empty())
+                       PushParamRef(ServerInstance->Config->GetServerName());
+               else
+                       PushParam(server);
                PushParamRef(cookie);
        }
 };