assuan/
authorMarcus Brinkmann <mb@g10code.com>
Wed, 25 Jun 2008 16:52:31 +0000 (16:52 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Wed, 25 Jun 2008 16:52:31 +0000 (16:52 +0000)
commite955933edfa3fe464c0efe95d55a7a9892196fc6
tree0c40ff10394959fa5dc7ac5d3a39940a4b9ae806
parentc7e3d3a7c02376bb029d1badb1479b2288d6d69a
assuan/
2008-06-25  Marcus Brinkmann  <marcus@g10code.de>

* assuan-pipe-connect.c (struct spawn_fd_item_s): Add new members.
(HANDLE_TRANSLATION): New macro.
(pipe_connect_gpgme): Adjust caller of _gpgme_io_spawn.
[HANDLE_TRANSLATION]: Return translated handles.

gpgme/
2008-06-25  Marcus Brinkmann  <marcus@g10code.de>

* gpgme-w32spawn.c: New file.
* Makefile.am (libexec_PROGRAMS) [HAVE_W32_SYSTEM]: New variable
with gpgme-w32spawn.
* engine-gpgsm.c (gpgsm_new): Use server translated handles.
(gpgsm_set_locale): Return early if locale value is NULL.
* util.h (_gpgme_mkstemp)
(_gpgme_get_w32spawn_path) [HAVE_W32_SYSTEM]: New function
prototypes.
* w32-util.c: Include <stdint.h>, <sys/stat.h> and <unistd.h>.
(letters, mkstemp, _gpgme_mkstemp, _gpgme_get_w32spawn_path): New
functions.
* rungpg.c (gpg_decrypt, gpg_encrypt, gpg_encrypt_sign)
(gpg_genkey, gpg_import, gpg_verify, gpg_sign): Pass data over
special filename FD rather than stdin.
(struct arg_and_data_s): Add member ARG_LOCP.
(struct fd_data_map_s): Add member ARG_LOC.
(struct engine_gpg): Add member ARG_LOC to status and colon.
(_add_arg, add_arg_with_locp): New function.
(add_arg_ext): Reimplement in terms of _add_arg.
(gpg_new): Remember argument location for status FD.
(build_argv): Set argument location if requested.  Also set
argument location of fd_data_map for data items.
(start): Adjust caller of _gpgme_io_spawn.
* priv-io.h (struct spawn_fd_item_s): Add members peer_name and
arg_loc.
(_gpgme_io_spawn): Remove parent fd list argument.
* posix-io.c (get_max_fds): New function.
(_gpgme_io_dup): Add tracing.
(_gpgme_io_spawn): Remove parent fd list.  Change meaning of child
fd list to contain all child fds that should be inherited.  Close
all other file descriptors after fork.
* w32-io.c, w32-glib-io.c, w32-qt-io.c(_gpgme_io_spawn): Remove
parent fd list.  Change meaning of child fd list to contain all
child fds that should be inherited.  Do not inherit any file
descriptors, but DuplicateHandle them.  Spawn process through
wrapper process.  Provide wrapper process with a temporary file
containing handle translation data.  Return translated handle
names.
* w32-io.c (reader): Add more tracing output.
(_gpgme_io_read): Likewise.
* engine-gpgconf.c (gpgconf_read): Adjust caller of
_gpgme_io_spawn.
* version.c (_gpgme_get_program_version): Likewise.
17 files changed:
trunk/assuan/ChangeLog
trunk/assuan/assuan-pipe-connect.c
trunk/gpgme/ChangeLog
trunk/gpgme/Makefile.am
trunk/gpgme/engine-gpgconf.c
trunk/gpgme/engine-gpgsm.c
trunk/gpgme/gpgme-w32spawn.c [new file with mode: 0644]
trunk/gpgme/gpgme.h
trunk/gpgme/posix-io.c
trunk/gpgme/priv-io.h
trunk/gpgme/rungpg.c
trunk/gpgme/util.h
trunk/gpgme/version.c
trunk/gpgme/w32-glib-io.c
trunk/gpgme/w32-io.c
trunk/gpgme/w32-qt-io.cpp
trunk/gpgme/w32-util.c