diff options
author | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-10-02 06:13:57 +0000 |
---|---|---|
committer | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-10-02 06:13:57 +0000 |
commit | e57ed15735a3f23d6451845c7cf96758e6909d8c (patch) | |
tree | 78934931112dfe246bfbd25098d289fbef73692b | |
parent | 8456cf5ccd44911f4e56538fe0880dd7fc7cd96d (diff) |
Fix routing for normal core commands like QUIT
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11795 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | include/ctables.h | 4 | ||||
-rw-r--r-- | src/commands/cmd_kick.cpp | 10 | ||||
-rw-r--r-- | src/modules/m_spanningtree/postcommand.cpp | 10 |
3 files changed, 11 insertions, 13 deletions
diff --git a/include/ctables.h b/include/ctables.h index dd83a05a3..c0c094e6f 100644 --- a/include/ctables.h +++ b/include/ctables.h @@ -58,10 +58,10 @@ struct RouteDescriptor { /** Routing type from the enum above */ - const RouteType type; + RouteType type; /** For unicast, the destination server's name */ - const std::string serverdest; + std::string serverdest; /** Create a RouteDescriptor */ diff --git a/src/commands/cmd_kick.cpp b/src/commands/cmd_kick.cpp index d07d53836..d160b030b 100644 --- a/src/commands/cmd_kick.cpp +++ b/src/commands/cmd_kick.cpp @@ -13,14 +13,6 @@ #include "inspircd.h" -#ifndef __CMD_KICK_H__ -#define __CMD_KICK_H__ - -// include the common header files - -#include "users.h" -#include "channels.h" - /** Handle /KICK. These command handlers can be reloaded by the core, * and handle basic RFC1459 commands. Commands within modules work * the same way, however, they can be fully unloaded, where these @@ -41,8 +33,6 @@ class CommandKick : public Command CmdResult Handle(const std::vector<std::string>& parameters, User *user); }; -#endif - /** Handle /KICK */ diff --git a/src/modules/m_spanningtree/postcommand.cpp b/src/modules/m_spanningtree/postcommand.cpp index fae734d52..fbac46faa 100644 --- a/src/modules/m_spanningtree/postcommand.cpp +++ b/src/modules/m_spanningtree/postcommand.cpp @@ -46,7 +46,15 @@ void SpanningTreeUtilities::RouteCommand(TreeServer* origin, const std::string & if (routing.type == ROUTE_TYPE_LOCALONLY) { - return; + Module* srcmodule = thiscmd->creator; + Version ver = srcmodule->GetVersion(); + + if ((ver.Flags & VF_CORE) && !IS_LOCAL(user)) + routing = ROUTE_BROADCAST; + else + return; + if (user == ServerUser) + return; } else if (routing.type == ROUTE_TYPE_OPT_BCAST) { |