diff options
author | David Athay <ko2fan@gmail.com> | 2008-05-14 15:27:10 +0000 |
---|---|---|
committer | David Athay <ko2fan@gmail.com> | 2008-05-14 15:27:10 +0000 |
commit | ebe0c66a036ff159cf4bdbdcaf7a755c95aef83c (patch) | |
tree | d0ac159d83cc970b279938df26a0ead0188959ab /src | |
parent | a53d47c4867cdd29b3e4425f1a10ee3c222b48f3 (diff) | |
download | manaserv-ebe0c66a036ff159cf4bdbdcaf7a755c95aef83c.tar.gz manaserv-ebe0c66a036ff159cf4bdbdcaf7a755c95aef83c.tar.bz2 manaserv-ebe0c66a036ff159cf4bdbdcaf7a755c95aef83c.tar.xz manaserv-ebe0c66a036ff159cf4bdbdcaf7a755c95aef83c.zip |
Added channel registration check to ensure that channel name is not in use
Diffstat (limited to 'src')
-rw-r--r-- | src/chat-server/chatchannelmanager.cpp | 5 | ||||
-rw-r--r-- | src/chat-server/chatchannelmanager.hpp | 1 | ||||
-rw-r--r-- | src/chat-server/chathandler.cpp | 4 |
3 files changed, 9 insertions, 1 deletions
diff --git a/src/chat-server/chatchannelmanager.cpp b/src/chat-server/chatchannelmanager.cpp index 258b2d60..43cfdb44 100644 --- a/src/chat-server/chatchannelmanager.cpp +++ b/src/chat-server/chatchannelmanager.cpp @@ -135,6 +135,11 @@ bool ChatChannelManager::channelExists(int channelId) return mChatChannels.find(channelId) != mChatChannels.end(); } +bool ChatChannelManager::channelExists(const std::string &channelName) +{ + return getChannel(channelName) != NULL; +} + int ChatChannelManager::nextUsable() { int channelId = 0; diff --git a/src/chat-server/chatchannelmanager.hpp b/src/chat-server/chatchannelmanager.hpp index c6cbf5d7..86591606 100644 --- a/src/chat-server/chatchannelmanager.hpp +++ b/src/chat-server/chatchannelmanager.hpp @@ -103,6 +103,7 @@ class ChatChannelManager * @param channelId a channel ID */ bool channelExists(int channelId); + bool channelExists(const std::string &channelName); /** * Get next usable channel ID diff --git a/src/chat-server/chathandler.cpp b/src/chat-server/chathandler.cpp index 423ee743..113ad1f8 100644 --- a/src/chat-server/chathandler.cpp +++ b/src/chat-server/chathandler.cpp @@ -339,7 +339,7 @@ ChatHandler::handleRegisterChannelMessage(ChatClient &client, MessageIn &msg) { reply.writeByte(ERRMSG_INVALID_ARGUMENT); } - else if (guildManager->doesExist(channelName)) + else if (guildManager->doesExist(channelName) || chatChannelManager->channelExists(channelName)) { // Channel already exists reply.writeByte(ERRMSG_ALREADY_TAKEN); @@ -835,6 +835,8 @@ void ChatHandler::sendGuildRejoin(ChatClient &client) client.send(msg); + sendGuildListUpdate(guildName, client.characterName); + } } |