diff options
author | NIIBE Yutaka <[email protected]> | 2023-08-02 05:28:56 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2023-08-02 05:32:27 +0000 |
commit | bb7aa0ebed7379275eba6ad1eec62da34505c7e4 (patch) | |
tree | 80f7d4078eaf39d3da9acbe8a2e06778f526b559 /src | |
parent | libassuan.m4: Allow use of libassuan 3 for API of version 2. (diff) | |
download | libassuan-bb7aa0ebed7379275eba6ad1eec62da34505c7e4.tar.gz libassuan-bb7aa0ebed7379275eba6ad1eec62da34505c7e4.zip |
New function: assuan_control.
* src/assuan.c (assuan_control): New.
* src/assuan.h.in (ASSUAN_CONTROL_REINIT_SYSCALL_CLAMP): New.
(assuan_control): New.
* src/libassuan.def (assuan_control): Add.
* src/libassuan.vers (assuan_control): Add.
--
GnuPG-bug-id: 6625
Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/assuan.c | 21 | ||||
-rw-r--r-- | src/assuan.h.in | 10 | ||||
-rw-r--r-- | src/libassuan.def | 1 | ||||
-rw-r--r-- | src/libassuan.vers | 1 |
4 files changed, 33 insertions, 0 deletions
diff --git a/src/assuan.c b/src/assuan.c index c8397da..0332a24 100644 --- a/src/assuan.c +++ b/src/assuan.c @@ -114,6 +114,27 @@ assuan_set_system_hooks (assuan_system_hooks_t system_hooks) } +gpg_error_t +assuan_control (enum assuan_ctl_cmds cmd, void *arg) +{ + gpg_error_t err = 0; + + (void)arg; + switch (cmd) + { + case ASSUAN_CONTROL_NOP: + default: + /* Nothing to do. */ + break; + case ASSUAN_CONTROL_REINIT_SYSCALL_CLAMP: + gpgrt_get_syscall_clamp (&pre_syscall_func, &post_syscall_func); + _assuan_syscall_func_initialized = 1; + break; + } + + return err; +} + /* Used before blocking system calls. */ void _assuan_pre_syscall (void) diff --git a/src/assuan.h.in b/src/assuan.h.in index 99444b8..14492ec 100644 --- a/src/assuan.h.in +++ b/src/assuan.h.in @@ -154,6 +154,16 @@ void assuan_release (assuan_context_t ctx); * context CTX. This is a convenience function. */ void assuan_free (assuan_context_t ctx, void *ptr); +/* Codes used with the gcry_control function. */ +enum assuan_ctl_cmds + { + ASSUAN_CONTROL_NOP = 0, + ASSUAN_CONTROL_REINIT_SYSCALL_CLAMP = 1 + }; + +/* Perform control operations defined by CMD. */ +gpg_error_t assuan_control (enum assuan_ctl_cmds cmd, void *arg); + /* Set user-data in a context. */ void assuan_set_pointer (assuan_context_t ctx, void *pointer); diff --git a/src/libassuan.def b/src/libassuan.def index 088400b..1769a97 100644 --- a/src/libassuan.def +++ b/src/libassuan.def @@ -119,6 +119,7 @@ EXPORTS assuan_sock_accept @98 assuan_pipe_wait_server_termination @99 assuan_pipe_kill_server @100 + assuan_control @101 ; END diff --git a/src/libassuan.vers b/src/libassuan.vers index 07612d4..1b33475 100644 --- a/src/libassuan.vers +++ b/src/libassuan.vers @@ -108,6 +108,7 @@ LIBASSUAN_1.0 { assuan_sock_accept; assuan_pipe_wait_server_termination; assuan_pipe_kill_server; + assuan_control; __assuan_close; __assuan_pipe; |