Add a "server outgoing" signal mirroring "server incoming"

Fixes #1148
This commit is contained in:
JustAnotherArchivist 2020-01-15 01:30:02 +00:00
commit 99f149313e
4 changed files with 5 additions and 3 deletions

View file

@ -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

View file

@ -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);

View file

@ -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);

View file

@ -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 {