[Pidgin] #15090: freenode's new +q numeric (728) is unrecognized
Pidgin
trac at pidgin.im
Sat May 5 10:22:38 EDT 2012
#15090: freenode's new +q numeric (728) is unrecognized
---------------------+------------------------------------------------------
Reporter: marienz | Owner: elb
Type: defect | Status: new
Milestone: | Component: IRC
Version: 2.10.3 | Resolution:
Keywords: |
---------------------+------------------------------------------------------
Comment(by marienz):
My apologies for missing the MOTD option, I had overlooked that in the UI.
No need for a /motd, in my opinion, as a more GUI-oriented user than me
would probably have found that.
I understand these changes happen quickly enough for them to be a pain for
client developers (as you pointed out irssi doesn't handle the +q one
great either, which is an annoyance to me), I just wanted to point out
"networks like to change their made-up numerics more often than their ops
change underwear" exaggerates slightly.
Thanks for the patch. I've tested it a bit and it is an improvement (and
I'm assuming other libpurple-based clients will pick this up without
needing further work on their end?). Two points though (on elb's patch, I
noticed the second patch only after I'd started writing this comment, I'll
go look at it now):
I'm fairly certain the null check in the loop should be against end, not
cur. With the check as it is I can get pidgin to crash by doing "/quote
info", which ends up calling g_strndup(cur, end - cur) with end null, and
glib fails the resulting huge allocation. If I could get the server to
send me an even shorter message the loop would call strchr on NULL + 1,
which wouldn't be very healthy either.
I think it'd be slightly prettier to only report the arguments after the
channel name to the user. That is: "tmp = purple_utf8_salvage(end + 1);"
(which I believe is safe with the null check fixed, although it could
theoretically log empty messages). This removes: the prefix (which should
be the source server, which users will not care about), the numeric itself
(which very few users will recognize), the 2nd argument (which is normally
our own nick, as RFC1459 says this must be "the target" of the message),
and the third argument, which we've just made sure is the name of the
conversation the message appears in. So I believe those are all redundant.
A moderately visible unsupported numeric this exposes is 328 aka
RPL_CHANNELURL: if you join #pidgin it'll now show you
":http://pidgin.im/".
It is unfortunate this still misses 435 aka "Cannot change nickname while
banned on channel", but without a server/status window that is probably
not fixable cleanly. Shall I file a fresh bug on that, as it's probably
worth throwing a dialog up for similar to the "The nickname ... is already
being used." one?
--
Ticket URL: <http://developer.pidgin.im/ticket/15090#comment:5>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list