diff options
author | attilamolnar <attilamolnar@hush.com> | 2013-06-12 21:10:30 +0200 |
---|---|---|
committer | attilamolnar <attilamolnar@hush.com> | 2013-06-12 21:10:30 +0200 |
commit | 56d4680b8cf9621d7ef3e6635dc9ba4707963c8e (patch) | |
tree | 750a00c58ac27601741530839b62b26e84d5eaec | |
parent | 967bce73791bd3dcfe3b5f342a4d6b3a33330bd0 (diff) |
Implement GetRouting() in core commands that require it, remove ugly workaround from spanningtree RouteCommand()
-rw-r--r-- | src/commands/cmd_away.cpp | 4 | ||||
-rw-r--r-- | src/commands/cmd_invite.cpp | 4 | ||||
-rw-r--r-- | src/commands/cmd_kick.cpp | 4 | ||||
-rw-r--r-- | src/commands/cmd_mode.cpp | 4 | ||||
-rw-r--r-- | src/commands/cmd_part.cpp | 4 | ||||
-rw-r--r-- | src/commands/cmd_quit.cpp | 4 | ||||
-rw-r--r-- | src/commands/cmd_topic.cpp | 4 | ||||
-rw-r--r-- | src/modules/m_spanningtree/postcommand.cpp | 10 |
8 files changed, 29 insertions, 9 deletions
diff --git a/src/commands/cmd_away.cpp b/src/commands/cmd_away.cpp index fa3f7fae9..de0969af4 100644 --- a/src/commands/cmd_away.cpp +++ b/src/commands/cmd_away.cpp @@ -38,6 +38,10 @@ class CommandAway : public Command * @return A value from CmdResult to indicate command success or failure. */ CmdResult Handle(const std::vector<std::string>& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) + { + return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); + } }; /** Handle /AWAY diff --git a/src/commands/cmd_invite.cpp b/src/commands/cmd_invite.cpp index 7221521de..355bde9e6 100644 --- a/src/commands/cmd_invite.cpp +++ b/src/commands/cmd_invite.cpp @@ -40,6 +40,10 @@ class CommandInvite : public Command * @return A value from CmdResult to indicate command success or failure. */ CmdResult Handle(const std::vector<std::string>& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) + { + return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); + } }; /** Handle /INVITE diff --git a/src/commands/cmd_kick.cpp b/src/commands/cmd_kick.cpp index 825cfebcb..b59eec030 100644 --- a/src/commands/cmd_kick.cpp +++ b/src/commands/cmd_kick.cpp @@ -38,6 +38,10 @@ class CommandKick : public Command * @return A value from CmdResult to indicate command success or failure. */ CmdResult Handle(const std::vector<std::string>& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) + { + return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); + } }; /** Handle /KICK diff --git a/src/commands/cmd_mode.cpp b/src/commands/cmd_mode.cpp index 17e21b182..746128a6b 100644 --- a/src/commands/cmd_mode.cpp +++ b/src/commands/cmd_mode.cpp @@ -38,6 +38,10 @@ class CommandMode : public Command * @return A value from CmdResult to indicate command success or failure. */ CmdResult Handle(const std::vector<std::string>& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) + { + return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); + } }; diff --git a/src/commands/cmd_part.cpp b/src/commands/cmd_part.cpp index 9b8d1d717..adf9da727 100644 --- a/src/commands/cmd_part.cpp +++ b/src/commands/cmd_part.cpp @@ -38,6 +38,10 @@ class CommandPart : public Command * @return A value from CmdResult to indicate command success or failure. */ CmdResult Handle(const std::vector<std::string>& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) + { + return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); + } }; CmdResult CommandPart::Handle (const std::vector<std::string>& parameters, User *user) diff --git a/src/commands/cmd_quit.cpp b/src/commands/cmd_quit.cpp index 6a6b447e5..61a88e2b5 100644 --- a/src/commands/cmd_quit.cpp +++ b/src/commands/cmd_quit.cpp @@ -38,6 +38,10 @@ class CommandQuit : public Command * @return A value from CmdResult to indicate command success or failure. */ CmdResult Handle(const std::vector<std::string>& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) + { + return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); + } }; diff --git a/src/commands/cmd_topic.cpp b/src/commands/cmd_topic.cpp index 412ca1c06..b96ebcfe7 100644 --- a/src/commands/cmd_topic.cpp +++ b/src/commands/cmd_topic.cpp @@ -40,6 +40,10 @@ class CommandTopic : public Command * @return A value from CmdResult to indicate command success or failure. */ CmdResult Handle(const std::vector<std::string>& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) + { + return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); + } }; CmdResult CommandTopic::Handle (const std::vector<std::string>& parameters, User *user) diff --git a/src/modules/m_spanningtree/postcommand.cpp b/src/modules/m_spanningtree/postcommand.cpp index 8ff7ce29a..a2d0c1168 100644 --- a/src/modules/m_spanningtree/postcommand.cpp +++ b/src/modules/m_spanningtree/postcommand.cpp @@ -41,15 +41,7 @@ void SpanningTreeUtilities::RouteCommand(TreeServer* origin, Command* thiscmd, c if (routing.type == ROUTE_TYPE_LOCALONLY) { - /* Broadcast when it's a core command with the default route descriptor and the source is a - * remote user or a remote server - */ - - Version ver = thiscmd->creator->GetVersion(); - if ((!(ver.Flags & VF_CORE)) || (IS_LOCAL(user)) || (IS_SERVER(user) == ServerInstance->FakeClient)) - return; - - routing = ROUTE_BROADCAST; + return; } else if (routing.type == ROUTE_TYPE_OPT_BCAST) { |