Improve CTCP notice handling
Cutting off all text after \001 can result in users hiding text so lets only bother handling it if it is a valid CTCP message (starting and ending with \001).
This commit is contained in:
parent
07f1fc60da
commit
4188f26ab9
@ -932,7 +932,7 @@ void
|
|||||||
inbound_notice (server *serv, char *to, char *nick, char *msg, char *ip, int id,
|
inbound_notice (server *serv, char *to, char *nick, char *msg, char *ip, int id,
|
||||||
const message_tags_data *tags_data)
|
const message_tags_data *tags_data)
|
||||||
{
|
{
|
||||||
char *po,*ptr=to;
|
char *ptr = to;
|
||||||
session *sess = 0;
|
session *sess = 0;
|
||||||
int server_notice = FALSE;
|
int server_notice = FALSE;
|
||||||
|
|
||||||
@ -1005,18 +1005,21 @@ inbound_notice (server *serv, char *to, char *nick, char *msg, char *ip, int id,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (msg[0] == 1)
|
if (msg[0] == '\001')
|
||||||
{
|
{
|
||||||
|
size_t len;
|
||||||
|
|
||||||
msg++;
|
msg++;
|
||||||
if (!strncmp (msg, "PING", 4))
|
if (!strncmp (msg, "PING", 4))
|
||||||
{
|
{
|
||||||
inbound_ping_reply (sess, msg + 5, nick, tags_data);
|
inbound_ping_reply (sess, msg + 5, nick, tags_data);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
len = strlen(msg);
|
||||||
|
if (msg[len - 1] == '\001')
|
||||||
|
msg[len - 1] = '\000';
|
||||||
}
|
}
|
||||||
po = strchr (msg, '\001');
|
|
||||||
if (po)
|
|
||||||
po[0] = 0;
|
|
||||||
|
|
||||||
if (server_notice)
|
if (server_notice)
|
||||||
EMIT_SIGNAL_TIMESTAMP (XP_TE_SERVNOTICE, sess, msg, nick, NULL, NULL, 0,
|
EMIT_SIGNAL_TIMESTAMP (XP_TE_SERVNOTICE, sess, msg, nick, NULL, NULL, 0,
|
||||||
|
Loading…
Reference in New Issue
Block a user