diff --git a/README.md b/README.md index 2de49e4..124e0cd 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ nmrpflash - Netgear Unbrick Utility `nmrpflash` uses Netgear's [NMRP protocol](https://web.archive.org/web/www.chubb.wattle.id.au/PeterChubb/nmrp.html) to flash a new firmware image to a compatible device. It has been successfully tested with various models (D7000, DNG3700v2, EX2700, EX6100v2, EX6120, EX6150v2, EX8000, R6020, R6080, R6100, R6220, R6400, R7000, -R7000P, R6800, R8000, R8000P, R8500, RAX40, RBR40, RBS40, RBR50, RBS50, SRR60, SRS60, WAX202, WNDR3800, WNDR4300, WNDR4500v3, +R7000P, R6800, R8000, R8000P, R8500, RAX40, RAX75, RBR40, RBS40, RBR50, RBS50, SRR60, SRS60, WAX202, WNDR3800, WNDR4300, WNDR4500v3, WNDR4700, WNR3500), but is likely to be compatible with most other Netgear devices as well. Prebuilt binaries for Linux, macOS and Windows are available [here](https://github.com/jclehner/nmrpflash/releases/latest) diff --git a/nmrp.c b/nmrp.c index 2f79e78..87798f0 100644 --- a/nmrp.c +++ b/nmrp.c @@ -497,7 +497,7 @@ int nmrp_do(struct nmrpd_args *args) bool unplugged = true; time_t beg = time_monotonic(); - while (!g_interrupted && (time_monotonic() - beg) < 20) { + while (!g_interrupted && (time_monotonic() - beg) < NMRP_ETH_TIMEOUT_S) { if (!ethsock_is_unplugged(sock)) { unplugged = false; break; @@ -540,7 +540,7 @@ int nmrp_do(struct nmrpd_args *args) } } - if (ethsock_set_timeout(sock, 20)) { + if (ethsock_set_timeout(sock, NMRP_ETH_TIMEOUT_S)) { goto out; } diff --git a/nmrpd.h b/nmrpd.h index c64c14d..da9b817 100644 --- a/nmrpd.h +++ b/nmrpd.h @@ -84,6 +84,8 @@ #define NMRP_DEFAULT_SUBNET "255.255.255.0" #define NMRP_DEFAULT_TFTP_PORT 69 +#define NMRP_ETH_TIMEOUT_S 60 + struct eth_hdr { uint8_t ether_dhost[6]; uint8_t ether_shost[6];