Improve handling of file read results.

This commit is contained in:
Michael Ossmann
2022-09-23 05:17:55 -04:00
parent db33e1bdaf
commit 8fbaf1336c

View File

@ -513,17 +513,18 @@ int tx_callback(hackrf_transfer* transfer)
/* Read samples from file. */ /* Read samples from file. */
bytes_read = fread(transfer->buffer, 1, bytes_to_read, file); bytes_read = fread(transfer->buffer, 1, bytes_to_read, file);
/* Terminate immediately on error. */ /* If no more bytes, error or file empty, terminate. */
if (ferror(file)) { if (bytes_read == 0) {
fprintf(stderr, "Could not read input file.\n"); /* Report any error. */
stop_main_loop(); if (ferror(file)) {
return -1; fprintf(stderr, "Could not read input file.\n");
} stop_main_loop();
return -1;
/* Finish TX if no more data can be read. */ }
if ((bytes_read == 0) && (ftell(file) < 1)) { if (ftell(file) < 1) {
tx_complete = true; stop_main_loop();
return 0; return -1;
}
} }
} }
@ -561,8 +562,16 @@ int tx_callback(hackrf_transfer* transfer)
/* If no more bytes, error or file empty, use what we have. */ /* If no more bytes, error or file empty, use what we have. */
if (extra_bytes_read == 0) { if (extra_bytes_read == 0) {
tx_complete = true; /* Report any error. */
return 0; if (ferror(file)) {
fprintf(stderr, "Could not read input file.\n");
tx_complete = true;
return 0;
}
if (ftell(file) < 1) {
tx_complete = true;
return 0;
}
} }
bytes_read += extra_bytes_read; bytes_read += extra_bytes_read;