Noteworthy changes in version 3.0.0 (2024-06-18) [C9/A0/R0]
------------------------------------------------

 * API change: For new code, which uses libassuan with nPTH, please
   use gpgrt_get_syscall_clamp and assuan_control, instead of the
   system_hooks API.  Use of ASSUAN_SYSTEM_NPTH is deprecated with new
   API version 3.  If it's really needed to keep using old
   implementation of ASSUAN_SYSTEM_NPTH, you need to change your your
   application code, to define
   ASSUAN_REALLY_REQUIRE_V2_NPTH_SYSTEM_HOOKS before including
   <assuan.h>.  For an application which uses version 2 API
   (NEED_LIBASSUAN_API=2 in its configure.ac), use of
   ASSUAN_SYSTEM_NPTH is still supported.  [T5914]

 * New function assuan_control.  [T6625]

 * New function assuan_sock_accept.  [T5925]

 * New functions assuan_pipe_wait_server_termination and
   assuan_pipe_kill_server to support abstraction of process.  [T6487]

 * Windows support for sendfd/recvfd.  [T6236]

 * Implement timeout in assuan_sock_connect_byname.  [T3302]

 * No support for WindowsCE, any more.  [T6170]

 * New socket flags "linger" and "reuseaddr".  [rA87f92fe962]

 * Interface changes relative to the 2.5.0 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 assuan_sock_accept                  NEW.
 assuan_pipe_wait_server_termination NEW.
 assuan_pipe_kill_server             NEW.
 assuan_sock_set_flag                EXTENDED.
 assuan_sock_get_flag                EXTENDED.

 Release-info: https://dev.gnupg.org/T7163


Release dates of 2.5 versions
------------------------------

 Version 2.5.7 (2024-03-06) [C8/A8/R7] https://dev.gnupg.org/T7028


Noteworthy changes in version 2.5.6 (2023-06-19) [C8/A8/R6]
------------------------------------------------

 * Fix logging of confidential data.  [rA0fc31770fa]

 * Fix memory wiping.  [T5977]

 * Fix macOS build problem.  [T5440,T5610]

 * Upgrade autoconf stuff.

 Release-info: https://dev.gnupg.org/T6542


