Fix address ignore-errors flag bit initialisation and propagation
authorJeremy Harris <jgh146exb@wizmail.org>
Mon, 21 Aug 2017 19:46:52 +0000 (20:46 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Mon, 21 Aug 2017 21:31:24 +0000 (22:31 +0100)
Broken-by: 7eb0e5d2b8
src/src/globals.c
src/src/routers/queryprogram.c
src/src/routers/redirect.c

index 7f6ce6d4049629f42043868132b3a20718f151b9..f3fdb5975d865da4e41df7f4e530ff143d0214f8 100644 (file)
@@ -399,6 +399,7 @@ address_item address_defaults = {
 #ifdef EXPERIMENTAL_SRS
     .srs_sender =      NULL,
 #endif
+    .ignore_error =    FALSE,
 #ifdef SUPPORT_I18N
     .utf8_msg =                FALSE,
     .utf8_downcvt =    FALSE,
index fc92835c0ea8d894ac9c330fba9ef33667c7b0e6..abba024dbe9bfcba6f3d962ef06d12299db11bc4 100644 (file)
@@ -130,7 +130,7 @@ while (generated != NULL)
 
   next->parent = addr;
   next->prop = *addr_prop;
-  next->prop.ignore_error |= ignore_error;
+  next->prop.ignore_error = next->prop.ignore_error || ignore_error;
   next->start_router = rblock->redirect_router;
 
   next->next = *addr_new;
index 005ec6f4763623b885dd3173d3b4e860b918d58e..9923af58514af31cbc369b69fc412c99ee4d4b19 100644 (file)
@@ -390,7 +390,7 @@ while (generated)
     {
     BOOL ignore_error = next->prop.ignore_error;
     next->prop = *addr_prop;
-    next->prop.ignore_error |= ignore_error;
+    next->prop.ignore_error = ignore_error || addr->prop.ignore_error;
     }
   if (errors_address) next->prop.errors_address = errors_address;