summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--release/sysinstall/ftp.c8
-rw-r--r--usr.sbin/sysinstall/ftp.c8
2 files changed, 6 insertions, 10 deletions
diff --git a/release/sysinstall/ftp.c b/release/sysinstall/ftp.c
index 3814dc2..3b4b01d 100644
--- a/release/sysinstall/ftp.c
+++ b/release/sysinstall/ftp.c
@@ -190,19 +190,17 @@ mediaGetFTP(Device *dev, char *file, Boolean probe)
while ((fp = ftpGet(OpenConn, try, 0)) == NULL) {
/* If a hard fail, try to "bounce" the ftp server to clear it */
if (ftpErrno(OpenConn) != 550) {
- char *cp = variable_get(VAR_FTP_PATH);
-
dev->shutdown(dev);
- variable_unset(VAR_FTP_PATH);
+ if (ftpErrno(OpenConn) != 421)) /* Timeout? */
+ variable_unset(VAR_FTP_PATH);
/* If we can't re-initialize, just forget it */
if (!dev->init(dev)) {
netDown(dev);
fclose(OpenConn);
OpenConn = NULL;
+ variable_unset(VAR_FTP_PATH);
return NULL;
}
- else
- variable_set2(VAR_FTP_PATH, cp);
}
else if (probe)
return NULL;
diff --git a/usr.sbin/sysinstall/ftp.c b/usr.sbin/sysinstall/ftp.c
index 3814dc2..3b4b01d 100644
--- a/usr.sbin/sysinstall/ftp.c
+++ b/usr.sbin/sysinstall/ftp.c
@@ -190,19 +190,17 @@ mediaGetFTP(Device *dev, char *file, Boolean probe)
while ((fp = ftpGet(OpenConn, try, 0)) == NULL) {
/* If a hard fail, try to "bounce" the ftp server to clear it */
if (ftpErrno(OpenConn) != 550) {
- char *cp = variable_get(VAR_FTP_PATH);
-
dev->shutdown(dev);
- variable_unset(VAR_FTP_PATH);
+ if (ftpErrno(OpenConn) != 421)) /* Timeout? */
+ variable_unset(VAR_FTP_PATH);
/* If we can't re-initialize, just forget it */
if (!dev->init(dev)) {
netDown(dev);
fclose(OpenConn);
OpenConn = NULL;
+ variable_unset(VAR_FTP_PATH);
return NULL;
}
- else
- variable_set2(VAR_FTP_PATH, cp);
}
else if (probe)
return NULL;
OpenPOWER on IntegriCloud