Noteworthy changes in version 2.5.5 (2021-03-22) [C8/A8/R5]
------------------------------------------------

 * Allows starting servers with Unicode names on Windows.  [#4398]

 * Fix a crash in the logging code.  [0dd8ffbd32]

 * Upgrade autoconf stuff.

 Release-info: https://dev.gnupg.org/T5354


Noteworthy changes in version 2.5.4 (2020-10-23) [C8/A8/R4]
------------------------------------------------

 * Support Unicode socket names on Windows.

 * Fix some minor build annoyances.

 Release-info: https://dev.gnupg.org/T5112


Noteworthy changes in version 2.5.3 (2019-02-11) [C8/A8/R3]
------------------------------------------------

 * Add a timeout for writing to a SOCKS5 proxy.  This helps if another
   service is running on the standard tor socket (e.g. Windows 10).
   [#3381]

 * Add workaround for a problem with LD_LIBRARY_PATH on newer systems.
   [#4298]

 Release-info: https://dev.gnupg.org/T4361


Noteworthy changes in version 2.5.2 (2018-12-13) [C8/A8/R2]
------------------------------------------------

 * Better credential support for BSDs.

 * Fix some compiler warnings.

 * Update the build system.


Noteworthy changes in version 2.5.1 (2017-12-07) [C8/A8/R1]
------------------------------------------------

 * Fix c+p error in the previous usleep fix.


Noteworthy changes in version 2.5.0 (2017-12-07) [C8/A8/R0]
------------------------------------------------

 * New function to change the system hooks for the socket
   interface. [#3378]

 * Fix the use of the internal usleep in the nPth implementation.

 * Interface changes relative to the 2.4.0 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 assuan_sock_set_system_hooks   NEW.


Noteworthy changes in version 2.4.5 (2017-12-01) [C7/A7/R5]
------------------------------------------------

 * Avoid a blocking close on Windows with nPth. [#3378]


Noteworthy changes in version 2.4.4 (2017-11-16) [C7/A7/R4]
------------------------------------------------

 * New configure option --disable-doc.

 * Fix the use of nanosleep.

 * Portability fixes for OpenBSD and macOS. [#2910]

 * Portability fix for systems not defining INADDR_LOOPBACK. [#2447]

 * Improve descriptor passing test to fix a Cygwin build
   problem. [#3384]


Noteworthy changes in version 2.4.3 (2016-07-14) [C7/A7/R3]
------------------------------------------------

 * Allow socket redirection with assuan_socket_connect.

 * Speedup spawning programs on Linux

 * Fix minor memory leaks

 * Portability fixes for Solaris and AIX.


Noteworthy changes in version 2.4.2 (2015-12-02) [C7/A7/R2]
------------------------------------------------

 * The nPth version of the connect system hook does now wrap the call
   with npth_unprotec/npth_protect to avoid blocking during a connect.

 * Add feature to assuan_sock_connect_byname to test for SOCKS5
   availability.


Noteworthy changes in version 2.4.1 (2015-11-23) [C7/A7/R1]
------------------------------------------------

 * In Tor mode fallback to port 9150 if 9050 is not listening.

 * Allow building with older mingw-w64 versions.


Noteworthy changes in version 2.4.0 (2015-11-03) [C7/A7/R0]
------------------------------------------------

 * New flags "socks" and "tor-mode" for assuan_sock_{set,get}_flag.

 * New function assuan_sock_connect_byname.

 * Require at least libgpg-error 1.17.

 * Interface changes relative to the 2.3.0 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 assuan_sock_connect_byname    NEW.
 ASSUAN_SOCK_TOR               NEW.
 ASSUAN_SOCK_SOCKS             NEW.
 assuan_sock_set_flag          EXTENDED.
 assuan_sock_get_flag          EXTENDED.


Noteworthy changes in version 2.3.0 (2015-08-28) [C6/A6/R0]
------------------------------------------------

 * Now wipes out the memory of the context structure before freeing.
   The context may have stored sensitive data in its line buffers.

 * Fixed a problem with the data length limit in assuan_inquire.

 * Returns GPG_ERR_SOURCE_ASSUAN with errors from functions w/o a
   context.

 * Two new functions to tweak the behaviour of the socket wrappers.

 * Experimental code to support Cygwin's local sockets.

 * By default build without a build timestamp.

 * Interface changes relative to the 2.2.1 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 assuan_sock_set_flag     NEW.
 assuan_sock_get_flag     NEW.


Noteworthy changes in version 2.2.1 (2015-05-12) [C5/A5/R1]
------------------------------------------------

 * Documentation updates.

 * Fixed building for Windows with newer versions of Mingw.


Noteworthy changes in version 2.2.0 (2014-12-11) [C5/A5/R0]
------------------------------------------------

 * Added support for socket redirection.

 * Interface changes relative to the 2.1.3 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 assuan_sock_set_sockaddr_un  NEW.


Noteworthy changes in version 2.1.3 (2014-11-07) [C4/A4/R3]
------------------------------------------------

 * Performance fix for Windows.


Noteworthy changes in version 2.1.2 (2014-08-17) [C4/A4/R2]
------------------------------------------------

 * Fixed portability bugs for Solaris and AIX.

 * Added support for ppc64le.


Noteworthy changes in version 2.1.1 (2013-06-24) [C4/A4/R1]
------------------------------------------------

 * Limited support for 64 bit Windows.  This is sufficient for use by
   GpgEX.


Noteworthy changes in version 2.1.0 (2013-02-22)
------------------------------------------------

 * Support for the nPth library.

 * Add assuan_check_version and two version macros.

 * Interface changes relative to the 2.0.3 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ASSUAN_SYSTEM_NPTH_IMPL  NEW macro.
 ASSUAN_SYSTEM_NPTH       NEW macro.
 __assuan_read            NEW (private).
 __assuan_write           NEW (private).
 __assuan_recvmsg         NEW (private).
 __assuan_sendmsg         NEW (private).
 __assuan_waitpid         NEW (private).
 ASSUAN_VERSION           NEW macro.
 ASSUAN_VERSION_NUMBER    NEW macro.
 assuan_check_version     NEW.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Noteworthy changes in version 2.0.3 (2011-12-20)
------------------------------------------------

 * Make assuan_get_pid work correctly for pipe server.

 * Interface changes relative to the 2.0.2 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ASSUAN_FORCE_CLOSE       NEW.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Noteworthy changes in version 2.0.2 (2011-06-16)
------------------------------------------------

 * A new flag may now be used to convey comments via assuan_transact.

 * A new flag value may now be used to disable logging.

 * The gpgcedev.c driver now provides a log device.

 * It is now possible to overwrite socket and connect functions in
   struct assuan_system_hooks.

 * Interface changes relative to the 2.0.1 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ASSUAN_CONVEY_COMMENTS   NEW.
 ASSUAN_NO_LOGGING        NEW.
 assuan_system_hooks_t	  CHANGED: Added socket and connect members.
 ASSUAN_SYSTEM_HOOKS_VERSION  CHANGED: Bumped to 2.
 assuan_register_pre_cmd_notify  NEW.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Noteworthy changes in version 2.0.1 (2010-08-09)
------------------------------------------------

 * Support for WindowsCE.

 * Input and output notification handler can now really access the
   parsed fd as stated in the manual.

 * Cleaned up the logging.

 * Interface changes relative to the 2.0.0 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 assuan_free               NEW.
 _assuan_w32ce_create_pipe NEW.
 ASSUAN_LOG_CONTROL        NEW.
 ASSUAN_NO_LOGGING         NEW.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Noteworthy changes in version 2.0.0 (2010-01-08)
------------------------------------------------

 * Now using libtool and builds a DSO.

 * Lots of interface cleanups.  See below for details of the most
   important changes.  Here is a quick note on how to upgrade:

   For each invocation of the connect or server functions, allocate a
   context with assuan_new and use that.  Instead of assuan_disconnect
   or assuan_deinit_server, call assuan_release.  Use
   assuan_set_gpg_err_source instead of assuan_set_assuan_err_source.
   If you use assuan_pipe_connect with NAME of NULL, you have to
   provide a non-NULL ARGV argument and check that against "server" or
   "client" to determine which end you got after fork().  If you use
   the assuan sock interface, you must call assuan_sock_init after
   setting global context defaults.  Add a NULL as the last arg to
   assuan_register_command.

 * Pth support has changed.  This now follows the same style as
   libgcrypt by setting system hook callbacks.

 * Interface changes relative to the 1.0.5 release:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_ASSUAN_ONLY_GPG_ERRORS        REMOVED
assuan_set_assuan_err_source   REMOVED: Use assuan_set_gpg_err_source.
assuan_set_gpg_err_source      NEW
assuan_get_gpg_err_source      NEW
assuan_strerror		       REMOVED
ASSUAN_*		       Error values removed.
assuan_error_t		       REMOVED
AssuanError		       REMOVED
assuan_init_connected_socket_server REMOVED
assuan_pipe_connect2           REMOVED
AssuanCommand		       REMOVED
assuan_flag_t		       CHANGED: From enum to unsigned int.
ASSUAN_CONTENT		       REMOVED
assuan_disconnect	       REMOVED: Use assuan_release.
assuan_deinit_server           REMOVED: Use assuan_release.
assuan_get_malloc_hooks        NEW
assuan_set_log_cb              NEW
assuan_get_log_cb              NEW
assuan_new_ext                 NEW
assuan_new                     NEW
assuan_release                 NEW
assuan_init_socket_server      CHANGED: Take ctx arg instead of pointer to ctx.
			       CHANGED: As assuan_init_socket_server_ext was.
assuan_init_socket_server_ext  REMOVED
assuan_socket_connect          CHANGED: Take ctx arg instead of pointer to ctx.
			       CHANGED: Is what assuan_socket_connect_ext was.
assuan_socket_connect_ext      REMOVED
assuan_pipe_connect            CHANGED: Take ctx arg instead of pointer to ctx.
			       If NAME is NULL, ARGV will contain fork result.
			       CHANGED: Is now what assuan_pipe_connect_ext was.
			       CHANGED: Child fds are now assuan_fd_t.
assuan_pipe_connect_ext	       REMOVED
assuan_init_pipe_server        CHANGED: Take ctx arg instead of pointer to ctx.
                               CHANGED: Swallows fds (are closed at end).
			       CHANGED: Take assuan_fd_t.
assuan_fdopen		       NEW
assuan_set_io_hooks	       REMOVED: Use assuan_system_hooks interface.
assuan_io_hooks_t  	       REMOVED: Use assuan_system_hooks interface.
assuan_io_monitor_t	       CHANGED: Add a hook data argument.
assuan_get_command_name        NEW
assuan_msghdr_t		       NEW
ASSUAN_INVALID_PID	       NEW
ASSUAN_NO_FIXSIGNALS           NEW
ASSUAN_SYSTEM_HOOKS_VERSION    NEW
assuan_system_hooks_t          NEW
assuan_set_system_hooks        NEW
assuan_ctx_set_system_hooks    NEW
ASSUAN_SYSTEM_PTH_IMPL         NEW
ASSUAN_SYSTEM_PTH_DECL         NEW
ASSUAN_SYSTEM_PTH              NEW
assuan_sock_init               NEW
assuan_sock_deinit             NEW
assuan_handler_t	       NEW
assuan_register_command        CHANGED: Add arg HELP_STRING.
assuan_register_bye_notify     CHANGED: Handler gets line and returns err now.
assuan_register_reset_notify   CHANGED: Handler gets line and returns err now.
assuan_register_cancel_notify  CHANGED: Handler gets line and returns err now.
assuan_register_input_notify   CHANGED: Handler returns error now.
assuan_register_output_notify  CHANGED: Handler returns error now.
assuan_process_next	       CHANGED: New DONE argument instead EOF return.
ASSUAN_PIPE_CONNECT_FDPASSING  NEW
ASSUAN_PIPE_CONNECT_DETACHED   NEW
ASSUAN_SOCKET_SERVER_FDPASSING NEW
ASSUAN_SOCKET_SERVER_ACCEPTED  NEW
ASSUAN_SOCKET_CONNECT_FDPASSING NEW
assuan_peercred_t	       NEW
assuan_get_peercred	       CHANGED: Return assuan_peercred_t.
assuan_client_read_response    NEW
assuan_client_parse_response   NEW
assuan_fd_from_posix_fd	       NEW
ASSUAN_SPAWN_DETACHED	       NEW
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Noteworthy changes in version 1.0.5 (2008-05-25)
------------------------------------------------

 * Minor fixes.

 * Build library for GNU/Linux as PIC.


Noteworthy changes in version 1.0.4 (2007-12-12)
------------------------------------------------

 * New socket wrapper functions to support Unix domain sockets under
   Windows.

 * New hook feature to enhance the internal I/O functions.


Noteworthy changes in version 1.0.3 (2007-08-24)
------------------------------------------------

 * New type assuan_fd_t and constant ASSUAN_INVALID_FD for better W32
   support.  It does not change the semantics under Unix.  Under W32
   all file descriptors are now guaranteed to be system handles.

 * New functions assuan_process_done and assuan_inquire_ext to support
   external event loops.

 * Changed the license of the library code back to LGPLv2.1 to support
   a bunch of GPLv2(only) software which does not allow the use of
   LGPLv3.  Note that this is only a temporary change and authors of
   GPLv2(only) software are asked to switch to GPLv3 or to add an
   exception which allow the use of LPGLv3 software.


Noteworthy changes in version 1.0.2 (2007-07-05)
------------------------------------------------

 * Changed license to LGPLv3.

 * New flag ASSUAN_CONFIDENTIAL to return the state of
   confidential logging.

 * Better support for W32.

 * Assorted bug fixed and code cleanups.


Noteworthy changes in version 1.0.1 (2006-11-22)
------------------------------------------------

 * New function: assuan_set_io_monitor.

 * New function: assuan_register_post_cmd_notify.

 * Fixed a memory leak.


Noteworthy changes in version 1.0.0 (2006-10-31)
------------------------------------------------

 * Finished the manual.


Noteworthy changes in version 0.9.3 (2006-10-10)
------------------------------------------------

 * Portability fixes.

 * Pth is not anymore linked by means of weak symbol tricks.  It is
   now required to link to the pth version of libassuan.  New autoconf
   macros are provided to to check for this.  The pth version is only
   build if Pth is available.

 * configure does now check that descripotor passing is available.  A
   way to check at runtime for this is also provided


Noteworthy changes in version 0.9.2 (2006-10-04)
------------------------------------------------

 * A fix to make CANCEL work again in Pinentries.


Noteworthy changes in version 0.9.1 (2006-10-04)
------------------------------------------------

 * Minor bug fixes

 * Portability fixes.


Noteworthy changes in version 0.9.0 (2006-09-14)
------------------------------------------------

 * Internal cleanups to make inclusion of the code into libraries
   easier.

 * Made clear that the software is under the LGPL.

 * New function assuan_set_assuan_err_source.  All gpg-error enabled
   software should call this right at startup to switch libassuan into
   the gpg-error style mode.  All error codes are then returned as
   gpg-error style codes (GPG_ERR_ASS_* as well as others).
   If the new macro _ASSUAN_ONLY_GPG_ERRORS is defned all old
   definitions are excluded from assuan.h.

 * Logging of hex strings is now limited to 16 bytes.  To enable
   printing of the full data, a new environment variable
   ASSUAN_FULL_LOGGING may be set to any value.

 * Removed the assuan_domain_* functions.

 * New functions assuan_pipe_connect_ext and assuan_socket_connect_ext
   to allow connections on a socketpair and to pass descriptors.

 * New function assuan_get_peercred.


Noteworthy changes in version 0.6.10 (2005-06-20)
-------------------------------------------------

 * New functions assuan_get_flag and assuan_set_flag.

 * Add flag ASSUAN_NO_WAITPID.


Noteworthy changes in version 0.6.9 (2004-12-22)
------------------------------------------------

 * Ported to W32 based systems.


Noteworthy changes in version 0.6.8 (2004-11-25)
------------------------------------------------

 * assuan_write_status does now return an error code.

 * Fixes for C89 compatibility and some first takes on a W32 port.


Noteworthy changes in version 0.6.7 (2004-09-27)
------------------------------------------------

 * Minor build fixes.


Noteworthy changes in version 0.6.6 (2004-06-08)
------------------------------------------------

 * assuan_set_hello_line may now take a multi line argument where the
   first lines are send as comment lines and the last one as a OK
   line.


Noteworthy changes in version 0.6.5 (2004-04-29)
------------------------------------------------

 * Pass the client's pid to a pipe server.


Noteworthy changes in version 0.6.4 (2004-02-20)
------------------------------------------------

 * Will now also build on systems not providing funopen or
   fopencookie.

 * Some smaller build fixes.


Noteworthy changes in version 0.6.3 (2004-01-29)
------------------------------------------------

 * Fixed a data corruption bug in assuan_get_data_fp.

 * New function assuan_pipe_connect2.


Noteworthy changes in version 0.6.2 (2003-12-18)
------------------------------------------------

 * New function assuan_set_assuan_log_prefix to store a log prefix to
   be used when no context is available. The existing function
   assuan_get_assuan_log_context is not anymore declared as user
   overridable.

 * Documentation cleanups.

Noteworthy changes in version 0.6.1 (2003-11-17)
------------------------------------------------

 * Fixed a bug in assuan_inquire which led to an Invalid_Value error
   for large inquiry parameters.

 * Fixed a bug in the client socket connect code.


Noteworthy changes in version 0.6.0 (2003-08-06)
------------------------------------------------

 * Initial release as a standalone library.


 Copyright 2003, 2004, 2006, 2007, 2011,
           2013 Free Software Foundation, Inc.

 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.
