From 78e0ec5f0389f09fe81546235724933e6a37ba6e Mon Sep 17 00:00:00 2001 From: losgrandes <pwajda@gmail.net.pl> Date: Wed, 19 Oct 2016 11:53:23 +0200 Subject: [PATCH] Fixes #46584: wget --spider always returns zero exit status * src/ftp.c: Return error as exit value if even one file doesn't exist --- src/ftp.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/ftp.c b/src/ftp.c index 39f20fa0..947d8f20 100644 --- a/src/ftp.c +++ b/src/ftp.c @@ -1191,6 +1191,7 @@ Error in server response, closing control connection.\n")); if (opt.spider) { bool exists = false; + bool all_exist = true; struct fileinfo *f; uerr_t _res = ftp_get_listing (u, original_url, con, &f); /* Set the DO_RETR command flag again, because it gets unset when @@ -1206,6 +1207,8 @@ Error in server response, closing control connection.\n")); { exists = true; break; + } else { + all_exist = false; } f = f->next; } @@ -1226,7 +1229,11 @@ Error in server response, closing control connection.\n")); con->csock = -1; fd_close (dtsock); fd_close (local_sock); - return RETRFINISHED; + if (all_exist) { + return RETRFINISHED; + } else { + return FTPNSFOD; + } } if (opt.verbose)