aboutsummaryrefslogtreecommitdiffstats
path: root/src/assuan-pipe-connect.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add new pipe functions to control its server process.NIIBE Yutaka2023-07-241-0/+37
| | | | | | | | | | | | | | | | * src/assuan-pipe-connect.c (assuan_pipe_wait_server_termination) (assuan_pipe_kill_server): New. * src/assuan.h.in: Add new functions. * src/libassuan.def: Add symbols for those functions. * src/libassuan.vers: Likewise. * src/system-posix.c (__assuan_waitpid): Extend the semantics for OPTIONS. * src/system-w32.c (__assuan_waitpid): Likewise. -- GnuPG-bug-id: T6487 Signed-off-by: NIIBE Yutaka <[email protected]>
* w32: Cleaner semantics for PID and Process handle.NIIBE Yutaka2023-05-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | * src/assuan-defs.h (struct assuan_context_s): Introduce SERVER_PROC member. Clarify the use of PROCESS_ID and PID. Introduce assuan_pid_t for internal use of process id or handle. * src/assuan.h.in: Follow the change. * src/assuan.c (assuan_new_ext): Likewise. * src/client.c (_assuan_client_finish): Likewise. * src/assuan-pipe-connect.c (pipe_connect): Likewise. * src/server.c (_assuan_server_finish): Likewise. * src/system-posix.c: Likewise. * src/system-w32.c: Likewise. * src/system.c: Likewise. * src/assuan-pipe-server.c (assuan_init_pipe_server) [HAVE_W32_SYSTEM]: Exclude the use of _assuan_pipe_connect_pid. * src/assuan-socket-server.c (accept_connection_bottom) [HAVE_W32_SYSTEM]: Exclude the use of the member peercred.pid. * src/assuan-socket.c (_assuan_sock_check_nonce): Support Cygwin Unix domain emulation for having valid client process ID. * src/context.c (assuan_get_pid): Clarify the use cases. * src/posix-types.inc.h, src/w32-types.inc.h: Introduce assuan_pid_t. -- GnuPG-bug-id: 6487 Signed-off-by: NIIBE Yutaka <[email protected]>
* w32: Minor fixes for ifdef/endif for W32 and W64.NIIBE Yutaka2023-05-101-1/+1
| | | | | | | | | | * src/assuan-defs.h: Fix. * src/assuan-pipe-connect.c: Likewise. * src/assuan-socket-connect.c: Likewise. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* w32: Fix confusion between process ID and process HANDLE.NIIBE Yutaka2022-11-151-4/+4
| | | | | | | | | | | | | | | * src/assuan-defs.h (struct assuan_context_s): Rename to process_id. * src/assuan-pipe-connect.c (initial_handshake): Fix variable name and access to the member field. * src/assuan-socket-connect.c (_assuan_connect_finalize): Likewise. * src/system-w32.c (get_file_handle): Likewise. (w32_fdpass_send): Likewise. -- Fixes-commit: ba84b780df973ba7ca7f7c51fbd1b6d1a69b8c01 GnuPG-bug-id: 6236 Signed-off-by: NIIBE Yutaka <[email protected]>
* w32: Have PROCESS_HANDLE in struct assuan_context_s.NIIBE Yutaka2022-11-091-5/+5
| | | | | | | | | | | | | | | | | | * src/assuan-defs.h (struct assuan_context_s): Add process_handle field. It's "int" instead of DWORD, because of getpid function. * src/assuan-pipe-connect.c (initial_handshake): Set ->process_handle, not override ->pid. * src/assuan-socket-connect.c (assuan_connect_finalize): Likewise. * src/system-w32.c (w32_fdpass_send): Use ->process_handle. -- In the client code, ctx->pid (by the function assuan_get_pid) may be used to watch the finish of server process. Thus, it should not be overridden. See: gnupg/agent/call-daemon.c. GnuPG-bug-id: 6236 Signed-off-by: NIIBE Yutaka <[email protected]>
* w32: Support fd passing through pipe.NIIBE Yutaka2022-11-071-1/+25
| | | | | | | | | | | | | | | | * src/assuan-pipe-connect.c (initial_handshake): Get peer's PID from the initial interaction. * src/assuan-pipe-server.c (assuan_init_pipe_server): Handle the case of FILEDES == NULL on Windows. * tests/Makefile.am [HAVE_W32_SYSTEM] (TESTS): Add fdpassing. * tests/fdpassing.c: Remove including sys/socket.h and sys/wait.h. (cmd_echo): Output to stder, as stdout is /dev/null. (main): Support Windows. -- GnuPG-bug-id: 6236 Signed-off-by: NIIBE Yutaka <[email protected]>
* w32: Support sendfd/recvfd through pipe connection.NIIBE Yutaka2022-11-041-8/+8
| | | | | | | | | | | | | | | | | * src/assuan-defs.h (w32_fdpass_send, w32_fdpass_recv): New. * src/assuan-pipe-connect.c [HAVE_W32_SYSTEM] (pipe_connect): Set w32_fdpass_send. [!HAVE_W32_SYSTEM] (assuan_pipe_connect): Use socketpair_connect. * src/assuan-pipe-server.c [HAVE_W32_SYSTEM] (assuan_init_pipe_server): Set w32_fdpass_recv. * src/system-w32.c (get_file_handle): New. (w32_fdpass_send): New, using "SENDFD" internal command. (w32_fdpass_recv): New, using the result of "SENDFD" internal command. -- GnuPG-bug-id: 6236 Signed-off-by: NIIBE Yutaka <[email protected]>
* Add an SPDX tag to all core files.Werner Koch2017-11-151-17/+18
| | | | --
* Fix minor memory leaksWerner Koch2016-06-251-1/+2
| | | | | | | | | | | * src/assuan-pipe-connect.c (socketpair_connect): Always free CHILD_FDS. * src/assuan-uds.c (uds_sendfd): Clear CONTROL_U to silence Valgrind. * tests/fdpassing.c (main): Free FNAME. * src/assuan-handler.c (dispatch_command): Remove dead assignment. Signed-off-by: Werner Koch <[email protected]>
* Improve getting of max. number of open fds.Werner Koch2016-01-151-7/+0
| | | | | | | | | | | | | | | | | | | * configure.ac (AC_CHECK_FUNCS): Add getrlimit. * src/assuan-pipe-connect.c (MAX_OPEN_FDS): Remove non-used macro. * src/system.c (MAX_OPEN_FDS): Remove non-used macro. * src/system-posix.c: Include stdint.h, sys/time.h, sys/resource.h. (MAX_OPEN_FDS): Remove non-used macro. (get_max_fds): New. Taken from gnupg/common/exechelp-posix.c. (__assuan_spawn): Use it here. -- This is related to GnuPG-bug-id: 2071 Changing of get_max_fds from LPGLv3+ to LGPLv2+ approved by me as sole author or that code. Signed-off-by: Werner Koch <[email protected]>
* Fix assuan_get_pid for pipe servers.Werner Koch2011-12-131-19/+24
| | | | | | | | | | | At some point in the past we introduced a regression in that the client of a pipe server received its own pid and not the pid of the server. * src/assuan-pipe-connect.c (struct at_pipe_fork) (struct at_socketpair_fork): Add PARENT_PID. (at_pipe_fork_cb, at_socketpair_fork): Use PARENT_PID instead of getpid. (pipe_connect, socketpair_connect): Set PARENT_PID.
* 2010-11-01 Marcus Brinkmann <[email protected]>Marcus Brinkmann2010-11-011-0/+2
| | | | | | | | | | | | | | | * configure.ac: Check for fcntl.h. 2010-11-01 Marcus Brinkmann <[email protected]> * assuan-socket.c, assuan-uds.c, system.c, assuan-pipe-server.c, assuan-pipe-connect.c [!HAVE_FCNTL_H]: Don't include fcntl.h. * assuan-buffer.c [!HAVE_W32CE_SYSTEM]: Do not include process.h. * assuan-socket.c [!HAVE_W32CE_SYSTEM]: Do not include io.h. * w32-includes.inc.h: Include winsock2.h before ws2tcpip.h. * sysutils.c (w32_read_registry): Replace goto label "leave" by "out" (as leave is defined by some Windows header file). * assuan-inquire.c: Likewise.
* Changes to allow building the CE version with MSC.Werner Koch2010-11-011-4/+11
|
* Add ASSUAN_CONVEY_COMMENTS flag.Werner Koch2010-08-111-1/+1
|
* Changes for W32CEWerner Koch2010-04-141-2/+2
|
* Changed the implementation of CreatePipe under W32CE.Werner Koch2010-03-221-4/+4
| | | | | Reorganized the source.
* A couple of changes to eventually fully support W32ce.Werner Koch2010-02-241-1/+1
|
* Changes to build for W32CE - does not yet work, though.Werner Koch2010-01-221-1/+5
|
* doc/Marcus Brinkmann2009-12-081-1/+6
| | | | | | | | | | | | | | 2009-12-08 Marcus Brinkmann <[email protected]> * assuan.texi (Contexts): Document ASSUAN_SPAWN_DETACHED. src/ 2009-12-08 Marcus Brinkmann <[email protected]> * assuan.h (ASSUAN_SPAWN_DETACHED): New macro. * assuan-pipe-connect.c (pipe_connect): Calculate spawn_flags from flags.
* 2009-12-08 Marcus Brinkmann <[email protected]>Marcus Brinkmann2009-12-081-3/+3
| | | | | | | | | | | | | | | | | | * assuan-socket.c (get_nonce): Cast buffer to unsigned. (_assuan_sock_connect) [HAVE_W32_SYSTEM]: Drop ctx argument from read_port_and_nonce invocation. * system.c (assuan_fdopen) [HAVE_W32_SYSTEM]: Fix typo in variable name. (__assuan_spawn) [HAVE_W32_SYSTEM]: Fix types of fd and fdp. Use ASSUAN_INVALID_FD. Add missing context argument to _assuan_free, and fix call to _assuan_w32_strerror. Set errno on error. (__assuan_socketpair) [HAVE_W32_STRERROR]: Fix type of filedes argument. * assuan-pipe-connect.c (pipe_connect, assuan_pipe_connect, socketpair_connect) [HAVE_W32_SYSTEM]: Fix type of fd_child_list. * assuan-defs.h (_assuan_socketpair): Likewise for prototype. * assuan.h (assuan_fd_from_posix_fd): New static inline function.
* src/Marcus Brinkmann2009-12-021-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | 2009-12-02 Marcus Brinkmann <[email protected]> * Makefile.am (common_sources): Remove assuan-client.c. * assuan-client.c: File removed. * assuan.h (ASSUAN_RESPONSE_ERROR, ASSUAN_RESPONSE_OK) (ASSUAN_RESPONSE_STATUS, ASSUAN_RESPONSE_INQUIRE) (ASSUAN_RESPONSE_STATUS): New macros. (assuan_response_t): New type. (assuan_client_read_response, assuan_client_parse_response): New prototypes. * libassuan.def, libassuan.vers: Add assuan_client_read_response, assuan_client_parse_response. * assuan-client.c (xtoi_1, xtoi_2, assuan_transact) (_assuan_read_from_server): Moved to ... * client.c: ... here, with updates to use new functions and types. Include <stdlib.h>. (assuan_client_read_response, assuan_client_parse_response): New functions. * assuan-defs.h (_assuan_read_from_server): Use assuan_response_t. * assuan-pipe-connect.c (initial_handshake): Use assuan_response_t and ASSUAN_RESPONSE_OK. * assuan-socket-connect.c (assuan_socket_connect): Likewise.
* 2009-11-27 Marcus Brinkmann <[email protected]>Marcus Brinkmann2009-11-271-4/+5
| | | | | | | | | | | | | | | | | | | * assuan.h (assuan_set_assuan_log_stream): Add prototype. * libassuan.def, libassuan.vers: Add back assuan_set_assuan_log_stream. * assuan-logging.c (assuan_set_assuan_log_stream): Add back. * context.c (assuan_get_pointer): Don't output debug info here. (assuan_get_peercred, assuan_get_pid): But do here. * system.c: Improve debug output. * assuan-defs.h (struct assuan_context_s): Rename pipe_mode to max_accepts. * assuan-listen.c (assuan_accept): Rework max accepts logic. * assuan-socket-server.c (assuan_init_socket_server), assuan-socket-connect.c (assuan_socket_connect), assuan-pipe-server.c (assuan_init_pipe_server), assuan-pipe-connect.c (socketpair_connect): Add debug output, set max_accepts instead of pipe_mode.
* 2009-11-19 Marcus Brinkmann <[email protected]>Marcus Brinkmann2009-11-191-36/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.am (common_sources): Remove assuan-connect.c and add client.c. * client.c, server.c: New file. * assuan-defs.h (_assuan_disconnect): Remove. (struct assuan_context_s): Remove members deinit_handler. (_assuan_client_release, _assuan_client_finish) (_assuan_server_finish, _assuan_server_release): New. * assuan-socket-server.c (accept_connection_bottom): Use ASSUAN_INVALID_PID, not -1. (finish_connection, deinit_socket_server): Remove. (assuan_init_socket_server): Use _assuan_server_release. * assuan-socket-connect.c (do_finish, do_deinit): Remove. (assuan_socket_connect): Use _assuan_client_release. * assuan-pipe-connect.c (do_finish, do_deinit): Remove. (pipe_connect): Update deinitialization. (socketpair_connect): Here as well. * context.c (assuan_get_pid): New from ... * assuan-connect.c (assuan_get_pid): ... here. Remove this file. * assuan-pipe-server.c (_assuan_deinit_server, accept_connection) (deinit_pipe_server, finish_connection): Remove unused function. * assuan-listen.c (assuan_accept): Check CTX->accept_handler before calling. Initialize RC. Do not call finish handler for pipe server. * assuan-uds.c (_assuan_uds_deinit): Do not call finish handler.
* 2009-11-10 Marcus Brinkmann <[email protected]>Marcus Brinkmann2009-11-101-7/+12
| | | | | | | | | | | | | | | | * assuan-defs.h (struct assuan_context_s): Rename CTX->process_done to CTX->process_complete for clarity. Remove buffer variables from UDS. * assuan-pipe-connect.c (socketpair_connect): Allow FD_CHILD_LIST to be NULL. * assuan-handler.c: Rename CTX->process_done to CTX->process_complete for clarity. (process_request, process_next): Handle EOF. * assuan-uds.c (uds_reader): Remove buffering, which breaks the pending line algorithm in assuan-buffer.c. (_assuan_init_uds_io, _assuan_uds_deinit): Remove buffering. * assuan-buffer.c (_assuan_read_line): Add comment.
* 2009-11-05 Marcus Brinkmann <[email protected]>Marcus Brinkmann2009-11-051-20/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tests/fdpassing.c (main): Call assuan_pipe_connect instead of assuan_pipe_connect_ext. doc/ 2009-11-05 Marcus Brinkmann <[email protected]> * assuan.texi (Client code): Document ASSUAN_PIPE_CONNECT_FDPASSING and ASSUAN_PIPE_CONNECT_DETACHED. (Server code): Document ASSUAN_SOCKET_SERVER_FDPASSING and ASSUAN_SOCKET_SERVER_ACCEPTED. (Utilities): Update documentation of assuan_get_peercred. src/ 2009-11-05 Marcus Brinkmann <[email protected]> * assuan.h (struct _assuan_peercred, assuan_peercred_t): New. (assuan_get_peercred): Define on all systems, return assuan_peercred_t. * assuan-defs.h (struct assuan_context_s): Move valid flag out of peercred struct, use struct _assuan_peercred. * libassuan.def: Add assuan_get_peercred. * assuan-connect.c (assuan_get_peercred): Moved to ... * context.c (assuan_get_peercred): ... here. Reimplement. * assuan-socket-server.c (accept_connection_bottom): Adjust access to peercred in context. * assuan.h (ASSUAN_PIPE_CONNECT_FDPASSING) (ASSUAN_PIPE_CONNECT_DETACHED, ASSUAN_SOCKET_SERVER_FDPASSING) (ASSUAN_SOCKET_SERVER_ACCEPTED, ASSUAN_SOCKET_CONNECT_FDPASSING): New. (assuan_pipe_connect_ext): Renamed to ... (assuan_pipe_connect): ... this, overwriting old prototype. (assuan_socket_connect_ext): Renamed to ... (assuan_socket_connect): ... this, overwriting old prototype. (assuan_init_socket_server_ext): Renamed to ... (assuan_init_socket_server): ... this, overwriting old prototype. * assuan-pipe-connect.c: Likewise for functions. * assuan-socket-connect.c: Likewise. * assuan-socket-server.c: Likewise. * libassuan.def (assuan_init_socket_server_ext) (assuan_pipe_connect_ext, assuan_socket_connect_ext): Removed. * libassuan.vers: Likewise.
* 2009-10-16 Marcus Brinkmann <[email protected]>Marcus Brinkmann2009-10-161-602/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * autogen.sh: Remove --with-pth-prefix from configure invocation. * configure.ac (_ASSUAN_IN_LIBASSUAN, PTH_SYSCALL_SOFT): Do not set anymore. (GNUPG_PATH_PTH): Don't invoke. (HAVE_PTH): Remove conditional. (LIBASSUAN_CONFIG_THREAD_MODULES): Removed. doc/ 2009-10-16 Marcus Brinkmann <[email protected]> * assuan.texi: Remove documentation for thread support. (assuan_pipe_connect_ext): Update prototype. src/ 2009-10-16 Marcus Brinkmann <[email protected]> * conversion.c: Do not include <sys/types.h> and <time.h>. * debug.h (TRACE_BEG6, TRACE4): New macros. (TRACE_SYSERR): Pass _assuan_trace_context to _assuan_debug. * context.c (assuan_set_pointer, assuan_get_pointer, assuan_set_flag, assuan_get_flag, assuan_set_io_monitor, assuan_set_error): Add trace messages. * libassuan-config.in, libassuan.m4, Makefile.am: Remove PTH support. * assuan.h (assuan_msghdr_t): New type. (ASSUAN_INVALID_PID): New macro. (ASSUAN_NO_FIXSIGNALS): New flag macro. (ASSUAN_SYSTEM_HOOKS_VERSION): New macro. (struct assuan_system_hooks, assuan_system_hooks_t): New types. (assuan_pipe_connect, assuan_pipe_connect_ext): Don't make ARGV const for name==NULL operation. Make fd_child_list an array of assuan_fd_t. (assuan_sock_init, assuan_sock_deinit, assuan_set_system_hooks, assuan_ctx_set_system_hooks, __assuan_pipe, __assuan_close, __assuan_spawn, __assuan_socketpair): New function prototypes. (_ASSUAN_SYSTEM_PTH_IMPL, ASSUAN_SYSTEM_PTH_DECL, ASSUAN_SYSTEM_PTH): New macros. (_assuan_system_pth): New declaration. * libassuan.vers, libassuan.defs: Add assuan_sock_init, assuan_sock_deinit, __assuan_pipe, __assuan_close, __assuan_spawn, __assuan_socketpair, assuan_set_system_hooks, assuan_ctx_set_system_hooks. * assuan-defs.h (struct assuan_io): Removed, move members to ... (struct assuan_context_s): ... this to ENGINE. New flag no_fixsignals. New member SYSTEM. Remove member IO. (_assuan_pipe, _assuan_read, _assuan_write, _assuan_recvmsg, _assuan_sendmsg, _assuan_spawn, _assuan_socketpair, _assuan_system_hooks, _assuan_system_hooks_copy): New declarations. (_assuan_error_is_eagain, _assuan_waitpid, _assuan_usleep, _assuan_close, _assuan_sock_new, _assuan_sock_connect, _assuan_sock_bind, _assuan_sock_get_nonce, _assuan_sock_check_nonce): Add context argument. (_assuan_io_read, _assuan_io_write, _assuan_simple_sendmsg, _assuan_simple_recvmsg): Removed. * context.c (assuan_ctx_set_system_hooks): New function. * assuan.c (assuan_set_system_hooks): New function. (assuan_new_ext): Initialize CTX->system. (assuan_release): Always output trace message. * assuan-error.c (_assuan_error_is_eagain): Add ctx argument, pass along to _assuan_usleep. * assuan-inquire.c assuan-listen.c, assuan-socket-server.c, assuan-handler.c, assuan-socket-connect.c, assuan-client.c, assuan-pipe-connect.c, assuan-socket.c: Pass CTX argument to functions that need it (_assuan_sock_new, _assuan_sock_check_none, _assuan_close, _assuan_error_is_eagain and many more). * assuan-socket-server.c (assuan_init_socket_server_ext): Update fields in CTX->engine instead of CTX->io. * assuan-socket-connect (assuan_socket_connect_ext): Likewise. * assuan-uds.c (uds_reader, uds_writer, uds_sendfd): Use _assuan_recvmsg and _assuan_sendmsg instead of _assuan_simple_recvmsg and _assuan_simple_sendmsg respectively. (_assuan_init_uds_io): Update fields in CTX->engine instead of CTX->io. * assuan-buffer.c: Use functions in CTX->engine instead of CTX->io. * assuan-pipe-server.c (assuan_init_pipe_server): Update fields in CTX->engine instead of CTX->io. * system.c: Include <sys/types.h>, <time.h>, <fcntl.h>, and <windows.h> resp. <sys/wait.h>. Define MAX_OPEN_FDS. (_assuan_system_hooks_copy, __assuan_usleep, _assuan_usleep, __assuan_pipe, _assuan_pipe, __assuan_close, _assuan_close, __assuan_read, _assuan_read, __assuan_write, _assuan_write, __assuan_recvmsg, _assuan_recvmsg, __assuan_sendmsg, _assuan_sendmsg, __assuan_spawn, _assuan_spawn, __assuan_waitpid, _assuan_waitpid, __assuan_socketpair, _assuan_socketpair): New functions. (_assuan_system_hooks): New singleton. * assuan-io.c (_assuan_waitpid, do_io_read, _assuan_io_read, do_io_write, _assuan_io_write, _assuan_simple_sendmsg, _assuan_simple_recvmsg, _assuan_usleep): Removed. * assuan-pipe-connect (writen, build_w32_commandline, create_inheritable_pipe): Removed (actually moved to system.c). (fix_signals) [_ASSUAN_NO_FIXED_SIGNALS]: Still fix signals. (do_finish): Move waitpid logic to _assuan_waitpid, just call that. (struct at_pipe_fork, struct at_socketpair_fork): New types. (at_pipe_fork_cb, at_socketpair_fork_cb): New callback functions. (pipe_connect_unix, pipe_connect_w32): Replaced by ... (pipe_connect): ... this new function using new system functions. (socketpair_connect): Reimplement to use new system functions. (assuan_pipe_connect, assuan_pipe_connect_ext): Add trace message. * assuan-socket.c (_assuan_close): Removed (moved to system.c). (_assuan_sock_new, _assuan_sock_connect, _assuan_sock_bind, _assuan_sock_get_nonce, _assuan_sock_check_nonce): Add context argument. Use new system interface. (sock_ctx): New singleton. (assuan_sock_init, assuan_sock_deinit): New functions to initialize and deinitialize the singleton.
* 2009-10-08 Marcus Brinkmann <[email protected]>Marcus Brinkmann2009-10-081-12/+12
| | | | | | | | | | | | | | | | | | | | * configure.ac: AC_REPLACE_FUNCS for vasprintf. src/ 2009-10-08 Marcus Brinkmann <[email protected]> * assuan.h (assuan_get_assuan_log_stream, assuan_set_assuan_log_stream): Remove prototypes. * libassuan.def: Remove assuan_get_assuan_log_stream, assuan_set_assuan_log_stream. * libassuan.vers: Likewise. * assuan-defs.h (_assuan_w32_strerror): Fix prototype. (w32_strerror): Remove macro. * assuan-pipe-connect.c (build_w32_commandline): Add argument for context. Use it for malloc routines. Use _assuan_w32_strerror instead of w32_strerror. * vasprintf.c: New file.
* 2009-09-19 Marcus Brinkmann <[email protected]>Marcus Brinkmann2009-09-211-143/+138
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tests/fdpassing.c: Update to new API. * configure.ac: Check for stdint.h and inttypes.h. Invoke AC_TYPE_UINTPTR_T. doc/ 2009-09-21 Marcus Brinkmann <[email protected]> * assuan.texi: Update to new API. src/ 2009-09-19 Marcus Brinkmann <[email protected]> * src/libassuan.vers, src/libassuan.def: Update to new API. * assuan.c, context.c, system.c, debug.c: New files. * Makefile.am (common_sources): Add assuan.c, context.c, system.c and debug.c. * assuan.h: Include <stdarg.h>. Fix inclusion of <gpg-error.h>. (_ASSUAN_EXT_SYM_PREFIX, _ASSUAN_PREFIX1, _ASSUAN_PREFIX2) (_ASSUAN_PREFIX): Remove support for renaming the whole library, now that we have a stable shared library interface that can evolve to cover all needs (particularly those of GPGME). (assuan_malloc_hooks, assuan_malloc_hooks_t, assuan_log_cb_t) (assuan_io_monitor_t): New types. (ASSUAN_LOG_INIT, ASSUAN_LOG_CTX, ASSUAN_LOG_ENGINE) (ASSUAN_LOG_DATA, ASSUAN_LOG_SYSIO, ASSUAN_IO_FROM_PEER) (ASSUAN_IO_TO_PEER, ASSUAN_IO_MONITOR_NOLOG) (ASSUAN_IO_MONITOR_IGNORE): New symbols. (assuan_set_gpg_err_source, assuan_get_gpg_err_source) (assuan_get_malloc_hooks, assuan_set_log_cb, assuan_get_log_cb) (assuan_new, assuan_new_ext, assuan_release): New function prototypes. (assuan_init_pipe_server, assuan_init_socket_server) (assuan_init_socket_server_ext, assuan_pipe_connect) (assuan_pipe_connect_ext, assuan_socket_connect) (assuan_socket_connect_ext): Take a context argument instead of pointer to context. (assuan_deinit_server, assuan_disconnect) (assuan_set_assuan_err_source): Remove function prototypes. * assuan-defs.h (ASSUAN_GCC_A_PURE): Moved here from XXX (_assuan_error): New macro. (struct assuan_context_s): New members err_source, w32_strerror, malloc_hooks, log_cb, log_cb_data: New members. Move confidential into flags. New member engine. (_assuan_log_handler, _assuan_error_default, _assuan_disconnect): New prototypes. (_assuan_new_context): Remove prototype. (_assuan_malloc, _assuan_calloc, _assuan_realloc, _assuan_free): Add context argument to prototype. * assuan-util.c (alloc_func, realloc_func, free_func): Remove global variables. (assuan_set_malloc_hooks, _assuan_malloc, _assuan_realloc) (_assuan_calloc, _assuan_free, assuan_set_pointer) (assuan_get_pointer, assuan_begin_confidential) (assuan_end_confidential, assuan_set_io_monitor, assuan_set_flag) (assuan_get_flag): Move functions to ... * assuan-client.c: Add ctx argument to all invocations of _assuan_error. * assuan-socket-server.c, assuan-socket-connect.c, assuan-connect.c: Likewise. * assuan-buffer.c: Likewise. Also update access to confidential flag. * assuan-uds.c: Add ctx argument to all invocations of _assuan_malloc, _assuan_realloc, _assuan_calloc, _assuan_free and _assuan_error. * assuan_listen.c, assuan-inquire.c, assuan-handler.c: Likewise. * assuan-error.c (err_source): Remove global variable. (assuan_set_assuan_err_source): Removed function. (_assuan_w32_strerror): Moved here from assuan-logging.c and made thread-safe. (_assuan_error): Removed function (is now macro). * assuan-handler.c: Update access to confidential flag. * assuan-socket-server.c (accept_connection_bottom): Update access to confidential flag in context. (assuan_init_socket_server, assuan_init_socket_server_ext): Take ctx argument instead of pointer to ctx. * assuan-inquire.c (init_membuf, put_membuf, get_membuf) (free_membuf): Take context argument and change all callers. * assuan-socket-server.c (assuan_socket_connect) (assuan_socket_connect_ext): Take ctx argument instead of pointer to ctx. * assuan-pipe-connect.c (initial_handshake, pipe_connect_unix) (socketpair_connect, assuan_pipe_connect) (assuan_pipe_connect_ext): Likewise. (socketpair_connect): Now that ctx is not a pointer argument anymore, return if we are server or client in the argv argument. * assuan-logging.c (_assuan_log_handler): New function. (_assuan_w32_strerror): Move to assuan-error.c * assuan-connect.c (assuan_disconnect): Renamed to ... (_assuan_disconnect): ... this. * assuan-pipe-server.c (_assuan_new_context): Removed function. (assuan_init_pipe_server): Take ctx argument instead of pointer to ctx. (_assuan_release_context): Removed function. (_assuan_deinit_server): Reimplement.
* doc/Marcus Brinkmann2009-09-011-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-09-01 Marcus Brinkmann <[email protected]> * assuan.texi: (External I/O Loop Server): Document assuan_process_done. (assuan_register_post_cmd_notify): Change type of ERR from int to gpg_error_t. (assuan_set_error): Likewise. (assuan_register_option_handler): Change types in callback handler from int to gpg_error_t. (assuan_inquire_ext): Likewise. src/ 2009-09-01 Marcus Brinkmann <[email protected]> * assuan.h: Change types in all functions from int to gpg_error_t where relevant. * assuan-listen.c (assuan_accept): Change type of RC from int to gpg_error_t. * assuan-pipe-server.c (accept_connection, finish_connection): Change return type to gpg_error_t. * assuan-socket-server.c (accept_connection_bottom) (accept_connection, finish_connection): Likewise. (assuan_init_connected_socket_server): Remove. * assuan-defs.h (struct assuan_context_s): Change return type of accept_handler and finish_handler to gpg_error_t. * assuan-pipe-connect.c (do_finish): Change to void. * assuan-inquire.c (_assuan_inquire_ext_cb): Change type of RC from int to gpg_error_t. * assuan-handler.c: Change return codes and RC variables from int to gpg_error_t where appropriate. * assuan-buffer.c (_assuan_read_line): Fix error code on EOF.
* 2009-09-01 Marcus Brinkmann <[email protected]>Marcus Brinkmann2009-09-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | * configure.ac: Set BUILD_REVISION and update calculation of data for build info. Update libtool macros. Set NETLIBS for W32 targets. src/ 2009-09-01 Marcus Brinkmann <[email protected]> * setenv.c: Do not include "assuan-defs.h", instead redefine setenv, unsetenv, clearenv in place. * assuan-socket-server.c: Use _assuan_free instead of xfree. * assuan-pipe-connect.c: Fix syntax error. * assuan-defs.h: Remove some duplicated W32 stuff. * Makefile.am (libassuan_la_LIBADD, libassuan_pth_la_LIBADD): Add @NETLIBS@. * versioninfo.rc.in (FILEVERSION): Set to @BUILD_FILEVERSION@. ("FileDescription", "FileVersion", "InternalName") ("LegalCopyright", "OriginalFilename", "ProductName"): Replace c&p garbage. * libassuan.def: Remove assuan_get_peercred.
* 2009-08-26 Marcus Brinkmann <[email protected]>Marcus Brinkmann2009-08-261-64/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac: Test for versioned symbols support. (LIBASSUAN_LT_CURRENT, LIBASSUAN_LT_AGE) (LIBASSUAN_LT_REVISION): New, set to 0. (LIBASSUAN_CONFIG_API_VERSION): Bump to 2. (AC_CONFIG_MACRO_DIR, AC_DISABLE_STATIC, AC_LIBTOOL_WIN32_DLL) (AC_LIBTOOL_RC, AC_PROG_LIBTOOL, AM_PATH_GPG_ERROR): Invoke. (AC_PROG_RANLIB): Don't invoke. (HAVE_W32_SYSTEM): New AM conditional. (AC_CONFIG_FILES): Add src/versioninfo.rc. * ltmain.sh, m4/libtool.m4, m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.m4, m4/lt~obsolete.m4: New files from libtool 2.2.6. * tests/Makefile.am (AM_CFLAGS, LDADD): Add gpg-error. * tests/fdpassing.c: Change error values to gpg-error ones. src/ 2009-08-26 Marcus Brinkmann <[email protected]> * libassuan-config.in: Add gpg-error. * assuan-buffer.c, assuan-inquire.c, assuan-handler.c, assuan-util.c, assuan-client.c, assuan-socket-connect.c, assuan-pipe-connect.c, assuan-defs.h, assuan-socket.c, assuan-connect.c, assuan-uds.c, assuan-socket-server.c, assuan-listen.c, assuan-pipe-server.c: Return gpg_error_t instead assuan_error_t everywhere. Return gpg error codes everywhere. Replace xtrymalloc, xfree, etc with _assuan_malloc, _assuan_free etc. Protect include <config.h> by HAVE_CONFIG_H where not done so already. * versioninfo.rc.in, libassuan.vers, libassuan.def, assuan-error.c: New files. * Makefile.am: Add libtool handling and gpg-error (also for W32). (EXTRA_DIST): Remove mkerrors, add libassuan.vers, versioninfo.rc.in and libassuan.def. (BUILT_SOURCES, MOSTLYCLEANFILES): Removed. (common_sources): Remove assuan-errors.c, add assuan-error.c. * assuan.h: Include <gpg-error.h>. [_ASSUAN_ONLY_GPG_ERRORS]: Feature removed. (assuan_init_connected_socket_server, assuan_strerror) (assuan_pipe_connect2): Removed obsolete interfaces. (assuan_error_t): Removed type. (assuan_flag_t): Changed from enum to unsigned int. (ASSUAN_NO_WAITPID, ASSUAN_CONFIDENTIAL): Changed from enum to macro. (assuan_process): Return gpg_error_t instead of int. (assuan_set_assuan_err_source): Change argument type from int to gpg_err_source_t. * assuan-defs.h (_assuan_error): Change types to gpg_error_t. (err_code, err_is_eof, xtrymalloc, xtrycalloc, xtryrealloc) (xfree): Removed. (set_error): Adjust for gpg-error codes. (_assuan_gpg_strerror_r, _assuan_gpg_strsource): Removed. (struct assuan_context_s): Remove member os_errno. * assuan-socket-server.c (accept_connection): Don't set CTX->os_errno. * mkerrors: Removed file. * assuan-io-pth.c (_assuan_simple_sendmsg) (_assuan_simple_recvmsg), assuan-io.c (_assuan_simple_sendmsg, _assuan_simple_recvmsg): Set errno instead returning error directly (and return -1). * assuan-handler.c (assuan_process_done): Remove handling for old style error values. (process_request, assuan_process): Change return type from int to gpg_error_t. * assuan-client.c (assuan_transact): Remove support for old style error values. * assuan-pipe-connect.c (assuan_pipe_connect2): Removed. * assuan-logging.c (my_strerror_r, my_strsource) (load_libgpg_error, _assuan_gpg_strerror_r) (_assuan_gpg_strsource): Removed.
* Documentaion updates.libassuan-1.0.4Werner Koch2007-12-121-9/+24
| | | | | Preparing a release.
* 2007-09-14 Marcus Brinkmann <[email protected]>Marcus Brinkmann2007-09-141-3/+6
| | | | | | | * assuan-pipe-connect.c (do_finish) [HAVE_W32_SYSTEM]: Close ctx->pid as handle. (pipe_connect_w32): Save the spawned processes handle.
* Preparing 1.0.3Werner Koch2007-08-241-1/+1
|
* Introduced new type for better support of W32 HADNLES vs. file descriptors.Werner Koch2007-07-121-42/+31
|
* Switched to LGPLv3.libassuan-1.0.2Werner Koch2007-07-051-4/+2
|
* Various minor changes for W32Werner Koch2007-06-121-1/+1
|
* Fixed problems Nelson H. F. Beebe reported when doing build tests on severalWerner Koch2006-09-191-1/+2
| | | | | platforms.
* 2006-09-19 Marcus Brinkmann <[email protected]>Marcus Brinkmann2006-09-191-0/+12
| | | | | | * assuan-pipe-connect.c: Add hacks for Slowaris. * assuan-socket.c: Likewise here.
* Preparing a new releaselibassuan-0.9.0Werner Koch2006-09-141-10/+4
|
* More tweaks for descriptor passing.Werner Koch2006-09-131-14/+24
| | | | | gpg-connect-agent may now be used as a test program.
* Integrated descriptor passing.Werner Koch2006-09-121-209/+460
|
* Changes to support gpg-error style error codes.Werner Koch2006-09-061-12/+13
|
* Fixed and clarified copyright noticesWerner Koch2005-10-241-1/+2
|
* 2005-10-01 Marcus Brinkmann <[email protected]>Marcus Brinkmann2005-10-011-5/+5
| | | | | | | | | * assuan.h (assuan_pipe_connect, assuan_pipe_connect2): Make type of ARGV parameter const in prototype. * assuan-pipe-connect.c (assuan_pipe_connect, assuan_pipe_connect2): Likewise in declaration. (assuan_pipe_connect2): Add braindead cast to make execv happy.
* 2005-09-08 Marcus Brinkmann <[email protected]>Marcus Brinkmann2005-09-081-0/+2
| | | | | | * assuan-pipe-connect.c (assuan_pipe_connect2): Add missing declaration of PID.
* * mkerrors: Include config.h into assuan-errors.c. This isWerner Koch2005-08-091-93/+117
| | | | | | | | | | | required so that assuan.h knows about the W32 macro. * assuan.h [_ASSUAN_EXT_SYM_PREFIX]: New. * assuan-io.c [_ASSUAN_NO_PTH]: New. * assuan-pipe-connect.c (fix_signals) [_ASSUAN_NO_FIXED_SIGNALS]: New. (assuan_pipe_connect2) [_ASSUAN_USE_DOUBLE_FORK]: Use double fork. (fix_signals) [_ASSUAN_USE_DOUBLE_FORK]: Do not wait..
* * assuan-util.c (assuan_set_flag, assuan_get_flag): New.Werner Koch2005-05-221-3/+2
| | | | | | | | | * assuan-defs.h (struct assuan_context_s): New field flags. * assuan.h (assuan_flag_t): New with one flag value ASSUAN_NO_WAITPID for now. * assuan-pipe-connect.c (do_finish): Take care of the no_waitpid flag.
* Switched to automake 1.9.libassuan-0-6-9Werner Koch2004-12-221-8/+7
|
* 2004-12-19 Moritz Schulte <[email protected]>Moritz Schulte2004-12-191-1/+1
| | | | | | * assuan-pipe-connect.c (assuan_pipe_connect2): Removed "`" character at beginning of line 532.