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

[PATCH v2 00/14] daemon-win32

From
Erik Faye-Lund <kusmabite@googlemail.com>
Date
Jan 15, 2010, 21:30 UTC
Message-ID
<1263591033-4992-1-git-send-email-kusmabite@gmail.com>

Here's the long overdue v2 of my daemon-win32 attempt. A lot has happened since v1. Most importantly, I abandoned using the async API to replace fork(), and went for explicitly spawning child process that handle the connection.

The patches are on top of the current version of Junio's master-branch.

When talking about patch numbers here, I'm referring to the numbers from the previous round.

Patch 1 has been adjusted to work on top of Martin's ipv6 patches.

Patch 2 has been dropped, because it was made obsolete by the changes to patch 3.

Patch 3 has been simplified as suggested by Hannes. The problem with reporting IPv6 addresses should still be there in theory, but I haven't been able to trigger it. I'm having a feeling that it's better to do a case-by-case patch of the code that reports for this one.

Patch 4 and 5 are unchanged.
Patch 6 and 7 were dropped, in favour of a new approach.
Patch 8 has been updated as suggested.

Patch 9 has been rewritten to spawn a separate child process that serves the client.

Patch 10 is unchanged
Patch 11 has been updated as suggested.

In addition, I've added a patch that add some needed support in our waitpid()-emulation, a (very limited) kill()-emulation, a patch that uses real PIDs on Windows (instead of process-local kernel-handles), a patch that changes the code to use select() instead of poll() to wait for socket-action (due to our limited poll-emulation). And there's a patch that makes sure connections are reported from the root-process.

In addition, I've attached an updated version of the getaddrinfo()-fix that Martin sent me privately. I removed Hannes sign-off (as requested by Martin, due to the update)

The branch can also be found here: http://repo.or.cz/w/git/kusma.git daemon-win32-v2

Puuuh, I hope I didn't miss anything important.
Erik Faye-Lund (10):
  inet_ntop: fix a couple of old-style decls
  mingw: support waitpid with pid > 0 and WNOHANG
  mingw: use real pid
  mingw: add kill emulation
  daemon: use explicit file descriptor
  daemon: use run-command api for async serving
  daemon: use full buffered mode for stderr
  mingw: compile git-daemon
  daemon: use select() instead of poll()
  daemon: report connection from root-process
Martin Storsjö (1):
  Improve the mingw getaddrinfo stub to handle more use cases
Mike Pape (3):
  mingw: add network-wrappers for daemon
  mingw: implement syslog
  compat: add inet_pton and inet_ntop prototypes
 Makefile           |   10 +-
 compat/inet_ntop.c |   22 ++----
 compat/inet_pton.c |    8 +-
 compat/mingw.c     |  141 +++++++++++++++++++++++++++++--
 compat/mingw.h     |   80 +++++++++++++++++-
 daemon.c           |  236 ++++++++++++++++++++++++++++------------------------
 git-compat-util.h  |    9 ++
 7 files changed, 361 insertions(+), 145 deletions(-)
Next: Erik Faye-Lund
Message 1 of 49 in “daemon-win32”
  1. 00/14 daemon-win32Erik Faye-Lund, Jan 15, 2010
  2. 01/14 mingw: add network-wrappers for daemonErik Faye-Lund, Jan 15, 2010
  3. 02/14 mingw: implement syslogErik Faye-Lund, Jan 15, 2010
  4. Janos LaubeJan 15, 2010
  5. Erik Faye-LundJan 15, 2010
  6. Janos LaubeJan 15, 2010
  7. 03/14 compat: add inet_pton and inet_ntop prototypesErik Faye-Lund, Jan 15, 2010
  8. 04/14 inet_ntop: fix a couple of old-style declsErik Faye-Lund, Jan 15, 2010
  9. 05/14 mingw: support waitpid with pid > 0 and WNOHANGErik Faye-Lund, Jan 15, 2010
  10. Johannes SixtJan 15, 2010
  11. Erik Faye-LundJan 16, 2010
  12. 06/14 mingw: use real pidErik Faye-Lund, Jan 15, 2010
  13. Johannes SixtJan 15, 2010
  14. Erik Faye-LundJan 15, 2010
  15. Johannes SixtJan 16, 2010
  16. Erik Faye-LundJan 16, 2010
  17. Erik Faye-LundJan 18, 2010
  18. Johannes SixtJan 19, 2010
  19. Erik Faye-LundJan 19, 2010
  20. 07/14 mingw: add kill emulationErik Faye-Lund, Jan 15, 2010
  21. Johannes SixtJan 15, 2010
  22. Erik Faye-LundJan 16, 2010
  23. 08/14 daemon: use explicit file descriptorErik Faye-Lund, Jan 15, 2010
  24. Johannes SixtJan 15, 2010
  25. Erik Faye-LundJan 16, 2010
  26. 09/14 daemon: use run-command api for async servingErik Faye-Lund, Jan 15, 2010
  27. Johannes SixtJan 15, 2010
  28. 10/14 daemon: use full buffered mode for stderrErik Faye-Lund, Jan 15, 2010
  29. 11/14 mingw: compile git-daemonErik Faye-Lund, Jan 15, 2010
  30. 12/14 Improve the mingw getaddrinfo stub to handle more use casesErik Faye-Lund, Jan 15, 2010
  31. 13/14 daemon: use select() instead of poll()Erik Faye-Lund, Jan 15, 2010
  32. Johannes SixtJan 15, 2010
  33. Erik Faye-LundJan 15, 2010
  34. Erik Faye-LundJan 15, 2010
  35. Johannes SixtJan 16, 2010
  36. Erik Faye-LundJan 16, 2010
  37. Johannes SixtJan 16, 2010
  38. Erik Faye-LundJan 16, 2010
  39. Andreas SchwabJan 16, 2010
  40. Erik Faye-LundJan 16, 2010
  41. Johannes SixtJan 16, 2010
  42. Erik Faye-LundJan 16, 2010
  43. Johannes SixtJan 16, 2010
  44. Erik Faye-LundJan 16, 2010
  45. Johannes SixtJan 16, 2010
  46. Erik Faye-LundJan 16, 2010
  47. 14/14 daemon: report connection from root-processErik Faye-Lund, Jan 15, 2010
  48. Johannes SixtJan 15, 2010
  49. Erik Faye-LundJan 15, 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.