mirror of
https://github.com/yrutschle/sslh.git
synced 2026-10-22 18:12:10 +03:00
udp_c2s_forward: silently ignor EAGAIN/EWOULDBLOCK on recvfrom (fix #534)
This commit is contained in:
1 parent
dc70cc0d3b
commit
a8352c137c
2 files changed
+7
-5
No files matched your search
@@ -1,4 +1,7 @@
|
||||
vNEXT:
|
||||
Silently ignore EAGAIN/EWOULDBLOCK to avoid
|
||||
spurrious error logs upon UDP port scans.
|
||||
|
||||
verbose_packet now also dumps UDP packets.
|
||||
|
||||
v2.3.1:
|
||||
|
||||
+4
-5
@@ -273,10 +273,9 @@ struct connection* udp_c2s_forward(int sockfd, struct loop_info* fd_info)
|
||||
|
||||
addrlen = sizeof(src_addr);
|
||||
len = recvfrom(sockfd, data, sizeof(data), 0, (struct sockaddr*) &src_addr, &addrlen);
|
||||
if (len < 0) {
|
||||
perror("recvfrom");
|
||||
return NULL;
|
||||
}
|
||||
if ((len == -1) && ((errno == EAGAIN) || (errno == EWOULDBLOCK))) return NULL;
|
||||
CHECK_RES_DIE(len, "udp_listener/c2s/recvfrom");
|
||||
|
||||
target = known_source(fd_info->hash_sources, &src_addr, addrlen);
|
||||
addrinfo.ai_addr = (struct sockaddr*) &src_addr;
|
||||
addrinfo.ai_addrlen = addrlen;
|
||||
@@ -337,7 +336,7 @@ void udp_s2c_forward(struct connection* cnx)
|
||||
|
||||
res = recvfrom(sockfd, data, sizeof(data), 0, NULL, NULL);
|
||||
if ((res == -1) && ((errno == EAGAIN) || (errno == EWOULDBLOCK))) return;
|
||||
CHECK_RES_DIE(res, "udp_listener/recvfrom");
|
||||
CHECK_RES_DIE(res, "udp_listener/s2c/recvfrom");
|
||||
res = sendto(cnx->local_endpoint, data, res, 0,
|
||||
(struct sockaddr*)&cnx->client_addr, cnx->addrlen);
|
||||
mark_active(cnx);
|
||||
|
||||
Reference in new issue
Block a user