From: Joseph C. Lehner Date: Mon, 8 Feb 2016 10:55:25 +0000 (+0100) Subject: Adjust tftp_put return values X-Git-Tag: v0.9~21 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=917b2d95781d62f2123a764616112f517bdd6a99;p=oweals%2Fnmrpflash.git Adjust tftp_put return values --- diff --git a/nmrp.c b/nmrp.c index 7eda870..77ed647 100644 --- a/nmrp.c +++ b/nmrp.c @@ -436,8 +436,9 @@ int nmrp_do(struct nmrpd_args *args) printf("OK\nWaiting for remote to respond.\n"); ethsock_set_timeout(sock, args->ul_timeout); expect = NMRP_C_CLOSE_REQ; + } else if (err == -2) { + expect = NMRP_C_TFTP_UL_REQ; } else { - printf("\n"); goto out; } diff --git a/tftp.c b/tftp.c index ffeff2b..bb9bdb1 100644 --- a/tftp.c +++ b/tftp.c @@ -149,12 +149,12 @@ static ssize_t tftp_recvfrom(int sock, char *pkt, uint16_t* port, * at offset 0. The limit of 32 chars is arbitrary. */ fprintf(stderr, "Error: %.32s\n", pkt); - return -3; + return -2; } else if (!opcode || opcode > ERR) { fprintf(stderr, "Received invalid packet: "); pkt_print(pkt, stderr); fprintf(stderr, ".\n"); - return -2; + return -1; } if (verbosity > 2) { @@ -307,8 +307,12 @@ int tftp_put(struct nmrpd_args *args) } else if (!ret) { if (++timeout < 5) { continue; + } else if (block) { + fprintf(stderr, "Timeout while waiting for ACK(%d).\n", block); + } else { + fprintf(stderr, "Timeout while waiting for initial reply.\n"); } - fprintf(stderr, "Timeout while waiting for ACK(%d).\n", block); + ret = -1; goto cleanup; } else { timeout = 0;