Remove two last end()s from http_client (should have been removed in the keepalive patch)

non-odp-rdma
Vitaliy Filippov 2022-01-20 00:44:18 +03:00
parent 8a6b07d8f7
commit a43ef525a2
1 changed files with 25 additions and 7 deletions

View File

@ -283,6 +283,7 @@ void http_co_t::start_connection()
int r = ::connect(peer_fd, (sockaddr*)&addr, sizeof(addr)); int r = ::connect(peer_fd, (sockaddr*)&addr, sizeof(addr));
if (r < 0 && errno != EINPROGRESS) if (r < 0 && errno != EINPROGRESS)
{ {
close_connection();
parsed = { .error = std::string("connect: ")+strerror(errno) }; parsed = { .error = std::string("connect: ")+strerror(errno) };
response_callback(&parsed); response_callback(&parsed);
response_callback = NULL; response_callback = NULL;
@ -344,9 +345,12 @@ void http_co_t::handle_connect_result()
if (result != 0) if (result != 0)
{ {
close_connection(); close_connection();
parsed = { .error = std::string("connect: ")+strerror(result) }; if (response_callback != NULL)
response_callback(&parsed); {
response_callback = NULL; parsed = { .error = std::string("connect: ")+strerror(result) };
response_callback(&parsed);
response_callback = NULL;
}
stackout(); stackout();
return; return;
} }
@ -383,8 +387,14 @@ again:
} }
else if (res < 0) else if (res < 0)
{ {
close_connection();
if (response_callback != NULL)
{
parsed = { .error = std::string("sendmsg: ")+strerror(errno) };
response_callback(&parsed);
response_callback = NULL;
}
stackout(); stackout();
end();
return; return;
} }
sent += res; sent += res;
@ -428,9 +438,17 @@ void http_co_t::submit_read()
else if (res <= 0) else if (res <= 0)
{ {
// < 0 means error, 0 means EOF // < 0 means error, 0 means EOF
if (!res) epoll_events = epoll_events & ~EPOLLIN;
epoll_events = epoll_events & ~EPOLLIN; close_connection();
end(); if (res < 0)
parsed = { .error = std::string("recvmsg: ")+strerror(-res) };
else
parsed.eof = true;
if (response_callback != NULL)
{
response_callback(&parsed);
response_callback = NULL;
}
} }
else else
{ {