diff options
| author | NIIBE Yutaka <[email protected]> | 2024-07-09 06:15:13 +0000 |
|---|---|---|
| committer | NIIBE Yutaka <[email protected]> | 2024-07-09 06:15:13 +0000 |
| commit | 2b19474aab8f2201f896ead44cd72ac06405aa71 (patch) | |
| tree | ecfc259130c96f3a616f8843ad7f53c1c6aafb6b /common/exechelp.h | |
| parent | scd: Add <unistd.h> for read(2) / write(2) . (diff) | |
| download | gnupg-2b19474aab8f2201f896ead44cd72ac06405aa71.tar.gz gnupg-2b19474aab8f2201f896ead44cd72ac06405aa71.zip | |
common: On Windows, we care about how PIPE handles are inherited.
* agent/gpg-agent.c (handle_connections): It's for POSIX.
* kbx/keyboxd.c (handle_connections): Ditto.
* scd/app.c (handle_connections): Ditto.
* scd/scdaemon.c (handle_connections): Ditto.
tpm2d/tpm2daemon.c (handle_connections): Ditto.
* tests/gpgscm/ffi.c (do_pipe): Use GNUPG_PIPE_BOTH.
(do_inbound_pipe): Use GNUPG_PIPE_INBOUND.
(do_outbound_pipe): Use GNUPG_PIPE_OUTBOUND.
* common/call-gpg.c (_gpg_encrypt): Specify outbound and inbound.
(_gpg_decrypt): Likewise.
* common/exechelp-posix.c (gnupg_create_pipe): Add an argument.
* common/exechelp-w32.c (create_pipe_and_estream): Care about
how PIPE handles are inherited to child process.
(gnupg_create_pipe): Add an argument.
* common/exechelp.h: Add enum values.
--
Fixes-commit: af6c47b2910f394faf582800d60d88e9b4dcf834
Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'common/exechelp.h')
| -rw-r--r-- | common/exechelp.h | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/common/exechelp.h b/common/exechelp.h index d2aac4b39..10127859f 100644 --- a/common/exechelp.h +++ b/common/exechelp.h @@ -65,11 +65,17 @@ gpg_error_t gnupg_create_inbound_pipe (gnupg_fd_t *r_fd, gpg_error_t gnupg_create_outbound_pipe (gnupg_fd_t *r_fd, estream_t *r_fp, int nonblock); -/* Portable function to create a pipe. Under Windows both ends are - inheritable. */ -gpg_error_t gnupg_create_pipe (int filedes[2]); +enum { + GNUPG_PIPE_DONTCARE=0, + GNUPG_PIPE_INBOUND=1, + GNUPG_PIPE_OUTBOUND=2, + GNUPG_PIPE_BOTH=3 +}; -/* Close the end of a pipe. */ -void gnupg_close_pipe (int fd); +/* Portable function to create a pipe. FLAGS=GNUPG_PIPE_INBOUND for + ihneritable write-end for Windows, GNUPG_PIPE_OUTBOUND for + inheritable read-end for Windows, GNUPG_PIPE_BOTH to specify + both ends may be inheritable. */ +gpg_error_t gnupg_create_pipe (int filedes[2], int flags); #endif /*GNUPG_COMMON_EXECHELP_H*/ |
