From 48489c67e90a664466ec71c74bda80b1fc0da879 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Fri, 20 Feb 2026 20:55:45 +0000 Subject: Add sassclient/sassserver, prepare for 2.14.6.0 --- src/include/skalibs/sassclient.h | 44 ++++++++++++++++++++++++++++++++++++++++ src/include/skalibs/sassserver.h | 29 ++++++++++++++++++++++++++ src/include/skalibs/unixonacid.h | 2 ++ 3 files changed, 75 insertions(+) create mode 100644 src/include/skalibs/sassclient.h create mode 100644 src/include/skalibs/sassserver.h (limited to 'src/include') 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 + +#include +#include +#include +#include + +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 +#include + +#include +#include + +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 #include #include +#include +#include #endif -- cgit v1.3.1