From 23006f3868bda5d20d5db0d7fa1f8cd422ff2f60 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Mon, 16 Mar 2015 22:27:17 +0100
Subject: [PATCH] lib-sieve: file storage: Fixed bug that caused missing active
 symlink to cause a temporary error in some cases.

---
 .../storage/file/sieve-file-storage.c         | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/lib-sieve/storage/file/sieve-file-storage.c b/src/lib-sieve/storage/file/sieve-file-storage.c
index f4033e9a7..7405947f6 100644
--- a/src/lib-sieve/storage/file/sieve-file-storage.c
+++ b/src/lib-sieve/storage/file/sieve-file-storage.c
@@ -333,13 +333,20 @@ static int sieve_file_storage_init_common
 		}
 
 		if (t_realpath(active_dir, &active_dir) < 0) {
-			sieve_storage_sys_error(storage,
-				"Failed to normalize active script directory (path=%s): %m",
-				active_dir);
-			*error_r = SIEVE_ERROR_TEMP_FAILURE;
-			return -1;
+			if (errno != ENOENT) {
+				sieve_storage_sys_error(storage,
+					"Failed to normalize active script directory (path=%s): %m",
+					active_dir);
+				*error_r = SIEVE_ERROR_TEMP_FAILURE;
+				return -1;
+			} 
+			sieve_storage_sys_debug(storage,
+				"Failed to normalize active script directory (path=%s): "
+				"Part of the path does not exist (yet)",
+				active_dir);			
+		} else {
+			active_path = t_abspath_to(active_fname, active_dir);
 		}
-		active_path = t_abspath_to(active_fname, active_dir);
 
 		sieve_storage_sys_debug(storage,
 			"Using %sSieve script path: %s",
-- 
GitLab