Exemple #1
0
/*
 * DNS UDP socket activity callback
 */
static void
resolv_sock_cb(struct ev_loop *loop, struct ev_io *w, int revents) {
    struct dns_ctx *ctx = (struct dns_ctx *)w->data;

    if (revents & EV_READ)
        dns_ioevent(ctx, ev_now(loop));
}
Exemple #2
0
static int dns_module_eventer_callback(eventer_t e, int mask, void *closure,
                                       struct timeval *now) {
  dns_ctx_handle_t *h = closure;
  dns_module_dns_ctx_acquire(h);
  dns_ioevent(h->ctx, now->tv_sec);
  if(dns_module_dns_ctx_release(h)) {
    /* We've been closed */
    return 0;
  }
  return EVENTER_READ | EVENTER_EXCEPTION;
}
Exemple #3
0
/*@null@*/
static PyObject*
Resolver_ioevent (Resolver *self, PyObject *args) {
    time_t now = 0;

    if (!PyArg_ParseTuple(args, "|l", &now)) {
        PyErr_SetString(PyExc_TypeError, "Resolver.ioevent(now=0) wrong arguments.");
        return NULL;
    }

    dns_ioevent(self->ctx, now);

    Py_RETURN_NONE;
}
Exemple #4
0
/** responses from the resolver */
static int _mio_resolver_callback(mio_t m, mio_action_t a, mio_fd_t fd, void *data, void *arg) {

    switch(a) {
        case action_READ:
            log_debug(ZONE, "read action on fd %d", fd->fd);

            dns_ioevent(0, time(NULL));

        default:
            break;
    }

    return 0;
}
Exemple #5
0
static void waitdns(struct ipcheck *ipc) {
  struct timeval tv;
  fd_set fds;
  int c;
  int fd = dns_sock(NULL);
  time_t now = 0;
  FD_ZERO(&fds);
  while((c = dns_timeouts(NULL, -1, now)) > 0) {
    FD_SET(fd, &fds);
    tv.tv_sec = c;
    tv.tv_usec = 0;
    c = select(fd+1, &fds, NULL, NULL, &tv);
    now = time(NULL);
    if (c > 0)
      dns_ioevent(NULL, now);
    if (stopfirst && ipc->listed)
      break;
  }
}
static int dns_cache_callback(eventer_t e, int mask, void *closure,
                              struct timeval *now) {
  struct dns_ctx *ctx = closure;
  dns_ioevent(ctx, now->tv_sec);
  return EVENTER_READ | EVENTER_EXCEPTION;
}
Exemple #7
0
static int dns_eventer_callback(eventer_t e, int mask, void *closure,
                                struct timeval *now) {
  dns_ctx_handle_t *h = closure;
  dns_ioevent(h->ctx, now->tv_sec);
  return EVENTER_READ | EVENTER_EXCEPTION;
}
Exemple #8
0
static void dns_io_cb (EV_P_ ev_io *w, int revents)
{
    ev_tstamp now = ev_now(EV_A );
    dns_ioevent(NULL, now);
}
Exemple #9
0
static void ape_dns_io()
{
	dns_ioevent(NULL, 0);
}