diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2021-08-10 18:01:01 +0000 |
---|---|---|
committer | Laurent Bercot <ska@appnovation.com> | 2021-08-10 18:01:01 +0000 |
commit | 304b35f770b1d4599e6a76c97cb3e02b19e98445 (patch) | |
tree | 045c8e83247a9eb27aa4f45d43abba5539eddce6 /src/pub/skabus-pubd.c | |
parent | 6b13dbadb14e21074e9a54d284b4757337c7c009 (diff) | |
download | skabus-304b35f770b1d4599e6a76c97cb3e02b19e98445.tar.xz |
Adapt to skalibs-2.11.0.0, the real one
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src/pub/skabus-pubd.c')
-rw-r--r-- | src/pub/skabus-pubd.c | 65 |
1 files changed, 33 insertions, 32 deletions
diff --git a/src/pub/skabus-pubd.c b/src/pub/skabus-pubd.c index 5346717..8bbaae0 100644 --- a/src/pub/skabus-pubd.c +++ b/src/pub/skabus-pubd.c @@ -10,7 +10,6 @@ #include <stdlib.h> #include <regex.h> -#include <skalibs/posixishard.h> #include <skalibs/uint32.h> #include <skalibs/uint64.h> #include <skalibs/types.h> @@ -35,6 +34,8 @@ #include <skalibs/unixconnection.h> #include <skalibs/skaclient.h> +#include <skalibs/posixishard.h> + #include <s6/accessrules.h> #include <skabus/pub.h> @@ -49,8 +50,8 @@ static unsigned int verbosity = 1 ; static int cont = 1 ; static uint64_t serial = 1 ; -static tain_t answertto = TAIN_INFINITE_RELATIVE ; -static tain_t lameduckdeadline = TAIN_INFINITE_RELATIVE ; +static tain answertto = TAIN_INFINITE_RELATIVE ; +static tain lameduckdeadline = TAIN_INFINITE_RELATIVE ; static int flagidstrpub = 0 ; static unsigned int maxfds = 1000 ; static uint32_t *fdcount ; @@ -120,13 +121,13 @@ struct client_s uint32_t next ; uint32_t xindexsync ; uint32_t xindexasync ; - tain_t deadline ; + tain deadline ; regex_t idstr_re ; regex_t subscribe_re ; regex_t write_re ; avltree subscribers ; - unixmessage_sender_t asyncout ; - unixconnection_t sync ; + unixmessage_sender asyncout ; + unixconnection sync ; char idstr[SKABUS_PUB_IDSTR_SIZE + 1] ; } ; @@ -188,14 +189,14 @@ static void remove (uint32_t *i, uint32_t j) static void client_setdeadline (client_t *c) { - tain_t blah ; + tain blah ; tain_half(&blah, &tain_infinite_relative) ; tain_add_g(&blah, &blah) ; if (tain_less(&blah, &c->deadline)) tain_add_g(&c->deadline, &answertto) ; } -static inline int client_prepare_iopause (uint32_t i, tain_t *deadline, iopause_fd *x, uint32_t *j) +static inline int client_prepare_iopause (uint32_t i, tain *deadline, iopause_fd *x, uint32_t *j) { client_t *c = CLIENT(i) ; if (tain_less(&c->deadline, deadline)) *deadline = c->deadline ; @@ -230,7 +231,7 @@ static inline void client_add (int fd, regex_t const *idstr_re, unsigned int fla CLIENT(sentinel)->next = i ; } -static int enqueue_message (uint32_t dd, unixmessage_t const *m) +static int enqueue_message (uint32_t dd, unixmessage const *m) { client_t *d = CLIENT(dd) ; if (!unixmessage_put_and_close(&d->asyncout, m, unixmessage_bits_closeall)) return 0 ; @@ -250,7 +251,7 @@ static int unsendmessage_iter (uint32_t dd, unsigned int h, void *data) static int sendmessage_iter (uint32_t dd, unsigned int h, void *data) { (void)h ; - return enqueue_message(dd, (unixmessage_t *)data) ; + return enqueue_message(dd, (unixmessage *)data) ; } static int store_text (char const *s, size_t len) @@ -290,7 +291,7 @@ static int announce (char const *what, size_t whatlen, char const *idstr) size_t idlen = strlen(idstr) ; int fd ; char s[MSGINFO_PACK(idlen)] ; - unixmessage_t m = { .s = s, .len = MSGINFO_PACK(idlen), .fds = &fd, .nfds = 1 } ; + unixmessage m = { .s = s, .len = MSGINFO_PACK(idlen), .fds = &fd, .nfds = 1 } ; if (!*idstr) return 1 ; fill_msginfo(s, idstr, idlen, 0) ; fd = store_text(what, whatlen) ; @@ -339,13 +340,13 @@ static inline int client_flush (uint32_t i, iopause_fd const *x) static int answer (client_t *c, char e) { - unixmessage_t m = { .s = &e, .len = 1, .fds = 0, .nfds = 0 } ; + unixmessage m = { .s = &e, .len = 1, .fds = 0, .nfds = 0 } ; if (!unixmessage_put(&c->sync.out, &m)) return 0 ; client_setdeadline(c) ; return 1 ; } -static int do_register (uint32_t cc, unixmessage_t const *m) +static int do_register (uint32_t cc, unixmessage const *m) { uint32_t srelen, wrelen, dummy ; client_t *c = CLIENT(cc) ; @@ -384,7 +385,7 @@ static int do_register (uint32_t cc, unixmessage_t const *m) return answer(c, 0) ; } -static int do_list (uint32_t cc, unixmessage_t const *m) +static int do_list (uint32_t cc, unixmessage const *m) { client_t *c = CLIENT(cc) ; uint32_t dd = CLIENT(sentinel)->next ; @@ -394,7 +395,7 @@ static int do_list (uint32_t cc, unixmessage_t const *m) char pack[9] = "" ; char lens[n] ; struct iovec v[1+(n<<1)] ; - unixmessage_v_t mreply = { .v = v, .vlen = 1+(n<<1), .fds = 0, .nfds = 0 } ; + unixmessagev mreply = { .v = v, .vlen = 1+(n<<1), .fds = 0, .nfds = 0 } ; unsigned int registered = 0 ; v[0].iov_base = pack ; v[0].iov_len = 9 ; for (unsigned int i = 0 ; i < n ; i++) @@ -420,7 +421,7 @@ static int do_list (uint32_t cc, unixmessage_t const *m) return 1 ; } -static int do_unsubscribe (uint32_t cc, unixmessage_t const *m) +static int do_unsubscribe (uint32_t cc, unixmessage const *m) { uint32_t dd ; char const *s = m->s ; @@ -435,7 +436,7 @@ static int do_unsubscribe (uint32_t cc, unixmessage_t const *m) return answer(c, 0) ; } -static int do_subscribe (uint32_t cc, unixmessage_t const *m) +static int do_subscribe (uint32_t cc, unixmessage const *m) { client_t *c = CLIENT(cc) ; char const *s = m->s ; @@ -456,7 +457,7 @@ static int do_subscribe (uint32_t cc, unixmessage_t const *m) return answer(c, 0) ; } -static int do_sendpm (uint32_t cc, unixmessage_t const *m) +static int do_sendpm (uint32_t cc, unixmessage const *m) { client_t *c = CLIENT(cc) ; char const *s = m->s ; @@ -499,7 +500,7 @@ static int do_sendpm (uint32_t cc, unixmessage_t const *m) size_t cidlen = strlen(c->idstr) ; char pack[1 + MSGINFO_PACK(cidlen)] ; int fds[1 + m->nfds] ; - unixmessage_t mtosend = { .s = pack + 1, .len = MSGINFO_PACK(cidlen), .fds = fds, .nfds = 1 + m->nfds } ; + unixmessage mtosend = { .s = pack + 1, .len = MSGINFO_PACK(cidlen), .fds = fds, .nfds = 1 + m->nfds } ; fds[0] = store_text(s, len) ; if (fds[0] < 0) { @@ -523,7 +524,7 @@ static int do_sendpm (uint32_t cc, unixmessage_t const *m) } } -static int do_send (uint32_t cc, unixmessage_t const *m) +static int do_send (uint32_t cc, unixmessage const *m) { client_t *c = CLIENT(cc) ; size_t cidlen = strlen(c->idstr) ; @@ -535,7 +536,7 @@ static int do_send (uint32_t cc, unixmessage_t const *m) { char pack[1 + MSGINFO_PACK(cidlen)] ; int fds[1 + m->nfds] ; - unixmessage_t mtosend = { .s = pack + 1, .len = MSGINFO_PACK(cidlen), .fds = fds, .nfds = 1 + m->nfds } ; + unixmessage mtosend = { .s = pack + 1, .len = MSGINFO_PACK(cidlen), .fds = fds, .nfds = 1 + m->nfds } ; fds[0] = store_text(m->s, m->len) ; if (fds[0] < 0) { @@ -558,19 +559,19 @@ static int do_send (uint32_t cc, unixmessage_t const *m) } } -static int do_error (uint32_t cc, unixmessage_t const *m) +static int do_error (uint32_t cc, unixmessage const *m) { (void)cc ; (void)m ; return (errno = EPROTO, 0) ; } -typedef int parsefunc_t (uint32_t, unixmessage_t const *) ; -typedef parsefunc_t *parsefunc_t_ref ; +typedef int parse_func (uint32_t, unixmessage const *) ; +typedef parse_func *parse_func_ref ; -static inline int parse_protocol (unixmessage_t const *m, void *p) +static inline int parse_protocol (unixmessage const *m, void *p) { - static parsefunc_t_ref const f[7] = + static parse_func_ref const f[7] = { &do_send, &do_sendpm, @@ -580,7 +581,7 @@ static inline int parse_protocol (unixmessage_t const *m, void *p) &do_register, &do_error } ; - unixmessage_t mcopy = { .s = m->s + 1, .len = m->len - 1, .fds = m->fds, .nfds = m->nfds } ; + unixmessage mcopy = { .s = m->s + 1, .len = m->len - 1, .fds = m->fds, .nfds = m->nfds } ; if (!m->len) { unixmessage_drop(m) ; @@ -601,7 +602,7 @@ static inline int client_read (uint32_t cc, iopause_fd const *x) { if (unixmessage_sender_fd(&c->asyncout) < 0) { - unixmessage_t m ; + unixmessage m ; int r = unixmessage_receive(&c->sync.in, &m) ; if (r < 0) return -1 ; if (r) @@ -750,7 +751,7 @@ int main (int argc, char const *const *argv, char const *const *envp) PROG = "skabus-pubd" ; { - subgetopt_t l = SUBGETOPT_ZERO ; + subgetopt l = SUBGETOPT_ZERO ; unsigned int t = 0, T = 0 ; for (;;) { @@ -805,13 +806,13 @@ int main (int argc, char const *const *argv, char const *const *envp) msgfsdir = argv[0] ; spfd = selfpipe_init() ; if (spfd < 0) strerr_diefu1sys(111, "selfpipe_init") ; - if (sig_ignore(SIGPIPE) < 0) strerr_diefu1sys(111, "ignore SIGPIPE") ; + if (!sig_ignore(SIGPIPE)) strerr_diefu1sys(111, "ignore SIGPIPE") ; { sigset_t set ; sigemptyset(&set) ; sigaddset(&set, SIGTERM) ; sigaddset(&set, SIGHUP) ; - if (selfpipe_trapset(&set) < 0) strerr_diefu1sys(111, "trap signals") ; + if (!selfpipe_trapset(&set)) strerr_diefu1sys(111, "trap signals") ; } if (rulestype == 2) @@ -858,7 +859,7 @@ int main (int argc, char const *const *argv, char const *const *envp) for (;;) { - tain_t deadline ; + tain deadline ; uint32_t i = clientstorage[sentinel].next, j = 2 ; int r = 1 ; if (cont) tain_add_g(&deadline, &tain_infinite_relative) ; |