qulogic/pidgin

Parents e96a15f7f0d8
Children 77d01d3cf007
IRCv3: Add constants for all existing errors, messages, and replies.

Testing Done:
Ran `ninja turtles` and connected to my local ergo instance.

Reviewed at https://reviews.imfreedom.org/r/2823/
--- a/libpurple/protocols/ircv3/purpleircv3constants.h Sun Nov 19 00:02:56 2023 -0600
+++ b/libpurple/protocols/ircv3/purpleircv3constants.h Sun Nov 19 00:05:16 2023 -0600
@@ -24,13 +24,211 @@
#define PURPLE_IRCV3_CONSTANTS_H
/**
+ * PURPLE_IRCV3_ERR_NICKLOCKED:
+ *
+ * A constant for the IRC %NICKLOCKED error.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_ERR_NICKLOCKED ("902") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_ERR_SASLABORTED:
+ *
+ * A constant for the IRC %SASLABORTED error.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_ERR_SASLABORTED ("906") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_ERR_SASLALREADY:
+ *
+ * A constant for the IRC %SASLALREADY error.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_ERR_SASLALREADY ("907") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_ERR_SASLFAIL:
+ *
+ * A constant for the IRC %SASLFAIL error.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_ERR_SASLFAIL ("904") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_ERR_SASLTOOLONG:
+ *
+ * A constant for the IRC %SASLTOOLONG error.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_ERR_SASLTOOLONG ("905") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV_MSG_AUTHENTICATE:
+ *
+ * A constant for the IRC %AUTHENTICATE message.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_MSG_AUTHENTICATE ("AUTHENTICATE") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV_MSG_CAP:
+ *
+ * A constant for the IRC %CAP message.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_MSG_CAP ("CAP") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_MSG_NOTICE:
+ *
+ * A constant for the IRC %NOTICE message.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_MSG_NOTICE ("NOTICE") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_MSG_PING:
+ *
+ * A constant for the IRC %PING message.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_MSG_PING ("PING") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_MSG_PRIVMSG:
+ *
+ * A constant for the IRC %PRIVMSG message.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_MSG_PRIVMSG ("PRIVMSG") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
* PURPLE_IRCV3_MSG_TOPIC:
*
* A constant for the IRC %TOPIC message.
*
* Since: 3.0.0
*/
-#define PURPLE_IRCV3_MSG_TOPIC ("TOPIC")
+#define PURPLE_IRCV3_MSG_TOPIC ("TOPIC") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_CREATED:
+ *
+ * A constant for the IRC %CREATED reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_CREATED ("003") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_ENDOFMOTD:
+ *
+ * A constant for the IRC %ENDOFMOTD reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_ENDOFMOTD ("376") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_LOGGEDIN:
+ *
+ * A constant for the IRC %LOGGEDIN reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_LOGGEDIN ("900") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_LOGGEDOUT:
+ *
+ * A constant for the IRC %LOGGEDOUT reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_LOGGEDOUT ("901") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_LUSERCHANNELS:
+ *
+ * A constant for the IRC %LUSERCHANNELS reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_LUSERCHANNELS ("254") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_LUSERCLIENT:
+ *
+ * A constant for the IRC %LUSERCLIENT reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_LUSERCLIENT ("251") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_LUSERME:
+ *
+ * A constant for the IRC %LUSERME reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_LUSERME ("255") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_LUSEROP:
+ *
+ * A constant for the IRC %LUSEROP reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_LUSEROP ("252") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_LUSERUNKNOWN:
+ *
+ * A constant for the IRC %LUSERUNKNOWN reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_LUSERUNKNOWN ("253") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_MYINFO:
+ *
+ * A constant for the IRC %MYINFO reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_MYINFO ("004") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_MOTD:
+ *
+ * A constant for the IRC %MOTD reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_MOTD ("372") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_MOTDSTART:
+ *
+ * A constant for the IRC %MOTDSTART reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_MOTDSTART ("375") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
/**
* PURPLE_IRCV3_RPL_NOTOPIC:
@@ -39,7 +237,25 @@
*
* Since: 3.0.0
*/
-#define PURPLE_IRCV3_RPL_NOTOPIC ("331")
+#define PURPLE_IRCV3_RPL_NOTOPIC ("331") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_SASLMECHS:
+ *
+ * A constant for the IRC %SASLMECHS reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_SASLMECHS ("908") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_SASLSUCCESS:
+ *
+ * A constant for the IRC %SASLSUCCESS reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_SASLSUCCESS ("903") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
/**
* PURPLE_IRCV3_RPL_TOPIC:
@@ -48,6 +264,24 @@
*
* Since: 3.0.0
*/
-#define PURPLE_IRCV3_RPL_TOPIC ("332")
+#define PURPLE_IRCV3_RPL_TOPIC ("332") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_WELCOME:
+ *
+ * A constant for the IRC %WELCOME reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_WELCOME ("001") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
+
+/**
+ * PURPLE_IRCV3_RPL_YOURHOST:
+ *
+ * A constant for the IRC %YOURHOST reply.
+ *
+ * Since: 3.0.0
+ */
+#define PURPLE_IRCV3_RPL_YOURHOST ("002") PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0
#endif /* PURPLE_IRCV3_CONSTANTS_H */
--- a/libpurple/protocols/ircv3/purpleircv3messagehandlers.c Sun Nov 19 00:02:56 2023 -0600
+++ b/libpurple/protocols/ircv3/purpleircv3messagehandlers.c Sun Nov 19 00:05:16 2023 -0600
@@ -190,7 +190,7 @@
}
}
- if(purple_strequal(command, "NOTICE")) {
+ if(purple_strequal(command, PURPLE_IRCV3_MSG_NOTICE)) {
flags |= PURPLE_MESSAGE_NOTIFY;
}
--- a/libpurple/protocols/ircv3/purpleircv3parser.c Sun Nov 19 00:02:56 2023 -0600
+++ b/libpurple/protocols/ircv3/purpleircv3parser.c Sun Nov 19 00:05:16 2023 -0600
@@ -434,13 +434,13 @@
purple_ircv3_message_handler_fallback);
/* Core functionality. */
- purple_ircv3_parser_add_handler(parser, "CAP",
+ purple_ircv3_parser_add_handler(parser, PURPLE_IRCV3_MSG_CAP,
purple_ircv3_capabilities_message_handler);
- purple_ircv3_parser_add_handler(parser, "NOTICE",
+ purple_ircv3_parser_add_handler(parser, PURPLE_IRCV3_MSG_NOTICE,
purple_ircv3_message_handler_privmsg);
- purple_ircv3_parser_add_handler(parser, "PING",
+ purple_ircv3_parser_add_handler(parser, PURPLE_IRCV3_MSG_PING,
purple_ircv3_message_handler_ping);
- purple_ircv3_parser_add_handler(parser, "PRIVMSG",
+ purple_ircv3_parser_add_handler(parser, PURPLE_IRCV3_MSG_PRIVMSG,
purple_ircv3_message_handler_privmsg);
/* Topic stuff. */
@@ -454,37 +454,50 @@
/* Post Registration Greetings */
purple_ircv3_parser_add_handlers(parser,
purple_ircv3_message_handler_status_ignore_param0,
- "001", "002", "003", "004", NULL);
+ PURPLE_IRCV3_RPL_WELCOME,
+ PURPLE_IRCV3_RPL_YOURHOST,
+ PURPLE_IRCV3_RPL_CREATED,
+ PURPLE_IRCV3_RPL_MYINFO,
+ NULL);
/* Luser's */
purple_ircv3_parser_add_handlers(parser,
purple_ircv3_message_handler_status_ignore_param0,
- "251", "252", "253", "254", "255", NULL);
+ PURPLE_IRCV3_RPL_LUSERCLIENT,
+ PURPLE_IRCV3_RPL_LUSEROP,
+ PURPLE_IRCV3_RPL_LUSERUNKNOWN,
+ PURPLE_IRCV3_RPL_LUSERCHANNELS,
+ PURPLE_IRCV3_RPL_LUSERME,
+ NULL);
/* MOTD */
purple_ircv3_parser_add_handlers(parser,
purple_ircv3_message_handler_status_ignore_param0,
- "372", "375", "376", NULL);
+ PURPLE_IRCV3_RPL_MOTD,
+ PURPLE_IRCV3_RPL_MOTDSTART,
+ PURPLE_IRCV3_RPL_ENDOFMOTD,
+ NULL);
/* SASL stuff. */
- purple_ircv3_parser_add_handler(parser, "900",
+ purple_ircv3_parser_add_handler(parser, PURPLE_IRCV3_RPL_LOGGEDIN,
purple_ircv3_sasl_logged_in);
- purple_ircv3_parser_add_handler(parser, "901",
+ purple_ircv3_parser_add_handler(parser, PURPLE_IRCV3_RPL_LOGGEDOUT,
purple_ircv3_sasl_logged_out);
- purple_ircv3_parser_add_handler(parser, "902",
+ purple_ircv3_parser_add_handler(parser, PURPLE_IRCV3_ERR_NICKLOCKED,
purple_ircv3_sasl_nick_locked);
- purple_ircv3_parser_add_handler(parser, "903",
+ purple_ircv3_parser_add_handler(parser, PURPLE_IRCV3_RPL_SASLSUCCESS,
purple_ircv3_sasl_success);
- purple_ircv3_parser_add_handler(parser, "904",
+ purple_ircv3_parser_add_handler(parser, PURPLE_IRCV3_ERR_SASLFAIL,
purple_ircv3_sasl_failed);
- purple_ircv3_parser_add_handler(parser, "905",
+ purple_ircv3_parser_add_handler(parser, PURPLE_IRCV3_ERR_SASLTOOLONG,
purple_ircv3_sasl_message_too_long);
- purple_ircv3_parser_add_handler(parser, "906",
+ purple_ircv3_parser_add_handler(parser, PURPLE_IRCV3_ERR_SASLABORTED,
purple_ircv3_sasl_aborted);
- purple_ircv3_parser_add_handler(parser, "907",
+ purple_ircv3_parser_add_handler(parser, PURPLE_IRCV3_ERR_SASLALREADY,
purple_ircv3_sasl_already_authed);
- purple_ircv3_parser_add_handler(parser, "908",
+ purple_ircv3_parser_add_handler(parser, PURPLE_IRCV3_RPL_SASLMECHS,
purple_ircv3_sasl_mechanisms);
- purple_ircv3_parser_add_handler(parser, "AUTHENTICATE",
+ purple_ircv3_parser_add_handler(parser, PURPLE_IRCV3_MSG_AUTHENTICATE,
purple_ircv3_sasl_authenticate);
+
}
--- a/libpurple/protocols/ircv3/purpleircv3sasl.c Sun Nov 19 00:02:56 2023 -0600
+++ b/libpurple/protocols/ircv3/purpleircv3sasl.c Sun Nov 19 00:05:16 2023 -0600
@@ -24,6 +24,7 @@
#include "purpleircv3capabilities.h"
#include "purpleircv3connection.h"
+#include "purpleircv3constants.h"
#include "purpleircv3core.h"
#define PURPLE_IRCV3_SASL_DATA_KEY ("sasl-data")
@@ -113,7 +114,8 @@
g_message("trying SASL '%s' mechanism", next_mechanism);
- purple_ircv3_connection_writef(connection, "AUTHENTICATE %s",
+ purple_ircv3_connection_writef(connection, "%s %s",
+ PURPLE_IRCV3_MSG_AUTHENTICATE,
next_mechanism);
}
@@ -543,11 +545,13 @@
encoded = g_base64_encode(client_out, client_out_length);
g_clear_pointer(&client_out, g_free);
- purple_ircv3_connection_writef(connection, "AUTHENTICATE %s",
+ purple_ircv3_connection_writef(connection, "%s %s",
+ PURPLE_IRCV3_MSG_AUTHENTICATE,
encoded);
g_free(encoded);
} else {
- purple_ircv3_connection_writef(connection, "AUTHENTICATE +");
+ purple_ircv3_connection_writef(connection, "%s +",
+ PURPLE_IRCV3_MSG_AUTHENTICATE);
}
}
--- a/libpurple/protocols/ircv3/tests/test_ircv3_parser.c Sun Nov 19 00:02:56 2023 -0600
+++ b/libpurple/protocols/ircv3/tests/test_ircv3_parser.c Sun Nov 19 00:05:16 2023 -0600
@@ -20,6 +20,7 @@
#include <purple.h>
+#include "../purpleircv3constants.h"
#include "../purpleircv3message.h"
#include "../purpleircv3parser.h"
@@ -240,7 +241,7 @@
test_purple_ircv3_parser_with_source_and_trailing_colon(void) {
TestPurpleIRCv3ParserData data = {
.source = "coolguy",
- .command = "PRIVMSG",
+ .command = PURPLE_IRCV3_MSG_PRIVMSG,
.n_params = 2,
.params = {"bar", "lol :) "},
};
@@ -383,7 +384,7 @@
*/
TestPurpleIRCv3ParserData data = {
.source = "coolguy!ag@net\x03" "5w\x03" "ork.admin",
- .command = "PRIVMSG",
+ .command = PURPLE_IRCV3_MSG_PRIVMSG,
.n_params = 2,
.params = {"foo", "bar baz"},
};
@@ -402,7 +403,7 @@
*/
TestPurpleIRCv3ParserData data = {
.source = "coolguy!~ag@n\x02" "et\x03" "05w\x0f" "ork.admin",
- .command = "PRIVMSG",
+ .command = PURPLE_IRCV3_MSG_PRIVMSG,
.n_params = 2,
.params = {"foo", "bar baz"},
};
@@ -634,7 +635,7 @@
test_purple_ircv3_parser_message_tags_none(void) {
TestPurpleIRCv3ParserData data = {
.source = "nick!ident@host.com",
- .command = "PRIVMSG",
+ .command = PURPLE_IRCV3_MSG_PRIVMSG,
.n_params = 2,
.params = {"me", "Hello"},
};
@@ -649,7 +650,7 @@
test_purple_ircv3_parser_message_tags_3_tags(void) {
TestPurpleIRCv3ParserData data = {
.source = "nick!ident@host.com",
- .command = "PRIVMSG",
+ .command = PURPLE_IRCV3_MSG_PRIVMSG,
.n_params = 2,
.params = {"me", "Hello"},
};
@@ -670,7 +671,7 @@
test_purple_ircv3_parser_message_tags_client_only(void) {
TestPurpleIRCv3ParserData data = {
.source = "url_bot!bot@example.com",
- .command = "PRIVMSG",
+ .command = PURPLE_IRCV3_MSG_PRIVMSG,
.n_params = 2,
.params = {"#channel", "Example.com: A News Story"},
};