From: H. Peter Anvin Date: Thu, 01 Feb 2007 06:35:39 GMT Subject: Re: MinGW port usable Message-ID: <45C18A3B.2070004@zytor.com> In-Reply-To: <200701292320.43888.johannes.sixt@telecom.at> Johannes Sixt wrote: > > The README.MinGW at > http://repo.or.cz/w/git/mingw.git?a=blob_plain;f=README.MinGW;hb=master gives > an overview on the state. The transfer via native git protocol does not work > and cannot be made working without major surgery(*). Theoretically, using > netcat (nc) as GIT_PROXY_COMMAND should work, but not in my setup for some > reason that I still do not know. > > (*) The reason is that on Windows read() and write() cannot operate on > descriptors created by socket(). A work-around is to implement a (threaded) > proxy, but that's almost the same as if netcat were used as > GIT_PROXY_COMMAND. > Actually, I believe it can for the NT series kernels (at least 2000 or later, not sure about the earlier ones), but not for the DOS-based ones. The trick is to use _open_osfhandle() to convert the file handle (a WinAPI construct) to a file descriptor (which in Windows is a construct of the C library.) In 9x/ME, a socket isn't represented by a file handle, so _open_osfhandle() doesn't work on a socket object. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/_crt__open_osfhandle.asp -hpa