git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: kusmabite@gmail.com
Cc: git@vger.kernel.org, msysgit@googlegroups.com, j6t@kdbg.org,
	avarab@gmail.com, sunshine@sunshineco.com
Subject: Re: [PATCH v4 15/15] daemon: opt-out on features that require posix
Date: Mon, 18 Oct 2010 12:26:30 -0700	[thread overview]
Message-ID: <7vaamb480p.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <AANLkTim0KeW3eDHAsxrxMCvBUD_15R3VSrHSzOFq38A1@mail.gmail.com> (Erik Faye-Lund's message of "Mon\, 18 Oct 2010 14\:05\:09 +0200")

Erik Faye-Lund <kusmabite@gmail.com> writes:

> (I'm going a little off-topic here, I hope that's OK)
> I'm not too happy with some of the pretend-really-hard-to-be-posix-magic
> around in the Windows-port. In fact, I have some patches to reduce
> posixness in some areas, while getting rid of some code in
> mingw.c. Would such patches be welcome, or is pretend-to-be-posix the
> governing portability approach? In some cases, this comes at the expense
> of some performance (and quite a bit of added cludge), which is a bit
> contradictory to the Git design IMO.

If the part of the codepath you need to make conditional can be better
helped by abstraction that is higher-level than POSIX, that would be a
very acceptable approach.  The "struct credential" idea Jonathan gave you
is an example of such.  The goal is not to force POSIX on Windows or make
POSIX emulation on Windows more complete---that is not git's job.  Just
that in most of the case the level of abstraction POSIX gives has been
adequate for our codebase.

>> This is especially
>> true if you are making the "drop-privileges" part a helper function, no?
>
> I don't follow this part. What exactly becomes more true by having a
> drop-privileges function?

By using a bit higher level abstraction than POSIX primitives give you
(e.g. initgroups(), setgid(), etc.) that does not have to depend on
particular POSIX implementation details (e.g. "struct passwd", gid_t,
etc.), you can make the main codepath cleaner and free of ifdefs.

  parent reply	other threads:[~2010-10-18 19:27 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-11 21:50 [PATCH v4 00/15] daemon-win32 Erik Faye-Lund
2010-10-11 21:50 ` [PATCH v4 01/15] mingw: add network-wrappers for daemon Erik Faye-Lund
2010-10-11 22:07   ` Jonathan Nieder
2010-10-11 21:50 ` [PATCH v4 02/15] mingw: implement syslog Erik Faye-Lund
2010-10-11 22:11   ` Jonathan Nieder
2010-10-11 22:28     ` Erik Faye-Lund
2010-10-11 22:37       ` Jonathan Nieder
2010-10-13 12:36         ` Erik Faye-Lund
2010-10-13 19:23           ` Eric Sunshine
2010-10-13 21:17             ` [msysGit] " Pat Thoyts
2010-10-14  0:47               ` Erik Faye-Lund
2010-10-11 21:50 ` [PATCH v4 03/15] compat: add inet_pton and inet_ntop prototypes Erik Faye-Lund
2010-10-11 21:50 ` [PATCH v4 04/15] inet_ntop: fix a couple of old-style decls Erik Faye-Lund
2010-10-11 21:50 ` [PATCH v4 05/15] mingw: use real pid Erik Faye-Lund
2010-10-11 21:50 ` [PATCH v4 06/15] mingw: support waitpid with pid > 0 and WNOHANG Erik Faye-Lund
2010-10-11 21:50 ` [PATCH v4 07/15] mingw: add kill emulation Erik Faye-Lund
2010-10-11 21:50 ` [PATCH v4 08/15] daemon: use run-command api for async serving Erik Faye-Lund
2010-10-13 22:47   ` Junio C Hamano
2010-10-14 10:18     ` Erik Faye-Lund
2010-10-17  4:43       ` Junio C Hamano
2010-10-11 21:50 ` [PATCH v4 09/15] daemon: use full buffered mode for stderr Erik Faye-Lund
2010-10-11 21:50 ` [PATCH v4 10/15] Improve the mingw getaddrinfo stub to handle more use cases Erik Faye-Lund
2010-10-11 21:50 ` [PATCH v4 11/15] daemon: report connection from root-process Erik Faye-Lund
2010-10-13 22:55   ` Junio C Hamano
2010-10-14 10:50     ` Erik Faye-Lund
2010-10-17  4:43       ` Junio C Hamano
2010-10-17 10:18         ` Erik Faye-Lund
2010-10-11 21:50 ` [PATCH v4 12/15] mingw: import poll-emulation from gnulib Erik Faye-Lund
2010-10-11 21:50 ` [PATCH v4 13/15] mingw: use " Erik Faye-Lund
2010-10-11 21:50 ` [PATCH v4 14/15] daemon: use socklen_t Erik Faye-Lund
2010-10-11 21:50 ` [PATCH v4 15/15] daemon: opt-out on features that require posix Erik Faye-Lund
2010-10-13 23:02   ` Junio C Hamano
2010-10-14 11:02     ` Erik Faye-Lund
2010-10-15 21:16       ` Junio C Hamano
2010-10-18 12:05         ` Erik Faye-Lund
2010-10-18 16:31           ` Jonathan Nieder
2010-10-18 18:13             ` Andreas Schwab
2010-10-18 18:42               ` empty structs Jonathan Nieder
2010-10-21 21:16             ` [PATCH v4 15/15] daemon: opt-out on features that require posix Erik Faye-Lund
2010-10-21 22:00               ` Erik Faye-Lund
2010-10-21 22:03                 ` Jonathan Nieder
2010-10-21 22:04                 ` Erik Faye-Lund
2010-10-21 23:17                 ` Junio C Hamano
2010-10-18 19:26           ` Junio C Hamano [this message]
2010-10-21 20:37   ` Erik Faye-Lund
2010-10-21 20:39     ` Jonathan Nieder
2010-10-21 20:54       ` Erik Faye-Lund

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7vaamb480p.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=j6t@kdbg.org \
    --cc=kusmabite@gmail.com \
    --cc=msysgit@googlegroups.com \
    --cc=sunshine@sunshineco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).