[Pkg-gnupg-commit] [libassuan] 03/11: Allow change of system hooks for assuan_sock_...

Eric Dorland eric at moszumanska.debian.org
Sat Dec 9 06:48:45 UTC 2017


This is an automated email from the git hooks/post-receive script.

eric pushed a commit to branch master
in repository libassuan.

commit 90dc81682b13a7cf716a8a26b891051cbd4b0caf
Author: NIIBE Yutaka <gniibe at fsij.org>
Date:   Thu Dec 7 13:41:46 2017 +0100

    Allow change of system hooks for assuan_sock_...
    
    * 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: wk at gnupg.org
    Signed-off-by: Werner Koch <wk at gnupg.org>
---
 NEWS                | 11 ++++++++++-
 configure.ac        | 10 +++++-----
 doc/assuan.texi     |  8 ++++++++
 src/assuan-socket.c |  7 +++++++
 src/assuan.h.in     |  9 +++++++--
 src/libassuan.def   |  1 +
 src/libassuan.vers  |  1 +
 7 files changed, 39 insertions(+), 8 deletions(-)

diff --git a/NEWS b/NEWS
index 022af96..e2937d7 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,15 @@
-Noteworthy changes in version 2.4.6 (unreleased) [C7/A7/R_]
+Noteworthy changes in version 2.5.0 (unreleased) [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]
 ------------------------------------------------
diff --git a/configure.ac b/configure.ac
index 40c378c..4128f18 100644
--- a/configure.ac
+++ b/configure.ac
@@ -32,8 +32,8 @@ min_automake_version="1.14"
 # for the LT versions.
 m4_define([mym4_package],[libassuan])
 m4_define([mym4_major], [2])
-m4_define([mym4_minor], [4])
-m4_define([mym4_micro], [6])
+m4_define([mym4_minor], [5])
+m4_define([mym4_micro], [0])
 
 # To start a new development series, i.e a new major or minor number
 # you need to mark an arbitrary commit before the first beta release
@@ -61,9 +61,9 @@ AC_INIT([mym4_package],[mym4_version], [https://bugs.gnupg.org])
 #   (Interfaces added:			AGE++)
 #   (Interfaces removed/changed:	AGE=0)
 #
-LIBASSUAN_LT_CURRENT=7
-LIBASSUAN_LT_AGE=7
-LIBASSUAN_LT_REVISION=5
+LIBASSUAN_LT_CURRENT=8
+LIBASSUAN_LT_AGE=8
+LIBASSUAN_LT_REVISION=0
 
 # If the API is changed in an incompatible way: increment the next counter.
 LIBASSUAN_CONFIG_API_VERSION=2
diff --git a/doc/assuan.texi b/doc/assuan.texi
index aae3de7..5c423d0 100644
--- a/doc/assuan.texi
+++ b/doc/assuan.texi
@@ -994,11 +994,19 @@ Set the default system hooks to use.  There is currently no way to
 reset to the default system hooks.
 @end deftypefun
 
+ at deftypefun void assuan_sock_set_system_hooks (@w{assuan_system_hooks_t @var{system_hooks}})
+The socket subsystem uses an internal context which uses the default
+system hooks.  This function allows to change these system hooks.  The
+function is not thread-safe and only useful if a certain order of
+assuan and assuan socket initializations are required.
+ at end deftypefun
+
 @deftypefun void assuan_ctx_set_system_hooks (@w{assuan_context_t @var{ctx}}, @w{assuan_system_hooks_t @var{system_hooks}})
 Set the system hooks for context @var{ctx}.  There is currently no way
 to reset to the default system hooks, create a new context for that.
 @end deftypefun
 
+
 The following system hook collections are defined by the library for
 your convenience:
 
diff --git a/src/assuan-socket.c b/src/assuan-socket.c
index adcd40a..7fb2201 100644
--- a/src/assuan-socket.c
+++ b/src/assuan-socket.c
@@ -1495,3 +1495,10 @@ assuan_sock_check_nonce (assuan_fd_t fd, assuan_sock_nonce_t *nonce)
 {
   return _assuan_sock_check_nonce (sock_ctx, fd, nonce);
 }
+
+void
+assuan_sock_set_system_hooks (assuan_system_hooks_t system_hooks)
+{
+  if (sock_ctx)
+    _assuan_system_hooks_copy (&sock_ctx->system, system_hooks);
+}
diff --git a/src/assuan.h.in b/src/assuan.h.in
index 9594e73..cfa4409 100644
--- a/src/assuan.h.in
+++ b/src/assuan.h.in
@@ -490,15 +490,20 @@ int assuan_sock_set_sockaddr_un (const char *fname, struct sockaddr *addr,
 int assuan_sock_get_nonce (struct sockaddr *addr, int addrlen,
                            assuan_sock_nonce_t *nonce);
 int assuan_sock_check_nonce (assuan_fd_t fd, assuan_sock_nonce_t *nonce);
+void assuan_sock_set_system_hooks (assuan_system_hooks_t system_hooks);
 
 

-/* Set the default or per context system callbacks.  This is
-   irreversible.  */
+/* Set the default system callbacks.  This is irreversible.  */
 void assuan_set_system_hooks (assuan_system_hooks_t system_hooks);
 
+/* Set the per context system callbacks.  This is irreversible.  */
 void assuan_ctx_set_system_hooks (assuan_context_t ctx,
 				  assuan_system_hooks_t system_hooks);
 
+/* Change the system hooks for the socket interface.
+ * This is not thread-safe.  */
+void assuan_sock_set_system_hooks (assuan_system_hooks_t system_hooks);
+
 void __assuan_usleep (assuan_context_t ctx, unsigned int usec);
 int __assuan_pipe (assuan_context_t ctx, assuan_fd_t fd[2], int inherit_idx);
 int __assuan_close (assuan_context_t ctx, assuan_fd_t fd);
diff --git a/src/libassuan.def b/src/libassuan.def
index 7e32a3d..ed9ceaf 100644
--- a/src/libassuan.def
+++ b/src/libassuan.def
@@ -115,6 +115,7 @@ EXPORTS
     assuan_sock_set_flag                @94
     assuan_sock_get_flag                @95
     assuan_sock_connect_byname          @96
+    assuan_sock_set_system_hooks        @97
 
 ; END
 
diff --git a/src/libassuan.vers b/src/libassuan.vers
index a178127..c9cd5d7 100644
--- a/src/libassuan.vers
+++ b/src/libassuan.vers
@@ -106,6 +106,7 @@ LIBASSUAN_1.0 {
     assuan_sock_set_flag;
     assuan_sock_get_flag;
     assuan_sock_connect_byname;
+    assuan_sock_set_system_hooks;
 
     __assuan_close;
     __assuan_pipe;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/libassuan.git



More information about the Pkg-gnupg-commit mailing list