Change select_fd args to microseconds
authorJoseph C. Lehner <joseph.c.lehner@gmail.com>
Mon, 2 Mar 2020 07:45:21 +0000 (08:45 +0100)
committerJoseph C. Lehner <joseph.c.lehner@gmail.com>
Mon, 2 Mar 2020 07:45:21 +0000 (08:45 +0100)
ethsock.c
main.c
nmrpd.h
tftp.c

index 838f6bf6092fa63c0ec4889cada249782bdf098e..b346ce9c2fc371a8c23770e923336a640ed10b3b 100644 (file)
--- a/ethsock.c
+++ b/ethsock.c
@@ -640,8 +640,8 @@ int select_fd(int fd, unsigned timeout)
        FD_ZERO(&fds);
        FD_SET(fd, &fds);
 
-       tv.tv_sec = timeout / 1000;
-       tv.tv_usec = 1000 * (timeout % 1000);
+       tv.tv_sec = timeout / 1000000;
+       tv.tv_usec = timeout % 1000000;
 
        status = select(fd + 1, &fds, NULL, NULL, &tv);
        if (status < 0) {
diff --git a/main.c b/main.c
index 6dda5e8072fdb4d1b3186216687617da4c9a05bf..242e7be77b52839fb9ba2e94e0e3026b5dda596f 100644 (file)
--- a/main.c
+++ b/main.c
@@ -33,14 +33,14 @@ void usage(FILE *fp)
                        "Options (-i, -f and/or -c are mandatory):\n"
                        " -a <ipaddr>     IP address to assign to target device\n"
                        " -A <ipaddr>     IP address to assign to seleted interface\n"
-                       " -B              Blind mode (don't wait for NMRP responses)\n"
+                       " -B              Blind mode (don't wait for response packets)\n"
                        " -c <command>    Command to run before (or instead of) TFTP upload\n"
                        " -f <firmware>   Firmware file\n"
                        " -F <filename>   Remote filename to use during TFTP upload\n"
                        " -i <interface>  Network interface directly connected to device\n"
                        " -m <mac>        MAC address of target device (xx:xx:xx:xx:xx:xx)\n"
                        " -M <netmask>    Subnet mask to assign to target device\n"
-                       " -t <timeout>    Timeout (in milliseconds) for regular messages\n"
+                       " -t <timeout>    Timeout (in milliseconds) for NMRP packets\n"
                        " -T <timeout>    Time (seconds) to wait after successfull TFTP upload\n"
                        " -p <port>       Port to use for TFTP upload\n"
 #ifdef NMRPFLASH_SET_REGION
@@ -133,7 +133,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 = NMRPFLASH_DEF_RX_TIMEOUT * 1000,
                .ul_timeout = 5 * 60 * 1000,
                .tftpcmd = NULL,
                .file_local = NULL,
@@ -235,7 +235,7 @@ int main(int argc, char **argv)
                                if (c == 'p') {
                                        args.port = val;
                                } else if (c == 't') {
-                                       args.rx_timeout = val;
+                                       args.rx_timeout = val * 1000;
                                } else if (c == 'T') {
                                        args.ul_timeout = val * 1000;
                                }
diff --git a/nmrpd.h b/nmrpd.h
index d65c8116003c339e8f614e835deb3dc5bb191248..c1dc77ee14ef10de15ab013426268920f47171ef 100644 (file)
--- a/nmrpd.h
+++ b/nmrpd.h
@@ -72,6 +72,8 @@
 
 #define NMRPFLASH_SET_REGION
 
+#define NMRPFLASH_DEF_RX_TIMEOUT 200
+
 struct eth_hdr {
        uint8_t ether_dhost[6];
        uint8_t ether_shost[6];
diff --git a/tftp.c b/tftp.c
index 9fd361aab2d6bde2ede93b3abdb4507c11b52bd7..5c376934c2f3e1b1a0cda5e3f53bcf02231ebf01 100644 (file)
--- a/tftp.c
+++ b/tftp.c
@@ -315,7 +315,7 @@ int tftp_put(struct nmrpd_args *args)
        const char *file_remote = args->file_remote;
        char *val, *end;
        bool rollover;
-       unsigned rx_timeout = MAX(args->rx_timeout / 200, 1);
+       unsigned rx_timeout = MAX(args->rx_timeout / NMRPFLASH_DEF_RX_TIMEOUT, 1000);
 
        sock = -1;
        ret = -1;