Hmm. You're right. All the getc() call really seems to be checking for
is EOF - I was thinking the attempt to get a character was important for
some reason. Anyhow, I'm running a make check on it now. If it's
successful and there are no objections raised, I'll check it in.
Derek
--
*8^)
Email: [EMAIL PROTECTED]
Get CVS support at http://ximbiot.com
--
I will not go near the kindergarten turtle.
I will not go near the kindergarten turtle.
I will not go near the kindergarten turtle...
- Bart Simpson on chalkboard, _The Simpsons_
Mark D. Baushke wrote:
>Derek Robert Price <[EMAIL PROTECTED]> writes:
>
>
>>The socket or pipe really needs to be verified closed there to report
>>errors properly. Can the pipe or socket be set to O_NONBLOCK just
>>before this call or could some other read call be used that won't
>>block?
>>
>>
>
>Hmmm.. I have not tested it, but I suppose !feof(bc->fp) might work on
>some platforms.
>
>I am CCing Peter Wemm on this message as he likely has more information.
>
>Hi Peter, there is a patch you made to the FreeBSD version of cvs 1.11.2
>that I think should probably go back to the cvshome.org folks. Can you
>point to the test case that you used to determine the code was hanging
>using older cvs clients?
>
> Thanks,
> -- Mark
>
>PS: I am slowly working thru the FreeBSD changes to cvs 1.11.2 in hopes
>of getting the more critical patches folded back into the cvshome.org
>version.
>
>
>
>>Derek
>>--
>> *8^)
>>
>>Email: [EMAIL PROTECTED]
>>
>>Get CVS support at http://ximbiot.com
>>--
>>All work and no play makes Bart a dull boy.
>>All work and no play makes Bart a dull boy.
>>All work and no play makes Bart a dull boy...
>>
>> - Bart Simpson on chalkboard, _The Simpsons_
>>
>>
>>Mark D. Baushke wrote:
>>
>>
>>
>>>Hi Derek,
>>>
>>>I suspect this patch needs to get into current cvs sources. (It is
>>>in the FreeBSD top-of-tree sources already.)
>>>
>>>I can file this as a bug report if you wish...
>>>
>>> Thanks,
>>> -- Mark
>>> [EMAIL PROTECTED]
>>>
>>>FreeBSD Log:
>>>----------------------------
>>>date: 2002/09/02 07:58:04; author: peter; state: Exp; lines: +627 -17
>>>Fix a cvs server bug introduced in 1.11.2, in the words of the author:
>>>---
>>>Fix communication hanging in communication shutdown phase, caused by at
>>>least older CVS clients (version < 1.11.2) and a semantically incorrect
>>>usage of getc() by the server.
>>>---
>>>
>>>getc() was being used on a blocking socket/pipe.
>>>
>>>Submitted by: rse
>>>----------------------------
>>>
>>>Index:src/buffer.c
>>>===================================================================
>>>RCS file: /cvs/ccvs/src/buffer.c,v
>>>retrieving revision 1.19
>>>diff -u -p -r1.19 buffer.c
>>>--- buffer.c 20 May 2002 18:27:55 -0000 1.19
>>>+++ buffer.c 24 Sep 2002 06:54:01 -0000
>>>@@ -1392,8 +1392,7 @@ stdio_buffer_shutdown (buf)
>>> if (buf->input)
>>> {
>>>- if (! buf_empty_p (buf)
>>>- || getc (bc->fp) != EOF)
>>>+ if (! buf_empty_p (buf))
>>> {
>>># ifdef SERVER_SUPPORT
>>> if (server_active)
>>>
>>>
_______________________________________________
Bug-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-cvs