Re: BUGS: IRC groupchat

Cory McWilliams <[email protected]> Wed, 11 Feb 2004 18:43:53 -0500
Newsgroups gmane.network.everybuddy.user
Message-ID <[email protected]>
Hi,

I think I am indeed the one to blame for this one.

Oddly, I haven't really been able to reproduce this behavior.  On what
IRC servers are people noticing this?

Howver, based on what you described, I think I found the culprit.  Due
to an off-by-one error I made, a null character was being written at the
end of an ISON message which is sent periodically.  I imagine some
servers interpreted that as part of the next message, causing it to be
"lost," which I think could have caused everything you describe.

Attached is a patch for the one line, which I coincidentally marked as
"tricky" at the time...sigh.

Please let me know whether this makes a difference.

Sorry,
Cory

On Wed, 2004-02-11 at 16:48, Karine Proot wrote:
> Hello,
> 
>    A test sequence I ran :
> 
> * Connecting to an IRC account.
> * Can't join groupchat (already reported by Meredydd. I have to
> disconnect and try again until it will accept to join a group chat)
> 
> * Connecting to an IRC account.
> * Joined a group chat.
>     ChanServ talks to me.
>     I get a "eb_get_filename failed: File exists" on core output
> * Talked first in the groupchat
>     !!! first message didn't arrive
>     following OK
> * Waited for someone to talk
>     OK
> * Talked in the groupchat
>     !!! first message didn't arrive
>     following OK
> -> a few more tests seem to lead to the conclusion that first message
> never get throught, following ones are OK. This varies a little.
> * Left the groupchat
>     !!! nothing happens, I still appear in it (from other client)
> * Waited for someone to talk
>     !!! All messages arrive as query message and buddies are added to
> list accordingly.
>     At some point, the groupchat reopened and all following messages
> appeared on it. Noboddy in the groupchat list.
> 
> 
> _______________________________________________
> Everybuddy mailing list
> [email protected]
> http://lists.spine.cx/listinfo/everybuddy
>

_______________________________________________
Everybuddy mailing list
[email protected]
http://lists.spine.cx/listinfo/everybuddy
irc-null.patch (text/x-patch, 530 B)
Index: plugins/irc/irc.c
===================================================================
--- plugins/irc/irc.c	(revision 255)
+++ plugins/irc/irc.c	(working copy)
@@ -459,7 +459,7 @@
           {
             *(pos-1) = '\n'; // Replace a space with a newline (tricky)
             *pos++ = '\0';
-            write(lad->fd, buffer, pos - buffer);
+            write(lad->fd, buffer, pos - buffer - 1);
             pos = buffer;
             lad->ison_count++;
             if (too_long) continue; // Don't advance buddy yet