diff options
author | Jochen Eisinger <c0ffee@irssi.org> | 2008-11-02 12:13:36 +0000 |
---|---|---|
committer | c0ffee <c0ffee@dbcabf3a-b0e7-0310-adc4-f8d773084564> | 2008-11-02 12:13:36 +0000 |
commit | f8461d39bc5bfd3efe908924c09d661756e447a1 (patch) | |
tree | b401ca0b17d3eef63fbf9413bf63fdfd317c3b6f /src/irc/proxy/listen.c | |
parent | 73b18f2672585d8d6427862afed6ba8f63629ef3 (diff) | |
download | irssi-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.c | 14 |
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); } |