summaryrefslogtreecommitdiff
path: root/src/irc/proxy/listen.c
diff options
context:
space:
mode:
authorJochen Eisinger <c0ffee@irssi.org>2008-11-02 12:13:36 +0000
committerc0ffee <c0ffee@dbcabf3a-b0e7-0310-adc4-f8d773084564>2008-11-02 12:13:36 +0000
commitf8461d39bc5bfd3efe908924c09d661756e447a1 (patch)
treeb401ca0b17d3eef63fbf9413bf63fdfd317c3b6f /src/irc/proxy/listen.c
parent73b18f2672585d8d6427862afed6ba8f63629ef3 (diff)
downloadirssi-f8461d39bc5bfd3efe908924c09d661756e447a1.zip
introduce the type Irssi::Irc::Client and signals to communicate with proxy
clients to allow for scripting parts of the irssi-proxy. git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4882 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/irc/proxy/listen.c')
-rw-r--r--src/irc/proxy/listen.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/irc/proxy/listen.c b/src/irc/proxy/listen.c
index 5e7497c1..5f473a34 100644
--- a/src/irc/proxy/listen.c
+++ b/src/irc/proxy/listen.c
@@ -186,6 +186,8 @@ static void handle_client_cmd(CLIENT_REC *client, char *cmd, char *args,
client->want_ctcp = 0;
proxy_outdata(client, ":%s NOTICE %s :Proxy is now handling itself CTCPs sent to %s\n",
client->proxy_address, client->nick, client->listen->ircnet);
+ } else {
+ signal_emit("proxy client command", 3, client, args, data);
}
return;
}
@@ -663,6 +665,14 @@ static void read_settings(void)
}
}
+static void sig_dump(CLIENT_REC *client, const char *data)
+{
+ g_return_if_fail(client != NULL);
+ g_return_if_fail(data != NULL);
+
+ proxy_outdata(client, data);
+}
+
void proxy_listen_init(void)
{
next_line = g_string_new(NULL);
@@ -680,6 +690,8 @@ void proxy_listen_init(void)
signal_add("message own_private", (SIGNAL_FUNC) sig_message_own_private);
signal_add("message irc own_action", (SIGNAL_FUNC) sig_message_own_action);
signal_add("setup changed", (SIGNAL_FUNC) read_settings);
+
+ signal_add("proxy client dump", (SIGNAL_FUNC) sig_dump);
}
void proxy_listen_deinit(void)
@@ -697,4 +709,6 @@ void proxy_listen_deinit(void)
signal_remove("message own_private", (SIGNAL_FUNC) sig_message_own_private);
signal_remove("message irc own_action", (SIGNAL_FUNC) sig_message_own_action);
signal_remove("setup changed", (SIGNAL_FUNC) read_settings);
+
+ signal_remove("proxy client dump", (SIGNAL_FUNC) sig_dump);
}