aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2026-02-20 23:17:30 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2026-02-20 23:17:30 +0000
commit5fec93446e61b2f2c9b68ba50cdad3f83c914cbd (patch)
tree766959b3dcb2de6e168e853816ba85d5aec781da
parent48489c67e90a664466ec71c74bda80b1fc0da879 (diff)
downloadskalibs-5fec93446e61b2f2c9b68ba50cdad3f83c914cbd.tar.gz
Fix sassserver typos and bad APIs
-rw-r--r--package/deps.mak2
-rw-r--r--src/include/skalibs/sassserver.h6
-rw-r--r--src/libunixonacid/sassserver.c23
3 files changed, 17 insertions, 14 deletions
diff --git a/package/deps.mak b/package/deps.mak
index ef71687..cb7604a 100644
--- a/package/deps.mak
+++ b/package/deps.mak
@@ -821,7 +821,7 @@ src/libunixonacid/sassclient_send.o src/libunixonacid/sassclient_send.lo: src/li
src/libunixonacid/sassclient_sendv.o src/libunixonacid/sassclient_sendv.lo: src/libunixonacid/sassclient_sendv.c src/include/skalibs/gensetdyn.h src/libunixonacid/sassclient-internal.h src/include/skalibs/sassclient.h src/include/skalibs/siovec.h src/include/skalibs/tai.h src/include/skalibs/textclient.h src/include/skalibs/uint32.h
src/libunixonacid/sassclient_start.o src/libunixonacid/sassclient_start.lo: src/libunixonacid/sassclient_start.c src/include/skalibs/genqdyn.h src/include/skalibs/gensetdyn.h src/include/skalibs/posixplz.h src/libunixonacid/sassclient-internal.h src/include/skalibs/sassclient.h src/include/skalibs/textclient.h
src/libunixonacid/sassclient_update.o src/libunixonacid/sassclient_update.lo: src/libunixonacid/sassclient_update.c src/include/skalibs/genqdyn.h src/include/skalibs/gensetdyn.h src/include/skalibs/posixishard.h src/libunixonacid/sassclient-internal.h src/include/skalibs/sassclient.h src/include/skalibs/textclient.h src/include/skalibs/uint32.h
-src/libunixonacid/sassserver.o src/libunixonacid/sassserver.lo: src/libunixonacid/sassserver.c src/include/skalibs/avltree.h src/include/skalibs/error.h src/include/skalibs/gensetdyn.h src/include/skalibs/iopause.h src/include/skalibs/sassserver.h src/include/skalibs/strerr.h src/include/skalibs/tai.h src/include/skalibs/textclient.h src/include/skalibs/textmessage.h src/include/skalibs/uint32.h
+src/libunixonacid/sassserver.o src/libunixonacid/sassserver.lo: src/libunixonacid/sassserver.c src/include/skalibs/alloc.h src/include/skalibs/avltree.h src/include/skalibs/error.h src/include/skalibs/gensetdyn.h src/include/skalibs/iopause.h src/include/skalibs/sassserver.h src/include/skalibs/strerr.h src/include/skalibs/tai.h src/include/skalibs/textclient.h src/include/skalibs/textmessage.h src/include/skalibs/uint32.h
src/libunixonacid/skaclient_default_cb.o src/libunixonacid/skaclient_default_cb.lo: src/libunixonacid/skaclient_default_cb.c src/include/skalibs/posixishard.h src/include/skalibs/skaclient.h src/include/skalibs/unixmessage.h
src/libunixonacid/skaclient_end.o src/libunixonacid/skaclient_end.lo: src/libunixonacid/skaclient_end.c src/include/skalibs/djbunix.h src/include/skalibs/skaclient.h src/include/skalibs/unixmessage.h
src/libunixonacid/skaclient_init.o src/libunixonacid/skaclient_init.lo: src/libunixonacid/skaclient_init.c src/libunixonacid/skaclient-internal.h src/include/skalibs/skaclient.h src/include/skalibs/unixmessage.h
diff --git a/src/include/skalibs/sassserver.h b/src/include/skalibs/sassserver.h
index fcd1286..b17df8b 100644
--- a/src/include/skalibs/sassserver.h
+++ b/src/include/skalibs/sassserver.h
@@ -9,14 +9,14 @@
#include <skalibs/tai.h>
#include <skalibs/iopause.h>
-typedef void *sassserver_send_func (uint32_t, uint32_t, char const *, size_t) ;
+typedef int sassserver_send_func (void *, 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 void sassserver_init (char const *, char const *, sassserver_send_func_ref, sassserver_cancel_func_ref, size_t, tain const *, tain *stamp) ;
+#define sassserver_init_g(banner1, banner2, sendf, cancelf, esize, deadline) sassserver_init(banner1, banner2, sendf, cancelf, esize, (deadline), &STAMP)
extern unsigned int sassserver_prepare_iopause (iopause_fd *, tain *) ;
extern void sassserver_timeout (void) ;
extern int sassserver_event (iopause_fd const *) ;
diff --git a/src/libunixonacid/sassserver.c b/src/libunixonacid/sassserver.c
index 7ca3ad7..51569e9 100644
--- a/src/libunixonacid/sassserver.c
+++ b/src/libunixonacid/sassserver.c
@@ -6,6 +6,7 @@
#include <errno.h>
#include <skalibs/uint32.h>
+#include <skalibs/alloc.h>
#include <skalibs/error.h>
#include <skalibs/strerr.h>
#include <skalibs/tai.h>
@@ -26,18 +27,19 @@ struct sassserver_query_s
static sassserver_send_func_ref sassserver_sendf ;
static sassserver_cancel_func_ref sassserver_cancelf ;
+static size_t sassserver_datasize ;
static gensetdyn sassserver_queries = GENSETDYN_INIT(sassserver_query, 8, 3, 8) ;
#define SASSSERVER_QUERY(i) GENSETDYN_P(sassserver_query, &sassserver_queries, (i))
-void *sassserver_data (uint32_t handle)
+static void *sassserver_deadline_dtok (uint32_t d, void *aux)
{
- return SASSSERVER_QUERY(handle)->data ;
+ return &GENSETDYN_P(sassserver_query, (gensetdyn *)aux, d)->deadline ;
}
-static void *sassserver_deadline_dtok (uint32_t d, void *aux)
+void *sassserver_data (uint32_t handle)
{
- return &GENSETDYN_P(sassserver_query, (gensetdyn *)aux, d)->deadline ;
+ return SASSSERVER_QUERY(handle)->data ;
}
static int sassserver_deadline_cmp (void const *a, void const *b, void *aux)
@@ -145,6 +147,7 @@ static int sassserver_parse_protocol (struct iovec const *v, void *aux)
uint32_t timeout ;
uint32_t opcode ;
uint32_t len ;
+ int e ;
if (vlen < 16) strerr_dief1x(100, "invalid client request") ;
if (!gensetdyn_new(&sassserver_queries, &handle)) strerr_diefu1sys(111, "gensetdyn_new") ;
p = SASSSERVER_QUERY(handle) ;
@@ -162,14 +165,14 @@ static int sassserver_parse_protocol (struct iovec const *v, void *aux)
sassserver_uniquify(&p->deadline) ;
if (!avltree_insert(&sassserver_by_deadline, handle)) strerr_diefu1sys(111, "avltree_insert") ;
if (!avltree_insert(&sassserver_by_id, handle)) strerr_diefu1sys(111, "avltree_insert") ;
- p->data = (*sassserver_sendf)(handle, opcode, s, len) ;
if (!p->data)
{
- int e = errno ;
- sassserver_remove(handle) ;
- sassserver_sync_answer(e) ;
+ p->data = alloc(sassserver_datasize) ;
+ if (!p->data) strerr_diefu1sys(111, "alloc") ;
}
- else sassserver_sync_answer(0) ;
+ e = (*sassserver_sendf)(p->data, handle, opcode, s, len) ;
+ if (e) sassserver_remove(handle) ;
+ sassserver_sync_answer(e) ;
break ;
}
default : strerr_dief1x(100, "invalid client request") ;
@@ -177,7 +180,7 @@ static int sassserver_parse_protocol (struct iovec const *v, void *aux)
return 1 ;
}
-void sassserver_init (char const *banner1, char const *banner2, sassserver_send_func_ref sendf, sassserver_cancel_func_ref cancelf, tain const *deadline, tain *stamp)
+void sassserver_init (char const *banner1, char const *banner2, sassserver_send_func_ref sendf, sassserver_cancel_func_ref cancelf, size_t datasize, tain const *deadline, tain *stamp)
{
if (!textclient_server_01x_init(banner1, strlen(banner1), banner2, strlen(banner2), deadline, stamp))
strerr_diefu1sys(111, "sync with client") ;