From f8461d39bc5bfd3efe908924c09d661756e447a1 Mon Sep 17 00:00:00 2001 From: Jochen Eisinger Date: Sun, 2 Nov 2008 12:13:36 +0000 Subject: 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 --- src/irc/proxy/listen.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/irc/proxy/listen.c') 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); } -- cgit v1.2.3