1
0
mirror of https://gitlab.com/obbart/universal_robots_ros_driver.git synced 2026-04-10 10:00:48 +02:00

Adds multiple retries to accept reverse connection

We observed that the accept failed nondeterministically in rare cases.
This commit is contained in:
Henning Kayser
2017-07-21 17:37:07 +02:00
parent 63691e038e
commit 4375ffecc6

View File

@@ -60,10 +60,14 @@ bool URServer::accept()
struct sockaddr addr; struct sockaddr addr;
socklen_t addr_len; socklen_t addr_len;
int client_fd = ::accept(getSocketFD(), &addr, &addr_len); int client_fd = -1;
if (client_fd <= 0) int retry = 0;
while((client_fd = ::accept(getSocketFD(), &addr, &addr_len)) == -1){
ROS_ERROR_STREAM("Accepting socket connection failed. (errno: " << errno << ")");
if(retry++ >= 5)
return false; return false;
}
setOptions(client_fd); setOptions(client_fd);