Blame SOURCES/0024-Introduce-new-return-value-450.patch

f22e83
From 1d5cdf309387ff92988ab17d746f015d833a4b92 Mon Sep 17 00:00:00 2001
f22e83
From: Martin Sehnoutka <msehnout@redhat.com>
f22e83
Date: Thu, 17 Nov 2016 11:08:52 +0100
f22e83
Subject: [PATCH 24/59] Introduce new return value 450:
f22e83
f22e83
 *450 Requested file action not taken.
f22e83
      File unavailable (e.g., file busy).
f22e83
---
f22e83
 ftpcodes.h  | 1 +
f22e83
 postlogin.c | 9 ++++++++-
f22e83
 sysutil.c   | 3 +++
f22e83
 sysutil.h   | 3 ++-
f22e83
 4 files changed, 14 insertions(+), 2 deletions(-)
f22e83
f22e83
diff --git a/ftpcodes.h b/ftpcodes.h
f22e83
index 93290c0..81e25c5 100644
f22e83
--- a/ftpcodes.h
f22e83
+++ b/ftpcodes.h
f22e83
@@ -52,6 +52,7 @@
f22e83
 #define FTP_TLS_FAIL          421
f22e83
 #define FTP_BADSENDCONN       425
f22e83
 #define FTP_BADSENDNET        426
f22e83
+#define FTP_FILETMPFAIL       450
f22e83
 #define FTP_BADSENDFILE       451
f22e83
 
f22e83
 #define FTP_BADCMD            500
f22e83
diff --git a/postlogin.c b/postlogin.c
f22e83
index bf12970..29958c0 100644
f22e83
--- a/postlogin.c
f22e83
+++ b/postlogin.c
f22e83
@@ -679,7 +679,14 @@ handle_retr(struct vsf_session* p_sess, int is_http)
f22e83
   opened_file = str_open(&p_sess->ftp_arg_str, kVSFSysStrOpenReadOnly);
f22e83
   if (vsf_sysutil_retval_is_error(opened_file))
f22e83
   {
f22e83
-    vsf_cmdio_write(p_sess, FTP_FILEFAIL, "Failed to open file.");
f22e83
+    if (kVSFSysUtilErrAGAIN == vsf_sysutil_get_error())
f22e83
+    {
f22e83
+      vsf_cmdio_write(p_sess, FTP_FILETMPFAIL, "Temporarily failed to open file");
f22e83
+    }
f22e83
+    else
f22e83
+    {
f22e83
+      vsf_cmdio_write(p_sess, FTP_FILEFAIL, "Failed to open file.");
f22e83
+    }
f22e83
     return;
f22e83
   }
f22e83
   /* Lock file if required */
f22e83
diff --git a/sysutil.c b/sysutil.c
f22e83
index 9881a66..6d7cb3f 100644
f22e83
--- a/sysutil.c
f22e83
+++ b/sysutil.c
f22e83
@@ -1632,6 +1632,9 @@ vsf_sysutil_get_error(void)
f22e83
     case ENOENT:
f22e83
       retval = kVSFSysUtilErrNOENT;
f22e83
       break;
f22e83
+    case EAGAIN:
f22e83
+      retval = kVSFSysUtilErrAGAIN;
f22e83
+      break;
f22e83
     default:
f22e83
       break;
f22e83
   }
f22e83
diff --git a/sysutil.h b/sysutil.h
f22e83
index 79b5514..c145bdf 100644
f22e83
--- a/sysutil.h
f22e83
+++ b/sysutil.h
f22e83
@@ -18,7 +18,8 @@ enum EVSFSysUtilError
f22e83
   kVSFSysUtilErrINVAL,
f22e83
   kVSFSysUtilErrOPNOTSUPP,
f22e83
   kVSFSysUtilErrACCES,
f22e83
-  kVSFSysUtilErrNOENT
f22e83
+  kVSFSysUtilErrNOENT,
f22e83
+  kVSFSysUtilErrAGAIN
f22e83
 };
f22e83
 enum EVSFSysUtilError vsf_sysutil_get_error(void);
f22e83
 
f22e83
-- 
f22e83
2.14.4
f22e83