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;
|
ev->ev_ncalls = ncalls;
|
||||||
if (ncalls == 0)
|
if (ncalls == 0)
|
||||||
ev->ev_pncalls = NULL;
|
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);
|
EVBASE_ACQUIRE_LOCK(base, th_base_lock);
|
||||||
should_break = base->event_break;
|
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);
|
event_add_internal(ev, &run_at, 1);
|
||||||
}
|
}
|
||||||
EVBASE_RELEASE_LOCK(base, th_base_lock);
|
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:
|
case EV_CLOSURE_NONE:
|
||||||
EVBASE_RELEASE_LOCK(base, th_base_lock);
|
EVBASE_RELEASE_LOCK(base, th_base_lock);
|
||||||
(*ev->ev_callback)(
|
(*ev->ev_callback)(
|
||||||
(int)ev->ev_fd, ev->ev_res, ev->ev_arg);
|
ev->ev_fd, ev->ev_res, ev->ev_arg);
|
||||||
break;
|
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);
|
evutil_socket_t new_fd = accept(fd, (struct sockaddr*)&ss, &socklen);
|
||||||
if (new_fd < 0)
|
if (new_fd < 0)
|
||||||
break;
|
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))
|
if (!(lev->flags & LEV_OPT_LEAVE_SOCKETS_BLOCKING))
|
||||||
evutil_make_socket_nonblocking(new_fd);
|
evutil_make_socket_nonblocking(new_fd);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user