This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Rsync: found the problem


On Mon, Aug 06, 2001 at 01:09:34PM +0100, Bill Petheram wrote:
>
>Is it a bug or a feature?
>
>Internally cygwin uses a flag OLD_O_NDELAY with the value 0x0004. This
>is used for backward compatibility (according to the comment). There is
>code to check that if either the OLD_O_NDELAY flag is set or if O_NDELAY
>(0x4000) is set they both get set.
>
>So when rsync does a GETFL it does the 'normal':- val &= ~NONBLOCK_FLAG
>to set to blocking. Unfortunately the OLD_O_NDELAY bit is still set so
>the when the SETFL is called is sets the O_FNDELAY bit as well.
>Obviously this means that once a socket is set to non-blocking mode it
>cannot be reset using this method. Note that the OLD_O_NDELAY is not
>defined in the installed header files, only internally to cygwin.
>
>I think that it is not possible to run old executables with newer DLLs,
>so may be the OLD_O_NDELAY flag can be removed.

Thanks for the analysis.  It *is* possible to run old executables with
newer DLLs.  This is a long-stated goal for Cygwin.

I've discussed a potential fix for this problem with Corinna and I'll
be checking in a patch shortly.

Thanks for narrowing the problem down.  It helps a lot.

cgf

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]