diff options
-rw-r--r-- | cmd.c | 6 | ||||
-rw-r--r-- | serial.c | 6 | ||||
-rw-r--r-- | zup.c | 5 |
3 files changed, 14 insertions, 3 deletions
@@ -195,7 +195,11 @@ cmd_write(int fd, const struct command *cmd, int argc, char **args) } } - puts("\nDone!"); + putchar('\n'); + + if (!err) + puts("Done!"); + fclose(fp); } else if (param.human_readable) { do { @@ -206,6 +206,9 @@ read_buf(int fd, size_t len, void *_buf) } else { write_ack(fd, NACK); } + + /* Wait 2 ms between attempts */ + usleep(2000); } err = ERR_NACK; @@ -249,6 +252,9 @@ write_buf(int fd, size_t len, const void *_buf) if (err != NACK) goto error; + + /* Wait 2 ms between attempts */ + usleep(2000); } error: @@ -128,7 +128,7 @@ parse_options(int argc, char *const argv[]) case 'a': errno = 0; param.max_attempts = strtoul(optarg, NULL, 10); - if (errno) { + if (errno || !optarg || strlen(optarg) == 0) { perror("Invalid attempts number\n"); exit(EXIT_FAILURE); } @@ -232,7 +232,8 @@ struct param param = { .verbose = 0, .human_readable = 0, .repl = 0, - .show_progress = 0 + .show_progress = 0, + .max_attempts = 5 }; // TODO: Support stdin/stdout |