aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs6/ftrigr_update.c
blob: afae759b909ca311d903bf13635ee960b7b49fbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* ISC license. */

#include <stdint.h>

#include <skalibs/genalloc.h>
#include <skalibs/sassclient.h>

#include <s6/ftrigr.h>
#include "ftrigr-internal.h"

int ftrigr_update (ftrigr *a)
{
  int r = sassclient_update(&a->client) ;
  if (r <= 0) return r ;
  for (;;)
  {
    uint32_t id ;
    int status ;
    r = sassclient_ack(&a->client, &id, &status) ;
    if (r == -1) return -1 ;
    if (!r) break ;
    genalloc_s(ftrigr_data, &a->data)[id].status = status ;
  }
  return 1 ;
}