diff options
Diffstat (limited to 'src/libs6/ftrigr_checksa.c')
| -rw-r--r-- | src/libs6/ftrigr_checksa.c | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/src/libs6/ftrigr_checksa.c b/src/libs6/ftrigr_checksa.c deleted file mode 100644 index 6573182..0000000 --- a/src/libs6/ftrigr_checksa.c +++ /dev/null @@ -1,45 +0,0 @@ -/* ISC license. */ - -#include <errno.h> -#include <skalibs/stralloc.h> -#include <skalibs/gensetdyn.h> -#include <s6/ftrigr.h> - -int ftrigr_checksa (ftrigr_t *a, uint16_t id, stralloc *sa) -{ - ftrigr1_t *p ; - if (!id--) return (errno = EINVAL, -1) ; - p = GENSETDYN_P(ftrigr1_t, &a->data, id) ; - if (!p) return (errno = EINVAL, -1) ; - switch (p->state) - { - case FR1STATE_WAITACKDATA : - { - if (!stralloc_catb(sa, p->what.s, p->what.len)) return -1 ; - stralloc_free(&p->what) ; - *p = ftrigr1_zero ; - gensetdyn_delete(&a->data, id) ; - return 1 ; - } - case FR1STATE_LISTENING : - { - if (!p->what.len) break ; - if (!stralloc_catb(sa, p->what.s, p->what.len)) return -1 ; - p->what.len = 0 ; - return 1 ; - } - case FR1STATE_WAITACK : - { - int e ; - if (!stralloc_catb(sa, p->what.s, p->what.len - 1)) return -1 ; - e = p->what.s[p->what.len - 1] ; - stralloc_free(&p->what) ; - *p = ftrigr1_zero ; - gensetdyn_delete(&a->data, id) ; - errno = e ; - return -1 ; - } - default: return (errno = EINVAL, -1) ; - } - return 0 ; -} |
