diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-07-13 11:04:41 +0200 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-07-13 11:04:41 +0200 |
commit | 9a7b638743dc2ab9770ed54f8c0c2bd082cbb45c (patch) | |
tree | d866a4cd26191a9d1b1d538d4ce348a11fa59028 /Applications | |
parent | d9d13f2445e33ae09c7423337f095fca205e519a (diff) | |
download | serenity-9a7b638743dc2ab9770ed54f8c0c2bd082cbb45c.zip |
IRCClient: Process incoming NOTICE messages like PRIVMSG.
They should be handled slightly differently, but at least now we're doing
*something* withthem.
Diffstat (limited to 'Applications')
-rw-r--r-- | Applications/IRCClient/IRCClient.cpp | 12 | ||||
-rw-r--r-- | Applications/IRCClient/IRCClient.h | 7 |
2 files changed, 15 insertions, 4 deletions
diff --git a/Applications/IRCClient/IRCClient.cpp b/Applications/IRCClient/IRCClient.cpp index 976c2256d1..01821615b4 100644 --- a/Applications/IRCClient/IRCClient.cpp +++ b/Applications/IRCClient/IRCClient.cpp @@ -267,7 +267,10 @@ void IRCClient::handle(const Message& msg) return handle_topic(msg); if (msg.command == "PRIVMSG") - return handle_privmsg(msg); + return handle_privmsg_or_notice(msg, PrivmsgOrNotice::Privmsg); + + if (msg.command == "NOTICE") + return handle_privmsg_or_notice(msg, PrivmsgOrNotice::Notice); if (msg.command == "NICK") return handle_nick(msg); @@ -326,7 +329,7 @@ bool IRCClient::is_nick_prefix(char ch) const return false; } -void IRCClient::handle_privmsg(const Message& msg) +void IRCClient::handle_privmsg_or_notice(const Message& msg, PrivmsgOrNotice type) { if (msg.arguments.size() < 2) return; @@ -337,7 +340,10 @@ void IRCClient::handle_privmsg(const Message& msg) auto target = msg.arguments[0]; #ifdef IRC_DEBUG - printf("handle_privmsg: sender_nick='%s', target='%s'\n", sender_nick.characters(), target.characters()); + printf("handle_privmsg_or_notice: type='%s', sender_nick='%s', target='%s'\n", + type == PrivmsgOrNotice::Privmsg ? "privmsg" : "notice", + sender_nick.characters(), + target.characters()); #endif if (sender_nick.is_empty()) diff --git a/Applications/IRCClient/IRCClient.h b/Applications/IRCClient/IRCClient.h index e72b7cfc7a..f276b22c73 100644 --- a/Applications/IRCClient/IRCClient.h +++ b/Applications/IRCClient/IRCClient.h @@ -87,6 +87,11 @@ private: Vector<String> arguments; }; + enum class PrivmsgOrNotice { + Privmsg, + Notice, + }; + void receive_from_server(); void send(const String&); void send_user(); @@ -109,7 +114,7 @@ private: void handle_rpl_topicwhotime(const Message&); void handle_rpl_endofnames(const Message&); void handle_rpl_namreply(const Message&); - void handle_privmsg(const Message&); + void handle_privmsg_or_notice(const Message&, PrivmsgOrNotice); void handle_nick(const Message&); void handle(const Message&); void handle_user_command(const String&); |