comparison src/deliver.c @ 317:55b7bde95d37

reworked allowed and denied addrs for routes The following refactorings had been made: - allowed_mail_locals + allowed_return_paths -> allowed_senders - not_allowed_mail_locals + not_allowed_return_paths -> denied_senders - allowed_rcpt_domains -> allowed_recipients - not_allowed_rcpt_domains -> denied_recipients The new options allow more consistent and more flexible matching.
author meillo@marmaro.de
date Thu, 28 Apr 2011 09:55:06 +0200
parents c98aa884d2cb
children 412385b57dc4
comparison
equal deleted inserted replaced
316:d596ac8b5afb 317:55b7bde95d37
558 if (!msgout_cloned->rcpt_list) { 558 if (!msgout_cloned->rcpt_list) {
559 destroy_msg_out(msgout_cloned); 559 destroy_msg_out(msgout_cloned);
560 continue; 560 continue;
561 } 561 }
562 562
563 /* filter by allowed return paths (= envelope sender) */ 563 /* filter by allowed envelope sender */
564 if (!route_is_allowed_mail_local(route, msgout->msg->return_path) 564 if (!route_sender_is_allowed(route, msgout->msg->return_path)) {
565 || !route_is_allowed_return_path(route, msgout->msg->return_path)) {
566 destroy_msg_out(msgout_cloned); 565 destroy_msg_out(msgout_cloned);
567 continue; 566 continue;
568 } 567 }
569 568
570 /* filter by allowed rcpt addrs (= envelope rcpts) */ 569 /* filter by allowed envelope rcpts */
571 GList *rcpt_list_allowed = NULL, *rcpt_list_notallowed = NULL; 570 GList* rcpt_list_allowed = NULL;
572 msg_rcptlist_route(route, msgout_cloned->rcpt_list, &rcpt_list_allowed, &rcpt_list_notallowed); 571 GList* rcpt_list_notallowed = NULL;
573 572 route_split_rcpts(route, msgout_cloned->rcpt_list, &rcpt_list_allowed, &rcpt_list_notallowed);
574 if (!rcpt_list_allowed) { 573 if (!rcpt_list_allowed) {
575 destroy_msg_out(msgout_cloned); 574 destroy_msg_out(msgout_cloned);
576 continue; 575 continue;
577 } 576 }
577
578 logwrite(LOG_NOTICE, "%s using '%s'\n", msgout->msg->uid, route->name); 578 logwrite(LOG_NOTICE, "%s using '%s'\n", msgout->msg->uid, route->name);
579 579
580 g_list_free(msgout_cloned->rcpt_list); 580 g_list_free(msgout_cloned->rcpt_list);
581 msgout_cloned->rcpt_list = rcpt_list_allowed; 581 msgout_cloned->rcpt_list = rcpt_list_allowed;
582 582