Re: MinGW port usable
From: "H. Peter Anvin" <hpa@zytor.com>
Date: 2016-06-15 22:42:51
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