diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2026-02-20 20:55:45 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2026-02-20 20:55:45 +0000 |
| commit | 48489c67e90a664466ec71c74bda80b1fc0da879 (patch) | |
| tree | 02a0dd769afa0ac300bbb9fbf586e4dd48850ed0 /src/include | |
| parent | ee9c49369fe58e8159395c5624c654d8ed242a60 (diff) | |
| download | skalibs-48489c67e90a664466ec71c74bda80b1fc0da879.tar.gz | |
Add sassclient/sassserver, prepare for 2.14.6.0
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/skalibs/sassclient.h | 44 | ||||
| -rw-r--r-- | src/include/skalibs/sassserver.h | 29 | ||||
| -rw-r--r-- | src/include/skalibs/unixonacid.h | 2 |
3 files changed, 75 insertions, 0 deletions
diff --git a/src/include/skalibs/sassclient.h b/src/include/skalibs/sassclient.h new file mode 100644 index 0000000..b932414 --- /dev/null +++ b/src/include/skalibs/sassclient.h @@ -0,0 +1,44 @@ +/* ISC license. */ + +#ifndef SKALIBS_SASSCLIENT_H +#define SKALIBS_SASSCLIENT_H + +#include <pthread.h> + +#include <skalibs/tai.h> +#include <skalibs/textclient.h> +#include <skalibs/gensetdyn.h> +#include <skalibs/genqdyn.h> + +typedef struct sassclient_s sassclient, *sassclient_ref ; +struct sassclient_s +{ + textclient connection ; + gensetdyn store ; /* sassclient_data */ + genqdyn results ; /* char id[4] + char status[4] */ + pthread_mutex_t connection_mutex ; + pthread_mutex_t results_mutex ; +} ; +#define SASSCLIENT_ZERO { .connection = TEXTCLIENT_ZERO, .store = GENSETDYN_ZERO, .results = GENQDYN_ZERO } + +typedef int sassclient_cb_func (char const *, size_t, void *) ; +typedef sassclient_cb_func *sassclient_cb_func_ref ; + +extern int sassclient_start (sassclient *, char const *const *, char const *, char const *, tain const *, tain *) ; +#define sassclient_start_g(a, argv, banner1, banner2, deadline) sassclient_start(a, argv, banner1, banner2, (deadline), &STAMP) +extern void sassclient_end (sassclient *) ; + +#define sassclient_fd(a) textclient_fd(&(a)->connection) +extern int sassclient_update (sassclient *) ; +extern int sassclient_ack (sassclient *, uint32_t *, int *) ; + +extern int sassclient_send (sassclient *, uint32_t *, uint32_t, uint32_t, char const *, size_t, sassclient_cb_func_ref, void *, tain const *, tain *) ; +#define sassclient_send_g(a, id, timeout, opcode, s, len, cb, data, deadline) sassclient_send(a, id, timeout, opcode, s, len, cb, data, (deadline), &STAMP) + +extern int sassclient_sendv (sassclient *, uint32_t *, uint32_t, uint32_t, struct iovec const *, unsigned int, sassclient_cb_func_ref, void *, tain const *, tain *) ; +#define sassclient_sendv_g(a, id, timeout, opcode, v, n, cb, data, deadline) sassclient_sendv(a, id, timeout, opcode, v, n, cb, data, (deadline), &STAMP) + +extern int sassclient_cancel (sassclient *, uint32_t, tain const *, tain *) ; +#define sassclient_cancel_g(a, id, deadline) sassclient_cancel(a, id, (deadline), &STAMP) + +#endif diff --git a/src/include/skalibs/sassserver.h b/src/include/skalibs/sassserver.h new file mode 100644 index 0000000..fcd1286 --- /dev/null +++ b/src/include/skalibs/sassserver.h @@ -0,0 +1,29 @@ +/* ISC license. */ + +#ifndef SKALIBS_SASSSERVER_H +#define SKALIBS_SASSSERVER_H + +#include <sys/uio.h> +#include <stdint.h> + +#include <skalibs/tai.h> +#include <skalibs/iopause.h> + +typedef void *sassserver_send_func (uint32_t, uint32_t, char const *, size_t) ; +typedef sassserver_send_func *sassserver_send_func_ref ; + +typedef void sassserver_cancel_func (void *) ; +typedef sassserver_cancel_func *sassserver_cancel_func_ref ; + +extern void sassserver_init (char const *, char const *, sassserver_send_func_ref, sassserver_cancel_func_ref, tain const *, tain *stamp) ; +#define sassserver_init_g(banner1, banner2, deadline) sassserver_init(banner1, banner2, (deadline), &STAMP) +extern unsigned int sassserver_prepare_iopause (iopause_fd *, tain *) ; +extern void sassserver_timeout (void) ; +extern int sassserver_event (iopause_fd const *) ; +extern void *sassserver_data (uint32_t) ; + +extern void sassserver_async_failure (uint32_t, int) ; +extern void sassserver_async_success (uint32_t, char const *, size_t) ; +extern void sassserver_async_successv (uint32_t, struct iovec const *, unsigned int) ; + +#endif diff --git a/src/include/skalibs/unixonacid.h b/src/include/skalibs/unixonacid.h index d9f952c..1cba96a 100644 --- a/src/include/skalibs/unixonacid.h +++ b/src/include/skalibs/unixonacid.h @@ -12,5 +12,7 @@ #include <skalibs/unixconnection.h> #include <skalibs/kolbak.h> #include <skalibs/skaclient.h> +#include <skalibs/sassclient.h> +#include <skalibs/sassserver.h> #endif |
