summaryrefslogtreecommitdiff
path: root/src/irc/proxy/listen.c
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2000-11-06 23:27:46 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2000-11-06 23:27:46 +0000
commit6cc6f90468db71e38ca918d7360265d09a8dee7c (patch)
treef7c4d4571c8da8c146943c6f272154dc8149e189 /src/irc/proxy/listen.c
parenta8c139d5e2f11b5f37bdffa83fbcef0d927bae9d (diff)
downloadirssi-6cc6f90468db71e38ca918d7360265d09a8dee7c.zip
Connecting to proxy when server connection was down didn't work correctly.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@811 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/irc/proxy/listen.c')
-rw-r--r--src/irc/proxy/listen.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/irc/proxy/listen.c b/src/irc/proxy/listen.c
index ac8c0f67..47e762e1 100644
--- a/src/irc/proxy/listen.c
+++ b/src/irc/proxy/listen.c
@@ -147,6 +147,12 @@ static void handle_client_cmd(CLIENT_REC *client, char *cmd, char *args)
return;
}
+ if (client->server == NULL || !client->server->connected) {
+ proxy_outserver(client, "NOTICE %s :Not connected to server",
+ client->nick);
+ return;
+ }
+
server_handle = net_sendbuffer_handle(client->server->handle);
net_transmit(server_handle, cmd, strlen(cmd));
net_transmit(server_handle, " ", 1);
@@ -247,10 +253,8 @@ static void sig_listen_client(CLIENT_REC *client)
break;
}
- if (ret == 0) break;
-
- if (client->server == NULL)
- continue;
+ if (ret == 0)
+ break;
cmd = g_strdup(str);
args = strchr(cmd, ' ');
@@ -353,7 +357,7 @@ static void sig_server_event(const char *line, IRC_SERVER_REC *server,
g_free(event);
}
-static void sig_server_connected(IRC_SERVER_REC *server)
+static void event_connected(IRC_SERVER_REC *server)
{
GSList *tmp;
@@ -514,7 +518,7 @@ void plugin_proxy_listen_init(void)
signal_add("server incoming", (SIGNAL_FUNC) sig_incoming);
signal_add("server event", (SIGNAL_FUNC) sig_server_event);
- signal_add("server connected", (SIGNAL_FUNC) sig_server_connected);
+ signal_add("event connected", (SIGNAL_FUNC) event_connected);
signal_add("server disconnected", (SIGNAL_FUNC) sig_server_disconnected);
signal_add("event nick", (SIGNAL_FUNC) event_nick);
signal_add("setup changed", (SIGNAL_FUNC) read_settings);
@@ -530,7 +534,7 @@ void plugin_proxy_listen_deinit(void)
signal_remove("server incoming", (SIGNAL_FUNC) sig_incoming);
signal_remove("server event", (SIGNAL_FUNC) sig_server_event);
- signal_remove("server connected", (SIGNAL_FUNC) sig_server_connected);
+ signal_remove("event connected", (SIGNAL_FUNC) event_connected);
signal_remove("server disconnected", (SIGNAL_FUNC) sig_server_disconnected);
signal_remove("event nick", (SIGNAL_FUNC) event_nick);
signal_remove("setup changed", (SIGNAL_FUNC) read_settings);