Don't trust ncftp's exit status, they are not indicative of whether

the file is fetched or not.  Apparently Jordan fixed it a long time
ago but it was broken again at import of the new version of ncftp.
Which means even if we fix it, it may break again and we may need to
fix it again, and (imagination here, please)....

Instead, move the file existence check into the for loop for
MASTER_SITES/PATCH_SITES and break out with "continue 2" when the file
is found.  This is actually a cleaner logic than before if you ask me,
because instead of assuming the file is fetched on a 0 exit status
from ncftp AND checking for the existence of the file after the loop,
the check is done exactly once for each iteration and nowhere else.
This commit is contained in:
Satoshi Asami 1995-08-29 11:57:40 +00:00
parent 7daa3c4b5a
commit 00f4a8c7f8
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=10412

View File

@ -456,15 +456,14 @@ do-fetch:
${ECHO_MSG} ">> $$file doesn't seem to exist on this system."; \
for site in ${MASTER_SITES}; do \
${ECHO_MSG} ">> Attempting to fetch from $${site}"; \
if ${NCFTP} ${NCFTPFLAGS} $${site}$${file}; then \
break; \
(${NCFTP} ${NCFTPFLAGS} $${site}$${file} || true); \
if [ -f $$file -o -f `/usr/bin/basename $$file` ]; then \
continue 2; \
fi \
done; \
if [ ! -f $$file -a ! -f `/usr/bin/basename $$file` ]; then \
${ECHO_MSG} ">> Couldn't fetch it - please try to retreive this";\
${ECHO_MSG} ">> port manually into ${DISTDIR} and try again."; \
exit 1; \
fi; \
fi \
done)
.if defined(PATCHFILES)
@ -475,15 +474,14 @@ do-fetch:
${ECHO_MSG} ">> $$file doesn't seem to exist on this system."; \
for site in ${PATCH_SITES}; do \
${ECHO_MSG} ">> Attempting to fetch from $${site}."; \
if ${NCFTP} ${NCFTPFLAGS} $${site}$${file}; then \
break; \
(${NCFTP} ${NCFTPFLAGS} $${site}$${file} || true); \
if [ -f $$file -o -f `/usr/bin/basename $$file` ]; then \
continue 2; \
fi \
done; \
if [ ! -f $$file -a ! -f `/usr/bin/basename $$file` ]; then \
${ECHO_MSG} ">> Couldn't fetch it - please try to retreive this";\
${ECHO_MSG} ">> port manually into ${PATCHDIST} and try again."; \
exit 1; \
fi; \
fi \
done)
.endif