From 99f149313eee5cde3c5bdc8c033e889a841849dc Mon Sep 17 00:00:00 2001 From: JustAnotherArchivist Date: Wed, 15 Jan 2020 01:30:02 +0000 Subject: [PATCH] Add a "server outgoing" signal mirroring "server incoming" Fixes #1148 --- docs/signals.txt | 1 + src/irc/core/irc-servers.c | 4 +++- src/irc/core/irc-servers.h | 1 - src/irc/core/irc.c | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/signals.txt b/docs/signals.txt index d7d42f5d..4b29bce2 100644 --- a/docs/signals.txt +++ b/docs/signals.txt @@ -128,6 +128,7 @@ irc-nicklist.c: "server nick changed", SERVER_REC irc-servers.c: + "server outgoing", SERVER_REC, char *str "event connected", SERVER_REC irc-cap.c diff --git a/src/irc/core/irc-servers.c b/src/irc/core/irc-servers.c index 9779ab58..9c347f93 100644 --- a/src/irc/core/irc-servers.c +++ b/src/irc/core/irc-servers.c @@ -603,7 +603,7 @@ static int server_cmd_timeout(IRC_SERVER_REC *server, gint64 now) /* send command */ len = strlen(cmd); - irc_server_send_data(server, cmd, len); + signal_emit("server outgoing", 3, server, cmd, len); /* add to rawlog without [CR+]LF */ if (len > 2 && cmd[len-2] == '\r') @@ -1060,6 +1060,7 @@ void irc_servers_init(void) cmd_tag = -1; signal_add_first("server connected", (SIGNAL_FUNC) sig_connected); + signal_add("server outgoing", (SIGNAL_FUNC) irc_server_send_data); signal_add_last("server destroyed", (SIGNAL_FUNC) sig_destroyed); signal_add_last("server quit", (SIGNAL_FUNC) sig_server_quit); signal_add("server cap ack " CAP_MAXLINE, (SIGNAL_FUNC) cap_maxline); @@ -1088,6 +1089,7 @@ void irc_servers_deinit(void) g_source_remove(cmd_tag); signal_remove("server connected", (SIGNAL_FUNC) sig_connected); + signal_remove("server outgoing", (SIGNAL_FUNC) irc_server_send_data); signal_remove("server destroyed", (SIGNAL_FUNC) sig_destroyed); signal_remove("server quit", (SIGNAL_FUNC) sig_server_quit); signal_remove("server cap ack " CAP_MAXLINE, (SIGNAL_FUNC) cap_maxline); diff --git a/src/irc/core/irc-servers.h b/src/irc/core/irc-servers.h index b7d31038..73a0b5b8 100644 --- a/src/irc/core/irc-servers.h +++ b/src/irc/core/irc-servers.h @@ -160,7 +160,6 @@ void irc_server_send_action(IRC_SERVER_REC *server, const char *target, char **irc_server_split_action(IRC_SERVER_REC *server, const char *target, const char *data); void irc_server_send_away(IRC_SERVER_REC *server, const char *reason); -void irc_server_send_data(IRC_SERVER_REC *server, const char *data, int len); void irc_server_init_isupport(IRC_SERVER_REC *server); void irc_servers_start_cmd_timeout(void); diff --git a/src/irc/core/irc.c b/src/irc/core/irc.c index ef7a3ad1..c976ac51 100644 --- a/src/irc/core/irc.c +++ b/src/irc/core/irc.c @@ -117,7 +117,7 @@ void irc_send_cmd_full(IRC_SERVER_REC *server, const char *cmd, } if (send_now) { - irc_server_send_data(server, str->str, str->len); + signal_emit("server outgoing", 3, server, str->str, str->len); g_string_free(str, TRUE); } else {