summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin Batz <senneth@irssi.org>2004-11-23 17:06:06 +0000
committervb <vb@dbcabf3a-b0e7-0310-adc4-f8d773084564>2004-11-23 17:06:06 +0000
commitf4513052347f636282b3bde557a8b48f108fff18 (patch)
tree81fb0998032ebbabf2015f4ca0708781bc08c3dc
parent3c3ae53516fdb0ff1409c6765ec46a604c0da911 (diff)
downloadirssi-f4513052347f636282b3bde557a8b48f108fff18.zip
Reverting bugfix for 'usermode activates after autosendcmd' because it breaks usermode for reconnections
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3684 dbcabf3a-b0e7-0310-adc4-f8d773084564
-rw-r--r--src/irc/core/irc-servers.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/irc/core/irc-servers.c b/src/irc/core/irc-servers.c
index af4cdffe..a7d6729d 100644
--- a/src/irc/core/irc-servers.c
+++ b/src/irc/core/irc-servers.c
@@ -508,17 +508,6 @@ static int sig_set_user_mode(IRC_SERVER_REC *server)
return 0;
}
-/* Bugfix: http://bugs.irssi.org/?do=details&id=121
- * Author: Geert Hauwaerts <geert@irssi.org>
- * Date: Wed Sep 15 23:25:30 CEST 2004
- */
-
-static void real_connected(IRC_SERVER_REC *server)
-{
- if (server->connrec->usermode != NULL)
- sig_set_user_mode(server);
-}
-
static void event_connected(IRC_SERVER_REC *server, const char *data, const char *from)
{
char *params, *nick;
@@ -543,6 +532,11 @@ static void event_connected(IRC_SERVER_REC *server, const char *data, const char
server->connected = 1;
server->real_connect_time = time(NULL);
+ if (server->connrec->usermode != NULL) {
+ /* wait a second and then send the user mode */
+ g_timeout_add(1000, (GSourceFunc) sig_set_user_mode, server);
+ }
+
signal_emit("event connected", 1, server);
g_free(params);
}
@@ -783,7 +777,6 @@ void irc_servers_init(void)
signal_add_first("server connected", (SIGNAL_FUNC) sig_connected);
signal_add_last("server disconnected", (SIGNAL_FUNC) sig_disconnected);
signal_add_last("server quit", (SIGNAL_FUNC) sig_server_quit);
- signal_add_first("event connected", (SIGNAL_FUNC) real_connected);
signal_add("event 001", (SIGNAL_FUNC) event_connected);
signal_add("event 004", (SIGNAL_FUNC) event_server_info);
signal_add("event 005", (SIGNAL_FUNC) event_isupport);
@@ -808,8 +801,7 @@ void irc_servers_deinit(void)
signal_remove("server connected", (SIGNAL_FUNC) sig_connected);
signal_remove("server disconnected", (SIGNAL_FUNC) sig_disconnected);
- signal_remove("server quit", (SIGNAL_FUNC) sig_server_quit);
- signal_remove("event connected", (SIGNAL_FUNC) real_connected);
+ 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 005", (SIGNAL_FUNC) event_isupport);