| Commit message (Collapse) | Author | Files | Lines |
|
|
|
Signed-off-by: NIIBE Yutaka <[email protected]>
|
|
* src/assuan.h.in (ASSUAN_SYSTEM_NPTH_IMPL): A void fucntion can't
assign.
--
Fixes-commit: a627350eed5dc32bac41195462f27dee1987b0f5
Signed-off-by: Werner Koch <[email protected]>
|
|
Signed-off-by: Werner Koch <[email protected]>
|
|
* src/assuan-socket.c (assuan_sock_set_system_hooks): New.
* src/assuan.h.in (assuan_sock_set_system_hooks): New prototype.
* src/libassuan.def: Add new function.
* src/libassuan.vers: Add new function.
--
Co-authored-by: [email protected]
Signed-off-by: Werner Koch <[email protected]>
|
|
* src/assuan.h.in (_assuan_npth_usleep): Wrap __assuan_usleep.
--
Assuan should support system hooks for nPth before npth_init.
Before the call of npth_init, npth_unprotect and npth_protect do
nothing, whiile npth_usleep may crash.
No use of npth_usleep is better.
Signed-off-by: NIIBE Yutaka <[email protected]>
|
|
* src/assuan.h.in (_assuan_npth_close): New.
(_assuan_system_npth): Use _assuan_npth_close.
--
In some situation, closesocket on Windows may block.
Signed-off-by: NIIBE Yutaka <[email protected]>
|
|
--
|
|
* src/assuan.h.in (ASSUAN_SYSTEM_NPTH_IMPL): Add wrapper for connect.
Signed-off-by: Werner Koch <[email protected]>
|
|
* src/assuan.h.in (ASSUAN_SOCK_SOCKS): New.
(ASSUAN_SOCK_TOR): New.
(assuan_sock_connect_byname): New.
* src/libassuan.def, src/libassuan.vers: Add that function.
* src/assuan-socket.c (socks5_connect): Add args socksport,
credentials, hostname, and hostport. Implement user/password
authentication and domainname address type. Change callers
accordingly.
(_assuan_sock_connect_byname): New.
(assuan_sock_connect_byname): New.
* tests/socks5.c (main): Add options --byname, --user, and --pass.
--
The assuan_sock_connect_byname may eventually be extended to work
without Tor or SOCKS by using getaddrinfo. Or we move that all to
libgpgrt (aka libgpg-error).
Signed-off-by: Werner Koch <[email protected]>
|
|
* configure.ac: Set LT version to C6/A6/R0.
Signed-off-by: Werner Koch <[email protected]>
|
|
* src/assuan-socket.c (_assuan_sock_set_flag): New.
(assuan_sock_set_flag): New.
(_assuan_sock_get_flag, assuan_sock_get_flag): New.
* src/assuan.h.in (assuan_sock_set_flag): New.
(assuan_sock_get_flag): New.
* src/libassuan.def: Add them.
* src/libassuan.vers: Add them.
--
These new functions are intended for a Cygwin socket emulation. This
commit merely introduces a generic framework.
Signed-off-by: Werner Koch <[email protected]>
|
|
* configure.ac (AC_CHECK_FUNC): Check for stat.
* src/assuan-socket.c (SUN_LEN): Add.
(eval_redirection): New.
(_assuan_sock_connect) [!W32]: Implement socket file redirection.
(_assuan_sock_set_sockaddr_un): New.
(assuan_sock_set_sockaddr_un): New.
--
This feature is useful to allow sockets with standard names even on
file system which do not supports socket and to help with shared home
directories. For example to use GnuPG 2.1 with shared home
directories one will be abale to do:
rm ~/.gnupg/S.gpg-agent || true
printf "%%Assuan%%\nsocket=${HOME}/.gnupg/S.gpg-agent_${HOSTNAME}\n" \
> ~/.gnupg/S.gpg-agent
Signed-off-by: Werner Koch <[email protected]>
|
|
--
|
|
* src/assuan.c (assuan_check_version): New.
(digitp, parse_version_number, parse_version_string)
(compare_versions): New. Taken from libksba.
* configure.ac (VERSION_NUMBER): New ac_subst.
* src/Makefile.am (assuan.h): Pass VERSION and VERSION_NUMBER to
mkheader.
* src/assuan.h.in (ASSUAN_VERSION, ASSUAN_VERSION_NUMBER): New macros.
(assuan_check_version): New prototype.
* src/libassuan.def, src/libassuan.vers: Add assuan_check_version.
* src/mkheader.c (write_special, main): Support version and
version_number.
* tests/version.c: New.
* tests/Makefile.am (TESTS): Add version.
--
All our other libs have a version number check, thus we should have
one in Libassuan as well.
|
|
* assuan.h.in (ASSUAN_SYSTEM_NPTH_IMPL): Use npth_unprotect and
npth_protect with actual assuan functions instead of npth wrappers.
* libassuan.def: Add __assuan_read, __assuan_write, __assuan_sendmsg,
__assuan_recvmsg, __assuan_waitpid exports.
* system-w32.c (__assuan_read, __assuan_write, __assuan_sendmsg,
__assuan_recvmsg, __assuan_waitpid): Make non-static.
|
|
|
|
* configure.ac: Bump LT version to C3/A3/R0.
|
|
|
|
descriptor to a context.
|
|
compatibility.
|
|
|
|
2011-02-02 Marcus Brinkmann <[email protected]>
* assuan.h.in: Replace namespace by _namespace.
|
|
2011-02-02 Marcus Brinkmann <[email protected]>
* assuan.h.in: Replace namespace by _namespace.
|
|
2011-02-02 Marcus Brinkmann <[email protected]>
* assuan-defs.h (_assuan_socket, _assuan_connect): New prototypes.
* assuan.h.in (ASSUAN_SYSTEM_HOOKS_VERSION): Bumped to 2.
(struct assuan_system_hooks): Add socket and connect members.
(__assuan_socket, __assuan_connect): New prototypes.
(_ASSUAN_SYSTEM_PTH_IMPL): Add socket and connect members. *
assuan-socket-connect.c (assuan_socket_connect): Call
_assuan_socket and _assuan_connect instead _assuan_sock_new and
_assuan_sock_connect.
(libassuan.def, libassuan.vers): Add __assuan_socket and
__assuan_connect.
* system.c (_assuan_system_hooks_copy): Initialize destination
from system hooks, so we don't get any NULL pointers if there is a
version mismatch. Support version 2 of the system hook structure.
(_assuan_socket, _assuan_connect): New functions.
* system-posix.c (__assuan_socket, __assuan_connect): New functions.
(_assuan_system_hooks): Add __assuan_socketm, __assuan_connect.
* system-w32.c (__assuan_socket, __assuan_connect): New functions.
(_assuan_system_hooks): Add __assuan_socketm, __assuan_connect.
* system-w32ce.c (__assuan_socket, __assuan_connect): New functions.
(_assuan_system_hooks): Add __assuan_socketm, __assuan_connect.
|
|
|
|
|
|
|
|
|
|
fixed a problem for W32CE and Pth.
|
|
Reorganized the source.
|
|
|
|
|
|
Implement getenv replacement for W32CE.
|
|
|
|
|
|
* assuan.h (struct assuan_system_hooks): Don't use "namespace" as
argument name in declaration (C++ keyword).
|
|
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.
|
|
* assuan_fd_from_posix_fd (assuan_fd_from_posix_fd): Handle invalid fd early.
|
|
* 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.
|
|
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.
|
|
* 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-25 Marcus Brinkmann <[email protected]>
* assuan.texi (Data Types): Document assuan_fdopen.
src/
2009-11-25 Marcus Brinkmann <[email protected]>
* assuan.h (assuan_init_pipe_server): Change type of filedes to
assuan_fd_t.
(assuan_fdopen): New prototype.
* libassuan.vers, libassuan.def: Add assuan_fdopen.
* system.c (assuan_fdopen): New function.
* assuan-pipe-server.c (assuan_init_pipe_server): Change type of
filedes to assuan_fd_t. No longer translate fd to handle. Don't
set to binary either (that doesn't do anything for handles, it
only affects the libc fd).
|
|
2009-11-24 Marcus Brinkmann <[email protected]>
* assuan.texi: Remove assuan_disconnect, assuan_deinit_server.
Many smaller API fixes.
src/
2009-11-24 Marcus Brinkmann <[email protected]>
* assuan.h (struct _assuan_peercred) [_WIN32]: Define dummy member
so struct is not empty.
* assuan-socket.c (assuan_sock_deinit): Set sock_ctx to NULL.
|
|
* 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-11-05 Marcus Brinkmann <[email protected]>
* assuan.texi (External I/O Loop Server): Document change to
assuan_process_next.
src/
2009-11-05 Marcus Brinkmann <[email protected]>
* assuan-defs.h (assuan_context_t): Add member PROCESS_DONE.
* assuan.h (assuan_process_next): Add argument DONE to prototype.
* assuan-handler.c (assuan_process_next): Likewise, handle it.
(std_handler_bye): Set PROCESS_DONE.
(assuan_process_done): Handle PROCESS_DONE in the no error case.
(assuan_process): Use PROCESS_DONE.
|
|
|
|
* assuan.h (assuan_handler_t): New type.
(assuan_register_bye_notify, assuan_register_reset_notify)
(assuan_register_cancel_notify, assuan_register_input_notify)
(assuan_register_output_notify, assuan_register_command): Use it.
* assuan-handler.c (std_handler_cancel, std_handler_bye): Pass
LINE argument to user handler.
(std_handler_reset): Likewise, and also abort RESET if error is
returned from user handler.
(std_handler_input, std_handler_output): Check return value from
user handler before assigning FD.
* assuan-defs.h (struct cmdtbl_s): Change type of member HANDLER
to assuan_handler_t.
(struct assuan_context_s): Change type of members
RESET_NOTIFY_FNC, CANCEL_NOTIFY_FNC, BYE_NOTIFY_FNC,
INPUT_NOTIFY_FNC and OUTPUT_NOTIFY_FNC to assuan_handler_t.
|
|
* assuan.h (__assuan_usleep): Add declaration.
* system.c (__assuan_usleep): Make non-static.
* libassuan.vers, libassuan.defs: Sort lexicographically.
|
|
* 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.
|