[IRCServices] Patch: Flush write buffer on connect
Andrew Church
achurch at achurch.org
Sun Dec 7 20:18:39 PST 2008
Fixed for the next release. Thanks for the report!
--Andrew Church
achurch at achurch.org
http://achurch.org/
>Hi!
>
>The attached patch fixes the problem that IRCServices don't flush the
>write buffer when the connection to the server is establised and data
>has already been written to the buffer.
>
>This caused the server to disconnect IRCServices after a timeout
>because of no data has been sent. Solution has been to send
>IRCServices a HUP signal right after starting it. I was able to
>reproduce this problem on all of my machines (Linux on HPPA, Linux on
>amd64, and Mac OS X on i386).
>
>I think these messages describe the same problem:
><http://lists.ircservices.za.net/pipermail/ircservices/2007/005283.html>
><http://lists.ircservices.za.net/pipermail/ircservices/2007/005288.html>
><http://lists.ircservices.za.net/pipermail/ircservices/2007/005318.html>
><http://lists.ircservices.za.net/pipermail/ircservices/2007/005319.html>
><http://lists.ircservices.za.net/pipermail/ircservices/2007/005287.html>
>
>Regards
>Alex
>
>
>diff -rup ircservices-5.1.13-orig/sockets.c ircservices-5.1.13/sockets.c
>--- ircservices-5.1.13-orig/sockets.c 2008-11-07 18:11:57.000000000
>+0100
>+++ ircservices-5.1.13/sockets.c 2008-11-09 15:53:35.000000000 +0100
>@@ -691,6 +691,10 @@ void check_sockets(void)
> }
> s->flags &= ~SF_CONNECTING;
> s->flags |= SF_CONNECTED;
>+
>+ /* Flush already cached data for this socket */
>+ flush_write_buffer(s);
>+
> FD_CLR(i, &write_fds);
> if (!(s->flags & SF_MUTE))
> FD_SET(i, &sock_fds);
>
>------------------------------------------------------------------
>To unsubscribe or change your subscription options, visit:
>http://lists.ircservices.za.net/mailman/listinfo/ircservices