Merge remote-tracking branch 'origin/patches-2.0'

This commit is contained in:
Nick Mathewson 2012-01-09 12:00:04 -05:00
commit d5a3fe5f3e
2 changed files with 9 additions and 3 deletions

View File

@ -1127,7 +1127,7 @@ event_signal_closure(struct event_base *base, struct event *ev)
ev->ev_ncalls = ncalls;
if (ncalls == 0)
ev->ev_pncalls = NULL;
(*ev->ev_callback)((int)ev->ev_fd, ev->ev_res, ev->ev_arg);
(*ev->ev_callback)(ev->ev_fd, ev->ev_res, ev->ev_arg);
EVBASE_ACQUIRE_LOCK(base, th_base_lock);
should_break = base->event_break;
@ -1358,7 +1358,7 @@ event_persist_closure(struct event_base *base, struct event *ev)
event_add_internal(ev, &run_at, 1);
}
EVBASE_RELEASE_LOCK(base, th_base_lock);
(*ev->ev_callback)((int)ev->ev_fd, ev->ev_res, ev->ev_arg);
(*ev->ev_callback)(ev->ev_fd, ev->ev_res, ev->ev_arg);
}
/*
@ -1409,7 +1409,7 @@ event_process_active_single_queue(struct event_base *base,
case EV_CLOSURE_NONE:
EVBASE_RELEASE_LOCK(base, th_base_lock);
(*ev->ev_callback)(
(int)ev->ev_fd, ev->ev_res, ev->ev_arg);
ev->ev_fd, ev->ev_res, ev->ev_arg);
break;
}

View File

@ -392,6 +392,12 @@ listener_read_cb(evutil_socket_t fd, short what, void *p)
evutil_socket_t new_fd = accept(fd, (struct sockaddr*)&ss, &socklen);
if (new_fd < 0)
break;
if (socklen == 0) {
/* This can happen with some older linux kernels in
* response to nmap. */
evutil_closesocket(new_fd);
continue;
}
if (!(lev->flags & LEV_OPT_LEAVE_SOCKETS_BLOCKING))
evutil_make_socket_nonblocking(new_fd);