/* * Pipes all incoming private messages through OTR */ void sig_message_private(SERVER_REC *server, const char *msg, const char *nick, const char *address) { int ret; char *new_msg = NULL; key_gen_check(); ret = otr_receive(server, msg, nick, &new_msg); if (ret) { signal_stop(); goto end; } if (!new_msg) { /* This message was not OTR */ signal_continue(4, server, msg, nick, address); } else { /* OTR received message */ signal_continue(4, server, new_msg, nick, address); } end: otrl_message_free(new_msg); return; }
/* * Pipes all incoming private messages through OTR */ void sig_message_private(SERVER_REC *server, const char *msg, const char *nick, const char *address) { int ret; char *new_msg = NULL; key_gen_check(); ret = otr_receive(server, msg, nick, &new_msg); if (ret) { signal_stop(); goto end; } if (!new_msg) { /* This message was not OTR */ signal_continue(4, server, msg, nick, address); } else { /* * Check for /me IRC marker and if so, handle it so the user does not * receive a message beginning with /me but rather let irssi handle it * as a IRC action. */ if (!strncmp(new_msg, OTR_IRC_MARKER_ME, OTR_IRC_MARKER_ME_LEN)) { signal_stop(); signal_emit("message irc action", 5, server, new_msg + OTR_IRC_MARKER_ME_LEN, nick, address, nick); } else { /* OTR received message */ signal_continue(4, server, new_msg, nick, address); } } end: otrl_message_free(new_msg); return; }