0560f3089b
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. |
||
---|---|---|
.. | ||
assuan-buffer.c | ||
assuan-client.c | ||
assuan-connect.c | ||
assuan-defs.h | ||
assuan-handler.c | ||
assuan-inquire.c | ||
assuan-io.c | ||
assuan-listen.c | ||
assuan-logging.c | ||
assuan-pipe-connect.c | ||
assuan-pipe-server.c | ||
assuan-socket-connect.c | ||
assuan-socket-server.c | ||
assuan-socket.c | ||
assuan-uds.c | ||
assuan-util.c | ||
assuan.h | ||
ChangeLog | ||
Makefile.am | ||
mkerrors | ||
README.1st |
This is a modified copy of the libassuan library. Don't modify it, but instead modify the original Assuan library and merge the changes back into this copy. The changes to the original libassuan, that have to preserved when updating this directory, are: * Makefile.am ** Build the library with libtool as a convenience library, which can be linked into the shared library GPGME. ** Do not install the library or the header file. ** Define -D_ASSUAN_IN_GPGME_BUILD_ASSUAN to wrap some POSIX functions with ATH replacements. * assuan.h ** Preserve the block between "Begin/End GPGME specific modifications". In particular make sure that #define _ASSUAN_EXT_SYM_PREFIX _gpgme_ #define _ASSUAN_NO_PTH #define _ASSUAN_NO_FIXED_SIGNALS #define _ASSUAN_USE_DOUBLE_FORK are defined. This puts all exported Assuan functions in the _gpgme namespace. It also wraps all system functions that are wrapped by GNU Pth to _gpgme wrappers. * assuan-io-pth.c We don't need this file as GPGME doesn't use sendmsg and recvmsg. If it would, we would need to pick up the W32 implementation. * assuan-io.c ** _assuan_simple_read() and _assuan_simple_write() must always use read()/write() (which actually translates to _gpgme_io_read() and _gpgme_io_write()). _assuan_close must always() use close() (which translates to _gpgme_io_close()). Copyright 2004, 2007 g10 Code GmbH This file is free software; as a special exception the author gives unlimited permission to copy and/or distribute it, with or without modifications, as long as this notice is preserved. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, to the extent permitted by law; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.