Subject: | CTCP version seems buggy |
Hello,
It looks like the ctcp method from Net::IRC::Connection sends a badly formated VERSION message to other clients: there is a supernumerary "space" character in the sent message. Some IRC clients (irssi) have no problem with that and they reply to it but other ones (X-Chat, ChatZilla) ignore the CTCP VERSION query and won't reply. I looked for CTCP messages in the RFCs but didn't found it so I'm not sure if this is a bug in X-Chat and ChatZilla or in Net::IRC::Connection but I though I would report it anyway. I also wrote a patch that resolve the problem (irssi, X-Chat and ChatZilla now answer the CTCP query) but I didn't tried to see if it break other CTCP message.
You can reproduce the bug by setting a handler for "crversion" that do something (print "got CTCP reply\n") then you just need to call $conn->ctcp('VERSION', $somenick). If $somenick is using X-Chat or ChatZilla (or maybe some other client) it won't answer and the crversion handler won't be triggered.
Here are informations asked in the form but I don't think it's relevant:
Net-IRC-0.75 (Debian package libnet-irc-perl 0.75-1)
Perl v5.8.4 built for i386-linux-thread-multi
Linux krunch-laptop 2.6.8-2-k7 #1 Sat Jan 8 15:48:58 EST 2005 i686 GNU/Linux
It's just a "standard" Debian Sarge system.
If I don't see this bug fixed in some days I will probably report it to the Debian bugs tracking system so it may at least get fixed in Debian.
Anyway thanks for the useful library,
Adrien Kunysz
--- Connection.pm.orig 2005-02-07 23:14:39.000000000 +0100
+++ Connection.pm 2005-02-07 23:15:07.000000000 +0100
@@ -330,7 +330,7 @@
return;
}
} elsif (($type eq "CLIENTINFO" or $type eq "ACTION") and @_) {
- unless ($self->sl("PRIVMSG $target :\001$type " .
+ unless ($self->sl("PRIVMSG $target :\001$type" .
CORE::join(" ", @_) . "\001")) {
carp "Socket error sending $type request in ctcp()";
return;