Skip Menu |

This queue is for tickets about the Net-IRC CPAN distribution.

Report information
The Basics
Id: 11421
Status: open
Priority: 0/
Queue: Net-IRC

People
Owner: Nobody in particular
Requestors: a_kunysz [...] yahoo.com
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 0.75
Fixed in: (no value)



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;
From: ky6uk [...] mail.rb.ru
On Tue Feb 08 07:05:37 2005, guest wrote: Show quoted text
> 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
The patch does not correct a bug completely.
--- Connection.pm.orig 2007-11-28 18:02:29.000000000 +0500 +++ Connection.pm 2007-11-28 18:04:09.000000000 +0500 @@ -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; @@ -346,7 +346,7 @@ return; } } else { - 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;