#include #include #include #include #include #include #include #include #include #include #include #define SERVER_PORT 54321 #define TURN_LEN_S 5 #define TURN_LEN_MS (1000 * TURN_LEN_S) #define TURN_LEN_US (1000000 * TURN_LEN_S) #define NS_TO_MS(X) ((long)(X) / (long)1000000) #define S_TO_MS(X) ((long)(X) * (long)1000) struct router_addr { struct in_addr addr; uint16_t distance; uint8_t netmask; }; struct in_addr get_broadcast_address(struct router_addr ra) { struct in_addr result = ra.addr; /* bitshift by more than 31 is UB */ if (ra.netmask < 32) { result.s_addr |= ~((1<