git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 01/14] mingw: add network-wrappers for daemon

From
ESEric Sunshine <ericsunshine@gmail.com>
Date
Oct 10, 2010, 19:40 UTC
Message-ID
<4CB216C2.1060608@gmail.com>
In-Reply-To
<1286716854-5744-2-git-send-email-kusmabite@gmail.com>
On 10/10/2010 9:20 AM, Erik Faye-Lund wrote:
Show 30 quoted lines
> From: Mike Pape<dotzenlabs@gmail.com>
>
> git-daemon requires some socket-functionality that is not yet
> supported in the Windows-port. This patch adds said functionality,
> and makes sure WSAStartup gets called by socket(), since it is the
> first network-call in git-daemon. In addition, a check is added to
> prevent WSAStartup (and WSACleanup, though atexit) from being
> called more than once, since git-daemon calls both socket() and
> gethostbyname().
>
> Signed-off-by: Mike Pape<dotzenlabs@gmail.com>
> Signed-off-by: Erik Faye-Lund<kusmabite@gmail.com>
> ---
> diff --git a/compat/mingw.c b/compat/mingw.c
> index 6590f33..563ef1f 100644
> --- a/compat/mingw.c
> +++ b/compat/mingw.c
> +#undef accept
> +int mingw_accept(int sockfd1, struct sockaddr *sa, socklen_t *sz)
> +{
> +	int sockfd2;
> +
> +	SOCKET s1 = (SOCKET)_get_osfhandle(sockfd1);
> +	SOCKET s2 = accept(s1, sa, sz);
> +
> +	/* convert into a file descriptor */
> +	if ((sockfd2 = _open_osfhandle(s2, O_RDWR|O_BINARY))<  0) {
> +		closesocket(s2);
> +		return error("unable to make a socket file descriptor: %s",
> +			strerror(errno));

Is 'errno' from _open_osfhandle() still valid when handed to strerror() or has it been clobbered by closesocket()?

Corollary: Does _open_osfhandle() indeed set 'errno', or is it more 
appropriate to call WSAGetLastError()? (The documentation I read for 
_open_osfhandle() did not say anything about how to determine the reason 
for failure.)
-- ES
Previous: Erik Faye-LundNext: Erik Faye-Lund
Message 3 of 43 in “daemon-win32”
  1. 00/14 daemon-win32Erik Faye-Lund, Oct 10, 2010
  2. 01/14 mingw: add network-wrappers for daemonErik Faye-Lund, Oct 10, 2010
  3. Eric SunshineOct 10, 2010
  4. Erik Faye-LundOct 10, 2010
  5. Eric SunshineOct 10, 2010
  6. 02/14 mingw: implement syslogErik Faye-Lund, Oct 10, 2010
  7. Eric SunshineOct 10, 2010
  8. Erik Faye-LundOct 10, 2010
  9. Johannes SixtOct 10, 2010
  10. Erik Faye-LundOct 10, 2010
  11. Eric SunshineOct 10, 2010
  12. Erik Faye-LundOct 10, 2010
  13. Erik Faye-LundOct 10, 2010
  14. Eric SunshineOct 10, 2010
  15. Erik Faye-LundOct 11, 2010
  16. Erik Faye-LundOct 11, 2010
  17. 03/14 compat: add inet_pton and inet_ntop prototypesErik Faye-Lund, Oct 10, 2010
  18. 04/14 inet_ntop: fix a couple of old-style declsErik Faye-Lund, Oct 10, 2010
  19. 05/14 mingw: use real pidErik Faye-Lund, Oct 10, 2010
  20. Eric SunshineOct 10, 2010
  21. Erik Faye-LundOct 10, 2010
  22. Eric SunshineOct 10, 2010
  23. 06/14 mingw: support waitpid with pid > 0 and WNOHANGErik Faye-Lund, Oct 10, 2010
  24. 07/14 mingw: add kill emulationErik Faye-Lund, Oct 10, 2010
  25. 08/14 daemon: use run-command api for async servingErik Faye-Lund, Oct 10, 2010
  26. Eric SunshineOct 10, 2010
  27. Erik Faye-LundOct 10, 2010
  28. 09/14 daemon: use full buffered mode for stderrErik Faye-Lund, Oct 10, 2010
  29. 10/14 Improve the mingw getaddrinfo stub to handle more use casesErik Faye-Lund, Oct 10, 2010
  30. 11/14 daemon: report connection from root-processErik Faye-Lund, Oct 10, 2010
  31. Johannes SixtOct 10, 2010
  32. Erik Faye-LundOct 10, 2010
  33. Erik Faye-LundOct 10, 2010
  34. Ævar Arnfjörð BjarmasonOct 10, 2010
  35. Erik Faye-LundOct 10, 2010
  36. 12/14 mingw: import poll-emulation from gnulibErik Faye-Lund, Oct 10, 2010
  37. Ævar Arnfjörð BjarmasonOct 10, 2010
  38. Erik Faye-LundOct 10, 2010
  39. Erik Faye-LundOct 10, 2010
  40. Ævar Arnfjörð BjarmasonOct 10, 2010
  41. 13/14 mingw: use poll-emulation from gnulibErik Faye-Lund, Oct 10, 2010
  42. 14/14 daemon: only use posix features on posix systemsErik Faye-Lund, Oct 10, 2010
  43. Ævar Arnfjörð BjarmasonOct 10, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.