tnc-pdp: Don't remove watcher callbacks on failures

This commit is contained in:
Tobias Brunner
2026-07-23 10:26:08 +02:00
parent 2cea90423a
commit dc8fa5fea5
+8 -5
View File
@@ -655,9 +655,12 @@ static bool pt_tls_receive(private_tnc_pdp_t *this, int fd, watcher_event_t even
pt_tls_fd = accept(fd, (sockaddr_t*)&addr, &addrlen); pt_tls_fd = accept(fd, (sockaddr_t*)&addr, &addrlen);
if (pt_tls_fd == -1) if (pt_tls_fd == -1)
{
if (errno != EINTR)
{ {
DBG1(DBG_TNC, "accepting PT-TLS stream failed: %s", strerror(errno)); DBG1(DBG_TNC, "accepting PT-TLS stream failed: %s", strerror(errno));
return FALSE; }
return TRUE;
} }
client_ip = host_create_from_sockaddr((sockaddr_t*)&addr); client_ip = host_create_from_sockaddr((sockaddr_t*)&addr);
DBG1(DBG_TNC, "accepting PT-TLS stream from %H", client_ip); DBG1(DBG_TNC, "accepting PT-TLS stream from %H", client_ip);
@@ -680,7 +683,7 @@ static bool pt_tls_receive(private_tnc_pdp_t *this, int fd, watcher_event_t even
{ {
DBG1(DBG_TNC, "could not create TNCCS 2.0 connection instance"); DBG1(DBG_TNC, "could not create TNCCS 2.0 connection instance");
close(pt_tls_fd); close(pt_tls_fd);
return FALSE; return TRUE;
} }
pt_tls = pt_tls_server_create(this->server, pt_tls_fd, auth, tnccs); pt_tls = pt_tls_server_create(this->server, pt_tls_fd, auth, tnccs);
@@ -688,7 +691,7 @@ static bool pt_tls_receive(private_tnc_pdp_t *this, int fd, watcher_event_t even
{ {
DBG1(DBG_TNC, "could not create PT-TLS connection instance"); DBG1(DBG_TNC, "could not create PT-TLS connection instance");
close(pt_tls_fd); close(pt_tls_fd);
return FALSE; return TRUE;
} }
lib->watcher->add(lib->watcher, pt_tls_fd, WATCHER_READ, lib->watcher->add(lib->watcher, pt_tls_fd, WATCHER_READ,
@@ -734,12 +737,12 @@ static bool radius_receive(private_tnc_pdp_t *this, int fd, watcher_event_t even
if (bytes_read < 0) if (bytes_read < 0)
{ {
DBG1(DBG_CFG, "error reading RADIUS socket: %s", strerror(errno)); DBG1(DBG_CFG, "error reading RADIUS socket: %s", strerror(errno));
return FALSE; return TRUE;
} }
if (msg.msg_flags & MSG_TRUNC) if (msg.msg_flags & MSG_TRUNC)
{ {
DBG1(DBG_CFG, "receive buffer too small, RADIUS packet discarded"); DBG1(DBG_CFG, "receive buffer too small, RADIUS packet discarded");
return FALSE; return TRUE;
} }
source = host_create_from_sockaddr((sockaddr_t*)&src); source = host_create_from_sockaddr((sockaddr_t*)&src);
DBG2(DBG_CFG, "received RADIUS packet from %#H", source); DBG2(DBG_CFG, "received RADIUS packet from %#H", source);