Set errno in CListener::Listen()

CSocket doesn't necessarily set errno, but the callers of Listen() assume an
error message in errno.

Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
Uli Schlachter
2011-05-13 17:24:10 +02:00
parent 3034d1f81a
commit 3e591e7043

View File

@@ -16,6 +16,7 @@ CListener::~CListener() {
bool CListener::Listen() {
if (!m_uPort || m_pListener) {
errno = EINVAL;
return false;
}
@@ -29,6 +30,10 @@ bool CListener::Listen() {
}
#endif
// If e.g. getaddrinfo() fails, the following might not set errno.
// Make sure there is a consistent error message, not something random
// which might even be "Error: Success".
errno = EINVAL;
return CZNC::Get().GetManager().ListenHost(m_uPort, "_LISTENER", m_sBindHost, bSSL, SOMAXCONN,
m_pListener, 0, m_eAddr);
}