mirror of
https://github.com/matrix-construct/construct
synced 2024-12-28 16:34:13 +01:00
Check for empty string after permutation hooks have run.
This commit is contained in:
parent
ca4c2a86ee
commit
6eb033605c
1 changed files with 38 additions and 24 deletions
|
@ -494,14 +494,6 @@ msg_channel(enum message_type msgtype,
|
||||||
rb_strlcpy(text2, text, BUFSIZE);
|
rb_strlcpy(text2, text, BUFSIZE);
|
||||||
strip_colour(text2);
|
strip_colour(text2);
|
||||||
text = text2;
|
text = text2;
|
||||||
if (EmptyString(text))
|
|
||||||
{
|
|
||||||
/* could be empty after colour stripping and
|
|
||||||
* that would cause problems later */
|
|
||||||
if(msgtype != MESSAGE_TYPE_NOTICE)
|
|
||||||
sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hdata.msgtype = msgtype;
|
hdata.msgtype = msgtype;
|
||||||
|
@ -518,6 +510,16 @@ msg_channel(enum message_type msgtype,
|
||||||
if (hdata.approved != 0)
|
if (hdata.approved != 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* hook may have reduced the string to nothing. */
|
||||||
|
if (EmptyString(text))
|
||||||
|
{
|
||||||
|
/* could be empty after colour stripping and
|
||||||
|
* that would cause problems later */
|
||||||
|
if(msgtype != MESSAGE_TYPE_NOTICE)
|
||||||
|
sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* chanops and voiced can flood their own channel with impunity */
|
/* chanops and voiced can flood their own channel with impunity */
|
||||||
if((result = can_send(chptr, source_p, NULL)))
|
if((result = can_send(chptr, source_p, NULL)))
|
||||||
{
|
{
|
||||||
|
@ -597,14 +599,6 @@ msg_channel_opmod(enum message_type msgtype,
|
||||||
rb_strlcpy(text2, text, BUFSIZE);
|
rb_strlcpy(text2, text, BUFSIZE);
|
||||||
strip_colour(text2);
|
strip_colour(text2);
|
||||||
text = text2;
|
text = text2;
|
||||||
if (EmptyString(text))
|
|
||||||
{
|
|
||||||
/* could be empty after colour stripping and
|
|
||||||
* that would cause problems later */
|
|
||||||
if(msgtype != MESSAGE_TYPE_NOTICE)
|
|
||||||
sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hdata.msgtype = msgtype;
|
hdata.msgtype = msgtype;
|
||||||
|
@ -621,6 +615,16 @@ msg_channel_opmod(enum message_type msgtype,
|
||||||
if (hdata.approved != 0)
|
if (hdata.approved != 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* hook may have reduced the string to nothing. */
|
||||||
|
if (EmptyString(text))
|
||||||
|
{
|
||||||
|
/* could be empty after colour stripping and
|
||||||
|
* that would cause problems later */
|
||||||
|
if(msgtype != MESSAGE_TYPE_NOTICE)
|
||||||
|
sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(chptr->mode.mode & MODE_OPMODERATE &&
|
if(chptr->mode.mode & MODE_OPMODERATE &&
|
||||||
(!(chptr->mode.mode & MODE_NOPRIVMSGS) ||
|
(!(chptr->mode.mode & MODE_NOPRIVMSGS) ||
|
||||||
IsMember(source_p, chptr)))
|
IsMember(source_p, chptr)))
|
||||||
|
@ -684,14 +688,6 @@ msg_channel_flags(enum message_type msgtype, struct Client *client_p,
|
||||||
rb_strlcpy(text2, text, BUFSIZE);
|
rb_strlcpy(text2, text, BUFSIZE);
|
||||||
strip_colour(text2);
|
strip_colour(text2);
|
||||||
text = text2;
|
text = text2;
|
||||||
if (EmptyString(text))
|
|
||||||
{
|
|
||||||
/* could be empty after colour stripping and
|
|
||||||
* that would cause problems later */
|
|
||||||
if(msgtype != MESSAGE_TYPE_NOTICE)
|
|
||||||
sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hdata.msgtype = msgtype;
|
hdata.msgtype = msgtype;
|
||||||
|
@ -708,6 +704,15 @@ msg_channel_flags(enum message_type msgtype, struct Client *client_p,
|
||||||
if (hdata.approved != 0)
|
if (hdata.approved != 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (EmptyString(text))
|
||||||
|
{
|
||||||
|
/* could be empty after colour stripping and
|
||||||
|
* that would cause problems later */
|
||||||
|
if(msgtype != MESSAGE_TYPE_NOTICE)
|
||||||
|
sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (msgtype != MESSAGE_TYPE_NOTICE && *text == '\001' &&
|
if (msgtype != MESSAGE_TYPE_NOTICE && *text == '\001' &&
|
||||||
strncasecmp(text + 1, "ACTION ", 7))
|
strncasecmp(text + 1, "ACTION ", 7))
|
||||||
{
|
{
|
||||||
|
@ -856,6 +861,15 @@ msg_client(enum message_type msgtype,
|
||||||
if (hdata.approved != 0)
|
if (hdata.approved != 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (EmptyString(text))
|
||||||
|
{
|
||||||
|
/* could be empty after colour stripping and
|
||||||
|
* that would cause problems later */
|
||||||
|
if(msgtype != MESSAGE_TYPE_NOTICE)
|
||||||
|
sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* XXX Controversial? allow opers always to send through a +g */
|
/* XXX Controversial? allow opers always to send through a +g */
|
||||||
if(!IsServer(source_p) && (IsSetCallerId(target_p) ||
|
if(!IsServer(source_p) && (IsSetCallerId(target_p) ||
|
||||||
(IsSetRegOnlyMsg(target_p) && !source_p->user->suser[0])))
|
(IsSetRegOnlyMsg(target_p) && !source_p->user->suser[0])))
|
||||||
|
|
Loading…
Reference in a new issue