mirror of
https://github.com/OpenVPN/openvpn.git
synced 2024-09-20 12:02:28 +02:00
log file descriptor in more socket related error messages
This add the fd to the epoll event error message and the x_check_status message. This helps debugging when thing go wrong with event handling. Also add logging when ep_del fails to remove a socket from the structure. In constract to ep_ctl that has this as a FATAL message (M_ERR), we only log here since the code has been ignoring the status forever there might be corner cases where a FATAL message could trigger an unintened regression. PATCH v2: Fix wrong order of fd,code in printed message. Signed-off-by: Arne Schwabe <arne@rfc2549.org> Acked-by: Gert Doering <gert@greenie.muc.de> Message-Id: <20210403123000.17688-1-arne@rfc2549.org> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg22008.html Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
parent
c5fec838e7
commit
8ccce69dc1
@ -690,15 +690,15 @@ x_check_status(int status,
|
|||||||
{
|
{
|
||||||
if (extended_msg)
|
if (extended_msg)
|
||||||
{
|
{
|
||||||
msg(x_cs_info_level, "%s %s [%s]: %s (code=%d)", description,
|
msg(x_cs_info_level, "%s %s [%s]: %s (fd=%d,code=%d)", description,
|
||||||
sock ? proto2ascii(sock->info.proto, sock->info.af, true) : "",
|
sock ? proto2ascii(sock->info.proto, sock->info.af, true) : "",
|
||||||
extended_msg, strerror(my_errno), my_errno);
|
extended_msg, strerror(my_errno), sock ? sock->sd : -1, my_errno);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
msg(x_cs_info_level, "%s %s: %s (code=%d)", description,
|
msg(x_cs_info_level, "%s %s: %s (fd=%d,code=%d)", description,
|
||||||
sock ? proto2ascii(sock->info.proto, sock->info.af, true) : "",
|
sock ? proto2ascii(sock->info.proto, sock->info.af, true) : "",
|
||||||
strerror(my_errno), my_errno);
|
strerror(my_errno), sock ? sock->sd : -1, my_errno);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x_cs_err_delay_ms)
|
if (x_cs_err_delay_ms)
|
||||||
|
@ -555,7 +555,10 @@ ep_del(struct event_set *es, event_t event)
|
|||||||
|
|
||||||
ASSERT(!eps->fast);
|
ASSERT(!eps->fast);
|
||||||
CLEAR(ev);
|
CLEAR(ev);
|
||||||
epoll_ctl(eps->epfd, EPOLL_CTL_DEL, event, &ev);
|
if (epoll_ctl(eps->epfd, EPOLL_CTL_DEL, event, &ev) < 0)
|
||||||
|
{
|
||||||
|
msg(M_WARN|M_ERRNO, "EVENT: epoll_ctl EPOLL_CTL_DEL failed, sd=%d", (int)event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -844,7 +847,8 @@ po_wait(struct event_set *es, const struct timeval *tv, struct event_set_return
|
|||||||
}
|
}
|
||||||
else if (pfdp->revents)
|
else if (pfdp->revents)
|
||||||
{
|
{
|
||||||
msg(D_EVENT_ERRORS, "Error: poll: unknown revents=0x%04x", (unsigned int)pfdp->revents);
|
msg(D_EVENT_ERRORS, "Error: poll: unknown revents=0x%04x for fd=%d",
|
||||||
|
(unsigned int)pfdp->revents, pfdp->fd);
|
||||||
}
|
}
|
||||||
++pfdp;
|
++pfdp;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user