Avoid 2nd start of the simulation server

udp_server() is being called second time during the simulated run, which
fails due to trying to claim already used port. This patch adds cache to
the udp_server() result.

Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
This commit is contained in:
Szczepan Zalega 2019-01-05 13:49:58 +01:00
parent 600b2a61fe
commit ca27b26c6b
No known key found for this signature in database
GPG Key ID: D9BAE35991DE5B22

View File

@ -54,7 +54,11 @@ void device_set_status(int status)
int udp_server() int udp_server()
{ {
int fd; static bool run_already = false;
static int fd = -1;
if (run_already && fd >= 0) return fd;
run_already = true;
if ( (fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0 ) { if ( (fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0 ) {
perror( "socket failed" ); perror( "socket failed" );
return 1; return 1;