AZ(evtimer_add(&tick_e, &tick_rate));
clock_gettime(CLOCK_MONOTONIC, &t);
TAILQ_FOREACH_SAFE(sp, &sesshead, list, sp2) {
+ CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
if (sp->t_idle.tv_sec + 30 < t.tv_sec) {
TAILQ_REMOVE(&sesshead, sp, list);
vca_close_session(sp, "timeout");
static void
vca_callback(void *arg, int bad)
{
- struct sess *sp = arg;
+ struct sess *sp;
+ CAST_OBJ_NOTNULL(sp, arg, SESS_MAGIC);
TAILQ_REMOVE(&sesshead, sp, list);
if (bad) {
if (bad == 1)
static void
http_read_f(int fd, short event, void *arg)
{
- struct http *hp = arg;
+ struct http *hp;
unsigned l;
int i, ret = 0;
(void)event;
+ CAST_OBJ_NOTNULL(hp, arg, HTTP_MAGIC);
l = (hp->e - hp->s) / 2;
if (l < hp->v - hp->s)
l = 0;
--passes=3
+-passes=12
// Fix strchr() semtics, it can only return NULL if arg2 != 0
-sem(strchr, 1p, type(1), 2n == 0 ? (@p < 1p) : (@p < 1p || @p == 0 ))