Hi,
I noticed that there are trailing spaces in some cases in the MODE messages
sent by servers when processing an SJOIN message. I saw this happen when
servers join and modes got bursted over.
Here is an example of what I mean (message wrapped in [] to show spaces):
[:test.summercat.com MODE #test +o will ]
I traced this to ms_sjoin() where there is this format string:
":%s MODE %s %s %s %s %s %s"
The last 3 %s arguments may be blank which leads to these trailing spaces.
It is not exactly a huge problem I know. I only ran into it as I was basing
some parsing code off RFC 2812's grammar. In RFC 1459 this appears possibly
valid, but not in RFC 2812. Perhaps it is still worth making a small update
for though.
I have attached a diff with a possible solution.
Thank you for your time.
--- modules/core/m_join.c (revision 29442)
+++ modules/core/m_join.c (working copy)
@@ -812,10 +812,12 @@
if(pargs)
{
sendto_channel_local(ALL_MEMBERS, chptr,
- ":%s MODE %s %s %s %s %s %s",
+ ":%s MODE %s %s %s%s%s%s%s%s%s",
source_p->name, chptr->chname, modebuf,
- para[0], CheckEmpty(para[1]), CheckEmpty(para[2]),
- CheckEmpty(para[3]));
+ para[0],
+ EmptyString(para[1]) ? "" : " ", CheckEmpty(para[1]),
+ EmptyString(para[2]) ? "" : " ", CheckEmpty(para[2]),
+ EmptyString(para[3]) ? "" : " ", CheckEmpty(para[3]));
}
if(!joins)
_______________________________________________
ircd-ratbox mailing list
[email protected]
http://lists.ratbox.org/cgi-bin/mailman/listinfo/ircd-ratbox