diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index 1636eaf57..4c675da1f 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -490,6 +490,8 @@ static int scanfc(FILE *fin, const char *format, void *p) } if (ret < 1) rig_debug(RIG_DEBUG_TRACE, "%s: ret=%d\n", __func__, ret); + if (ferror(fin)) rig_debug(RIG_DEBUG_TRACE, "%s: errno=%d\n", __func__, errno); + return ret; } while (1); @@ -626,11 +628,10 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, do { - if (scanfc(fin, "%c", &cmd) < 1) + if ((retcode = scanfc(fin, "%c", &cmd)) < 1) { - rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#1?\n", __func__); - cmd = 0x0a; // setting 0x0a as though CR/LF was sent - hl_usleep(200*1e6); + rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#1? retcode=%d\n", __func__, retcode); + return -1; } /* Extended response protocol requested with leading '+' on command diff --git a/tests/rigctld.c b/tests/rigctld.c index 6f1c7f8ff..87f3ce111 100644 --- a/tests/rigctld.c +++ b/tests/rigctld.c @@ -1031,7 +1031,7 @@ void *handle_socket(void *arg) retcode = 1; } - if (retcode == 1) + if (retcode == 1 || retcode == -1) { retcode = rig_close(my_rig); rig_debug(RIG_DEBUG_ERR,"%s: rig_close retcode=%d\n", __func__, retcode);