con = data;
static void cl_timer_cli(int type, void *data){  struct con *con = NULL;  struct timeval tv;  unsigned long diff = 0;    if (!data)    return;    if (type == TIMER_Q_TYPE_CALL_DEL)    return;  con = data;  gettimeofday(&tv, NULL);  diff = timer_q_timeval_udiff_secs(&tv, &con->ev->mtime);  if (diff > server_timeout)  {    vlg_dbg2(vlg, "timeout = %p (%lu, %lu)\n",             con, diff, (unsigned long)server_timeout);    close(SOCKET_POLL_INDICATOR(con->ev->ind)->fd);    return;  }    if (type == TIMER_Q_TYPE_CALL_RUN_ALL)    return;    TIMER_Q_TIMEVAL_ADD_SECS(&tv, (server_timeout - diff) + 1, 0);  if (!(con->ev->tm_o = timer_q_add_node(cl_timeout_base, con, &tv,                                         TIMER_Q_FLAG_NODE_DEFAULT)))    errno = ENOMEM, err(EXIT_FAILURE, "%s", __func__);}