]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
m_spanningtree Set the bursting flag in the FJOIN handler based on whether the source...
authorAttila Molnar <attilamolnar@hush.com>
Sat, 26 Apr 2014 14:22:03 +0000 (16:22 +0200)
committerAttila Molnar <attilamolnar@hush.com>
Sat, 26 Apr 2014 14:22:03 +0000 (16:22 +0200)
Previously the flag was true if our route to the source was bursting, which resulted in m_joinflood incorrectly registering netjoins when a remote server was bursting

Fixes issue #839 reported by @joshtek0

src/modules/m_spanningtree/fjoin.cpp

index ee18c8e8742dd02021ce2c978a447e8fb8ef1f51..c8cd768aabd7be3e2b26ae253cec8ee38d82412c 100644 (file)
@@ -66,7 +66,8 @@ CmdResult CommandFJoin::Handle(const std::vector<std::string>& params, User *src
        bool created = !chan;                                           /* True if the channel doesnt exist here yet */
        std::string item;                                               /* One item in the list of nicks */
 
-       TreeSocket* src_socket = Utils->FindServer(srcuser->server)->GetRoute()->GetSocket();
+       TreeServer* src_server = Utils->FindServer(srcuser->server);
+       TreeSocket* src_socket = src_server->GetRoute()->GetSocket();
 
        if (!TS)
        {
@@ -196,7 +197,7 @@ CmdResult CommandFJoin::Handle(const std::vector<std::string>& params, User *src
                                for (std::string::iterator x = modes.begin(); x != modes.end(); ++x)
                                        modestack.Push(*x, who->nick);
 
-                               Channel::JoinUser(who, channel.c_str(), true, "", route_back_again->bursting, TS);
+                               Channel::JoinUser(who, channel.c_str(), true, "", src_server->bursting, TS);
                        }
                        else
                        {