diff src/deliver.c @ 429:5593964ec779

Added route conditions based on the From header New route config directives: allowed_from_hdrs, denied_from_hdrs. This feature was motivated by Philipp Takacs <philipp29@t-online.de>.
author markus schnalke <meillo@marmaro.de>
date Thu, 20 Nov 2014 20:36:20 +0100
parents 8fedb93e9b72
children
line wrap: on
line diff
--- a/src/deliver.c	Wed Apr 03 21:45:57 2013 +0200
+++ b/src/deliver.c	Thu Nov 20 20:36:20 2014 +0100
@@ -667,6 +667,21 @@
 			continue;
 		}
 
+		/* filter by allowed from header */
+		GList *from_hdrs = NULL;
+		char *from_hdr = NULL;
+		from_hdrs = find_header(msgout->msg->hdr_list, HEAD_FROM,
+				 NULL);
+		if (from_hdrs) {
+			from_hdr = (char *) ((header *)from_hdrs->data)->value;
+			if (!route_from_hdr_is_allowed(route, from_hdr)){
+				DEBUG(6) debugf("from hdr `%s' is not allowed for this "
+						"route\n", from_hdr);
+				destroy_msg_out(msgout_cloned);
+				continue;
+			}
+		}
+
 		logwrite(LOG_NOTICE, "%s using '%s'\n", msgout->msg->uid,
 				route->name);