From 25cda736e6d07b4914787f322308be3084979f27 Mon Sep 17 00:00:00 2001 From: "Joseph C. Lehner" Date: Mon, 17 Aug 2020 12:29:58 +0200 Subject: [PATCH] Increase NMRP timeout to 1s --- main.c | 2 +- nmrp.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/main.c b/main.c index be62288..bc9c6f2 100644 --- a/main.c +++ b/main.c @@ -131,7 +131,7 @@ int main(int argc, char **argv) int c, val, max; bool list = false, have_dest_mac = false; struct nmrpd_args args = { - .rx_timeout = 200, + .rx_timeout = 1000, .ul_timeout = 5 * 60, .tftpcmd = NULL, .file_local = NULL, diff --git a/nmrp.c b/nmrp.c index a476c5f..d6c866e 100644 --- a/nmrp.c +++ b/nmrp.c @@ -229,7 +229,7 @@ static void msg_mkconfack(struct nmrp_msg *msg, uint32_t ipaddr, uint32_t ipmask } #ifdef NMRPFLASH_FUZZ -#define NMRP_INITIAL_TIMEOUT 0 +#define NMRP_ADVERTISE_TIMEOUT 0 #define ethsock_create(a, b) ((struct ethsock*)1) #define ethsock_get_hwaddr(a) ethsock_get_hwaddr_fake(a) #define ethsock_recv(sock, buf, len) read(STDIN_FILENO, buf, len) @@ -249,7 +249,7 @@ static uint8_t *ethsock_get_hwaddr_fake(struct ethsock* sock) return hwaddr; } #else -#define NMRP_INITIAL_TIMEOUT 60 +#define NMRP_ADVERTISE_TIMEOUT 60 #endif static int pkt_send(struct ethsock *sock, struct nmrp_pkt *pkt) @@ -465,7 +465,7 @@ int nmrp_do(struct nmrpd_args *args) } } - if (ethsock_set_timeout(sock, args->rx_timeout)) { + if (ethsock_set_timeout(sock, 200)) { goto out; } @@ -483,7 +483,7 @@ int nmrp_do(struct nmrpd_args *args) i = 0; upload_ok = 0; fake = 0; - timeout = args->blind ? 10 : NMRP_INITIAL_TIMEOUT; + timeout = args->blind ? 10 : NMRP_ADVERTISE_TIMEOUT; beg = time_monotonic(); while (!g_interrupted) { @@ -535,6 +535,10 @@ int nmrp_do(struct nmrpd_args *args) goto out; } + if (ethsock_set_timeout(sock, args->rx_timeout)) { + goto out; + } + expect = NMRP_C_CONF_REQ; ulreqs = 0; ka_reqs = 0;