From 65e87c9861385cf8dc05c612e8b67edebea61284 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 12 Mar 2002 20:51:03 +0000 Subject: fix to some broken "ircds" git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2589 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/irc/core/irc-servers.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/irc') diff --git a/src/irc/core/irc-servers.c b/src/irc/core/irc-servers.c index 1fc7faaa..11817188 100644 --- a/src/irc/core/irc-servers.c +++ b/src/irc/core/irc-servers.c @@ -507,6 +507,19 @@ static void event_server_info(IRC_SERVER_REC *server, const char *data) g_free(params); } +static void event_motd(IRC_SERVER_REC *server, const char *data, const char *from) +{ + if (server->connected) + return; + + /* Stupid broken piece of shit ircd didn't send us 001, + you'd think they could at least get that right?? + But no, then I'll have to go and add these idiotic kludges + to make them work. Maybe I should instead get the users of these + servers to complain about it to their admins. */ + event_connected(server, data, from); +} + static void event_channels_formed(IRC_SERVER_REC *server, const char *data) { char *params, *channels; @@ -564,6 +577,7 @@ void irc_servers_init(void) signal_add_last("server quit", (SIGNAL_FUNC) sig_server_quit); signal_add("event 001", (SIGNAL_FUNC) event_connected); signal_add("event 004", (SIGNAL_FUNC) event_server_info); + signal_add("event 375", (SIGNAL_FUNC) event_motd); signal_add("event 254", (SIGNAL_FUNC) event_channels_formed); signal_add("event 465", (SIGNAL_FUNC) event_server_banned); signal_add("event error", (SIGNAL_FUNC) event_error); @@ -586,6 +600,7 @@ void irc_servers_deinit(void) signal_remove("server quit", (SIGNAL_FUNC) sig_server_quit); signal_remove("event 001", (SIGNAL_FUNC) event_connected); signal_remove("event 004", (SIGNAL_FUNC) event_server_info); + signal_remove("event 375", (SIGNAL_FUNC) event_motd); signal_remove("event 254", (SIGNAL_FUNC) event_channels_formed); signal_remove("event 465", (SIGNAL_FUNC) event_server_banned); signal_remove("event error", (SIGNAL_FUNC) event_error); -- cgit v1.2.3