pidgin/pidgin

d3117aac63b3
Parents 558106ebf999
Children ba714f65be70
Add support for server passwords to the IRCv3 protocol plugin

Testing Done:
Used `ngrep` to verify that the `PASS` command was sent when necessary and was not sent when it shouldn't have been.

Reviewed at https://reviews.imfreedom.org/r/2108/
--- a/libpurple/protocols/ircv3/purpleircv3connection.c Fri Dec 02 12:39:22 2022 -0600
+++ b/libpurple/protocols/ircv3/purpleircv3connection.c Fri Dec 02 12:46:05 2022 -0600
@@ -60,6 +60,19 @@
* Helpers
*****************************************************************************/
static void
+purple_ircv3_connection_send_pass_command(PurpleIRCv3Connection *connection) {
+ PurpleAccount *account = NULL;
+ const char *password = NULL;
+
+ account = purple_connection_get_account(PURPLE_CONNECTION(connection));
+
+ password = purple_account_get_string(account, "server-password", "");
+ if(password != NULL && *password != '\0') {
+ purple_ircv3_connection_writef(connection, "PASS %s", password);
+ }
+}
+
+static void
purple_ircv3_connection_send_user_command(PurpleIRCv3Connection *connection) {
PurpleAccount *account = NULL;
const char *identname = NULL;
@@ -221,6 +234,7 @@
/* Send our registration commands. */
purple_ircv3_capabilities_start(connection->capabilities);
+ purple_ircv3_connection_send_pass_command(connection);
purple_ircv3_connection_send_user_command(connection);
purple_ircv3_connection_send_nick_command(connection);
}
--- a/libpurple/protocols/ircv3/purpleircv3protocol.c Fri Dec 02 12:39:22 2022 -0600
+++ b/libpurple/protocols/ircv3/purpleircv3protocol.c Fri Dec 02 12:46:05 2022 -0600
@@ -53,6 +53,10 @@
option = purple_account_option_bool_new(_("Use TLS"), "use-tls", TRUE);
options = g_list_append(options, option);
+ option = purple_account_option_string_new(_("Server password"),
+ "server-password", "");
+ options = g_list_append(options, option);
+
option = purple_account_option_string_new(_("Ident name"), "ident", "");
options = g_list_append(options, option);