summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorattilamolnar <attilamolnar@hush.com>2013-06-12 21:10:30 +0200
committerattilamolnar <attilamolnar@hush.com>2013-06-12 21:10:30 +0200
commit56d4680b8cf9621d7ef3e6635dc9ba4707963c8e (patch)
tree750a00c58ac27601741530839b62b26e84d5eaec
parent967bce73791bd3dcfe3b5f342a4d6b3a33330bd0 (diff)
Implement GetRouting() in core commands that require it, remove ugly workaround from spanningtree RouteCommand()
-rw-r--r--src/commands/cmd_away.cpp4
-rw-r--r--src/commands/cmd_invite.cpp4
-rw-r--r--src/commands/cmd_kick.cpp4
-rw-r--r--src/commands/cmd_mode.cpp4
-rw-r--r--src/commands/cmd_part.cpp4
-rw-r--r--src/commands/cmd_quit.cpp4
-rw-r--r--src/commands/cmd_topic.cpp4
-rw-r--r--src/modules/m_spanningtree/postcommand.cpp10
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)
{