Make udp_proxy more robust
There seemed to be some race conditions with server closing its fd right after
sending HelloVerifyRequest causing the proxy to exit after a failed read.
diff --git a/programs/test/udp_proxy.c b/programs/test/udp_proxy.c
index 110a7c7..782fe62 100644
--- a/programs/test/udp_proxy.c
+++ b/programs/test/udp_proxy.c
@@ -545,6 +545,9 @@
/*
* 3. Forward packets forever (kill the process to terminate it)
*/
+ clear_pending();
+ memset( dropped, 0, sizeof( dropped ) );
+
nb_fds = client_fd;
if( nb_fds < server_fd )
nb_fds = server_fd;
@@ -566,24 +569,20 @@
}
if( FD_ISSET( listen_fd, &read_fds ) )
- {
- clear_pending();
- memset( dropped, 0, sizeof( dropped ) );
goto accept;
- }
if( FD_ISSET( client_fd, &read_fds ) )
{
if( ( ret = handle_message( "S <- C",
server_fd, client_fd ) ) != 0 )
- goto exit;
+ goto accept;
}
if( FD_ISSET( server_fd, &read_fds ) )
{
if( ( ret = handle_message( "S -> C",
client_fd, server_fd ) ) != 0 )
- goto exit;
+ goto accept;
}
}