Test and fix primary-read
This commit is contained in:
@@ -193,19 +193,17 @@ int osd_t::handle_epoll_events()
|
||||
else
|
||||
{
|
||||
auto & cl = clients[events[i].data.fd];
|
||||
if (events[i].events & EPOLLRDHUP)
|
||||
if (cl.peer_state == PEER_CONNECTING)
|
||||
{
|
||||
// Either OUT (connected) or HUP
|
||||
handle_connect_result(cl.peer_fd);
|
||||
}
|
||||
else if (events[i].events & EPOLLRDHUP)
|
||||
{
|
||||
// Stop client
|
||||
printf("osd: client %d disconnected\n", cl.peer_fd);
|
||||
stop_client(cl.peer_fd);
|
||||
}
|
||||
else if (cl.peer_state == PEER_CONNECTING)
|
||||
{
|
||||
if (events[i].events & EPOLLOUT)
|
||||
{
|
||||
handle_connect_result(cl.peer_fd);
|
||||
}
|
||||
}
|
||||
else if (!cl.read_ready)
|
||||
{
|
||||
// Mark client as ready (i.e. some data is available)
|
||||
|
||||
Reference in New Issue
Block a user