From 05f596080dc119cbb3b5c8fdf28be4f8e30d3118 Mon Sep 17 00:00:00 2001
From: Silvio Rhatto <rhatto@riseup.net>
Date: Wed, 20 Jun 2012 00:38:23 -0300
Subject: [PATCH] Issue just warnings on non-fatal rsync errors (#3966)

---
 handlers/rsync.in | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/handlers/rsync.in b/handlers/rsync.in
index f0df52f..e0d2b1f 100644
--- a/handlers/rsync.in
+++ b/handlers/rsync.in
@@ -1096,6 +1096,23 @@ function restore_pipefail {
 
 }
 
+function check_rsync_exit_status {
+
+  if [ -z "$1" ]; then
+    return
+  fi
+
+  case $1 in
+    1|2|3|4|5|6|10|11|12|13|14|21)
+       fatal "Rsync error $1 when trying to transfer $SECTION"
+       ;;
+    *)
+       warning "Rsync error $1 when trying to transfer $SECTION"
+       ;;
+  esac
+
+}
+
 # the backup procedure
 
 eval_config
@@ -1120,10 +1137,7 @@ for SECTION in $include; do
   set_pipefail
   $nice su -c "$rsync ${rsync_options[@]} --delete-excluded $filelist_flag $excludes $batch_option $orig $dest_path" | tee -a $log
 
-  if [ "$?" != "0" ]; then
-    fatal "Rsync error when trying to transfer $SECTION"
-  fi
-
+  check_rsync_exit_status $?
   restore_pipefail
   update_metadata
 
-- 
GitLab