aboutsummaryrefslogtreecommitdiffstats
path: root/src/server.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2018-11-14server: Don't call _assuan_waitpid on server side.NIIBE Yutaka1-1/+0
* src/server.c (_assuan_server_finish): Never call waitpid here. * src/assuan-socket-server.c (accept_connection_bottom): Indentation. -- The waitpid/wait only makes sense by parent catching its child process. Since the commit 93595de1ede96dedfcaa93c7442536a2cde0b6ef (for version 0.6.5, in 2004-04-21), CTX->PID on server side has client PID. In the commit cb53f862ff2a864da822d1c16d3df6a02157608b (2009-11-19), call of _assuan_waitpid was introduced in assuan_server_finish, but this call always fails because the process is not a child process of server. (If we could catch exit of non-child process, it might cause a dead lock, since client does call waitpid too.) The indentation fix is to show the place where PID is assigned. Signed-off-by: NIIBE Yutaka <[email protected]>
2017-11-15Add an SPDX tag to all core files.Werner Koch1-16/+17
--
2009-11-192009-11-19 Marcus Brinkmann <[email protected]>Marcus Brinkmann1-29/+35
* 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-052009-11-05 Marcus Brinkmann <[email protected]>Marcus Brinkmann1-26/+0
* 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-09-212009-09-19 Marcus Brinkmann <[email protected]>Marcus Brinkmann1-11/+17
* 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.
2009-08-262009-08-26 Marcus Brinkmann <[email protected]>Marcus Brinkmann1-20/+20
* 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.
2009-01-22Tweak test for nanosleep.Werner Koch1-2/+2
2007-08-24Preparing 1.0.3Werner Koch1-1/+1
2007-07-082007-07-08 Marcus Brinkmann <[email protected]>Marcus Brinkmann1-1/+5
* assuan-defs.h (struct assuan_context_s): Have full peercred structure for HAVE_SO_PEERCRED. * assuan-connect.c (assuan_get_peercred) [!HAVE_SO_PEERCRED]: Do not try to set PID, UID and GID.
2007-07-05Switched to LGPLv3.libassuan-1.0.2Werner Koch1-4/+2
2007-07-042007-07-04 Marcus Brinkmann <[email protected]>Marcus Brinkmann1-2/+2
Change _WIN32 to HAVE_W32_SYSTEM for consistency. * assuan-defs.h (struct assuan_context_s): Have full peercred structure even if not HAVE_SO_PEERCRED, but not if HAVE_W32_SYSTEM.
2007-06-12Various minor changes for W32Werner Koch1-0/+2
2006-09-14Preparing a new releaselibassuan-0.9.0Werner Koch1-1/+21
2005-10-24Fixed and clarified copyright noticesWerner Koch1-1/+2
2004-12-18More W32 fixesWerner Koch1-1/+1
2004-12-07* configure.ac: Define HAVE_W32_SYSTEM and HAVE_DOSISH_SYSTEM.Werner Koch1-1/+1
Add -lwsock2 to the config lib flags for W32. * assuan-logging.c, assuan-io.c: Include config.h * assuan-pipe-connect.c (assuan_pipe_connect2) [_WIN32]: Return error Not Imlemented.
2004-11-242004-11-23 Timo Schulz <[email protected]>Timo Schulz1-2/+5
* assuan-socket.c (_assuan_sock_connect): Get local port from the sun_path[] file. (_assuan_sock_bind): Write local port to the sun_path[] file. * assuan-socket-connect.c (assuan_socket_connect): Use DIRSEP_C for a better portability. (assuan-defs.h): Define DIRSEP_C. 2004-11-22 Timo Schulz <[email protected]> * assuan-io.c (_assuan_simple_read, _assuan_simple_write): W32 support. * assuan-socket.c (_assuan_close): New. (_assuan_sock_new): New. (_assuan_sock_bind): New.
2004-04-21* assuan-socket-server.c (accept_connection_bottom): Save the pidWerner Koch1-1/+2
of the peer if it is available. * assuan-socket-connect.c (assuan_socket_connect): Do not save the dummy SERVED_PID arg. * assuan-pipe-connect.c (do_finish): Don't wait if the pid is 0. (assuan_pipe_connect2): Store the parents pid in the environment of the child. * assuan-pipe-server.c (assuan_init_pipe_server): Initialize the peer's pid from the environment. * assuan-connect.c (assuan_get_pid): Do not return 0 as a PID.
2002-07-30Changed the lincese for Assuan to LGPL.V0-3-10NEWPG-0-3-10Werner Koch1-13/+13
2002-01-21* assuan-connect.c: Move all except assuan_get_pid to...Werner Koch1-201/+9
* assuan-pipe-connect.c: this. (assuan_pipe_disconnect): Removed. (do_finish, do_deinit): New (assuan_pipe_connect): and set them into the context. * assuan-socket-connect.c: New. * assuan-util.c (_assuan_log_sanitized_string): New. * assuan-pipe-server.c (assuan_init_pipe_server): Factored most code out to ... (_assuan_new_context): new func. (_assuan_release_context): New * assuan-connect.c (assuan_pipe_connect): Use the new functions.
2002-01-19* assuan-buffer.c (_assuan_read_line): Add output logging.Werner Koch1-3/+3
(assuan_write_line): Ditto. (_assuan_cookie_write_data): Ditto. (_assuan_cookie_write_flush): Ditto. * assuan-util.c (_assuan_log_print_buffer): New. (assuan_set_log_stream): New. (assuan_begin_confidential): New. (assuan_end_confidential): New. * assuan-defs.h: Add a few handler variables. * assuan-pipe-server.c (assuan_deinit_pipe_server): Removed. (deinit_pipe_server): New. (assuan_deinit_server): New. Changed all callers to use this. * assuan-listen.c (assuan_accept): Use the accept handler. * assuan-handler.c (process_request): Use the close Handler. * assuan-socket-server.c: New.
2001-12-19assuan/Marcus Brinkmann1-3/+14
2001-12-14 Marcus Brinkmann <[email protected]> * assuan-buffer.c (_assuan_read_line): New variable ATTICLEN, use it to save the length of the attic line. Rediddle the code a bit to make it more clear what happens. agent/ 2001-12-19 Marcus Brinkmann <[email protected]> * query.c (start_pinentry): Add new argument to assuan_pipe_connect. sm/ 2001-12-19 Marcus Brinkmann <[email protected]> * call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
2001-12-12* assuan-connect.c (assuan_pipe_connect): Implemented the initalWerner Koch1-19/+22
handshake. * assuan-client.c (read_from_server): Renamed to (_assuan_read_from_server): this and made external. * assuan-listen.c (assuan_set_hello_line): New. (assuan_accept): Use a custom hello line is available. * assuan-buffer.c (assuan_read_line): New. (assuan_pending_line): New. (_assuan_write_line): Renamed to .. (assuan_write_line): this, made public and changed all callers.
2001-12-05assuan-connect.c (assuan_pipe_connect): Add more error reporting.Werner Koch1-15/+112
assuan-client.c: New. assuan-inquire.c: New. assuan-handler.c (process_request): Check for nested invocations.
2001-11-24* assuan-connect.c (assuan_get_pid): New - actually done by Marcus in gpgme.Werner Koch1-0/+6
Set the line length back to the old value.
2001-11-19 * assuan-connect.c (assuan_pipe_connect): Require NAME to be set.Marcus Brinkmann1-6/+2
Using ARGV[0] automatically is bad mojo.
2001-11-19 * assuan-connect.c (assuan_pipe_connect): New function.Marcus Brinkmann1-0/+106
(assuan_pipe_disconnect): Likewise. * assuan-defs.h (struct assuan_context_s): New member PID.
2001-11-07Assuan server mode is now basically usableWerner Koch1-19/+2
2001-11-06First chunk of code for the Assuan libraryWerner Koch1-0/+44