mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-10 04:50:37 -04:00
Merge remote-tracking branch 'origin/patches-2.0'
This commit is contained in:
commit
d5a3fe5f3e
6
event.c
6
event.c
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user