[IRCServices] Patch: Flush write buffer on connect

Andrew Church achurch at achurch.org
Fri Nov 21 11:48:08 PST 2008


Sorry, I'm busy with work at the moment and don't have the time to
investigate the issue in detail.  I'll take a closer look when I do
have time.

  --Andrew Church
    achurch at achurch.org
    http://achurch.org/

>Hi all!
>
>Any comments to this patch?
>
>Regards
>Alex
>
>Am 11.11.2008 18:14, Alexander Barton schrieb:
>
>> 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