From b5b673ff993e74b6db9b6d437e7a438f032cf9c5 Mon Sep 17 00:00:00 2001 From: "Jordan K. Hubbard" Date: Tue, 21 Jan 1997 20:37:59 +0000 Subject: [PATCH] Only send QUIT if the last operation didn't time out (otherwise you're just going to hang forever on the close). --- lib/libftpio/ftpio.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/libftpio/ftpio.c b/lib/libftpio/ftpio.c index b82efaf69559..7419c37717b4 100644 --- a/lib/libftpio/ftpio.c +++ b/lib/libftpio/ftpio.c @@ -611,8 +611,11 @@ ftp_close(FTP_t ftp) if (ftp->con_state == isopen) { ftp->con_state = quit; - /* Debug("ftp_pkg: in ftp_close(), sending QUIT"); */ - i = cmd(ftp, "QUIT"); + /* If last operation timed out, don't try to quit - just close */ + if (ftp->errno != FTP_TIMED_OUT) + i = cmd(ftp, "QUIT"); + else + i = FTP_QUIT_HAPPY; close(ftp->fd_ctrl); ftp->fd_ctrl = -1; if (check_code(ftp, i, FTP_QUIT_HAPPY)) {