# # old_revision [aed910f38a49e8f6e3525231ded1ed95c77ec7a1] # # patch "libpurple/protocols/irc/msgs.c" # from [2edff1a3e2eb8e7d3a2cce08a575165d5d4cbff1] # to [055b9e79cc6ec73f938566ed84e53afbc8ef9ab0] # # patch "libpurple/protocols/irc/parse.c" # from [5b7ebf223c97705e602213f69c8d23e3f8f8c254] # to [39310f7a71320587a374849179f5da30c79e4cf2] # ============================================================ --- libpurple/protocols/irc/msgs.c 2edff1a3e2eb8e7d3a2cce08a575165d5d4cbff1 +++ libpurple/protocols/irc/msgs.c 055b9e79cc6ec73f938566ed84e53afbc8ef9ab0 @@ -595,17 +595,15 @@ void irc_msg_motd(struct irc_conn *irc, if (!args || !args[0]) return; - if (!irc->motd) - irc->motd = g_string_new(""); - if (!strcmp(name, "375")) { if (irc->motd) g_string_free(irc->motd, TRUE); irc->motd = g_string_new(""); return; - } else if (!strcmp(name, "376")) { + } else if (!strcmp(name, "376") || !strcmp(name, "422")) { /* dircproxy 1.0.5 does not send 251 on reconnection, so * finalize the connection here if it is not already done. */ + /* bip apparently doesn't send 251 at all */ irc_connected(irc, args[0]); return; } ============================================================ --- libpurple/protocols/irc/parse.c 5b7ebf223c97705e602213f69c8d23e3f8f8c254 +++ libpurple/protocols/irc/parse.c 39310f7a71320587a374849179f5da30c79e4cf2 @@ -86,6 +86,7 @@ static struct _irc_msg { { "403", "nc:", irc_msg_nochan }, /* No such channel */ { "404", "nt:", irc_msg_nosend }, /* Cannot send to chan */ { "421", "nv:", irc_msg_unknown }, /* Unknown command */ + { "422", "n:", irc_msg_motd }, /* No MOTD */ { "432", "vn:", irc_msg_badnick }, /* Erroneous nickname */ { "433", "vn:", irc_msg_nickused }, /* Nickname already in use */ { "437", "nc:", irc_msg_unavailable }, /* Nick/channel is unavailable */