diff options
author | NIIBE Yutaka <gniibe@fsij.org> | 2017-12-07 13:41:46 +0100 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2017-12-07 13:41:46 +0100 |
commit | 90dc81682b13a7cf716a8a26b891051cbd4b0caf (patch) | |
tree | 3232088899d6e9919e7bb4b2303d121b9f7493da /src | |
parent | a627350eed5dc32bac41195462f27dee1987b0f5 (diff) | |
download | libassuan-90dc81682b13a7cf716a8a26b891051cbd4b0caf.tar.gz |
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@gnupg.org
Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/assuan-socket.c | 7 | ||||
-rw-r--r-- | src/assuan.h.in | 9 | ||||
-rw-r--r-- | src/libassuan.def | 1 | ||||
-rw-r--r-- | src/libassuan.vers | 1 |
4 files changed, 16 insertions, 2 deletions
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; |