SPDX: license tags (mostly by guesswork)
[exim.git] / src / src / routers / rf_lookup_hostlist.c
index 05275660745b58e9af6da92274ee7fbf07a59750..affd70b6efbc47d2300c3853249a12d92263a0d1 100644 (file)
@@ -3,7 +3,9 @@
 *************************************************/
 
 /* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) The Exim Maintainers 2020 */
 /* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */
 
 
 #include "../exim.h"
@@ -53,7 +55,6 @@ rf_lookup_hostlist(router_instance *rblock, address_item *addr,
   address_item **addr_new)
 {
 BOOL self_send = FALSE;
-host_item *h, *next_h, *prev;
 
 /* Look up each host address. A lookup may add additional items into the chain
 if there are multiple addresses. Hence the use of next_h to start each cycle of
@@ -62,7 +63,7 @@ host, omit it and any subsequent hosts - i.e. treat the list like an ordered
 list of MX hosts. If the first host is the local host, act according to the
 "self" option in the configuration. */
 
-for (prev = NULL, h = addr->host_list; h; h = next_h)
+for (host_item * prev = NULL, * h = addr->host_list, *next_h; h; h = next_h)
   {
   const uschar *canonical_name;
   int rc, len, port, mx, sort_key;
@@ -149,7 +150,9 @@ for (prev = NULL, h = addr->host_list; h; h = next_h)
        if (lookup_type & LK_DEFAULT)
          {
          DEBUG(D_route|D_host_lookup)
-           debug_printf("DNS lookup failed: trying getipnodebyname\n");
+           debug_printf("DNS lookup failed: trying %s\n",
+             f.running_in_test_harness
+             ? "host_fake_gethostbyname" : "getipnodebyname");
          rc = host_find_byname(h, ignore_target_hosts, HOST_FIND_QUALIFY_SINGLE,
            &canonical_name, TRUE);
          }
@@ -210,20 +213,15 @@ for (prev = NULL, h = addr->host_list; h; h = next_h)
   port, mx and sort_key. */
 
   if (port != PORT_NONE)
-    {
-    host_item *hh;
-    for (hh = h; hh != next_h; hh = hh->next) hh->port = port;
-    }
+    for (host_item * hh = h; hh != next_h; hh = hh->next)
+      hh->port = port;
 
   if (mx != MX_NONE)
-    {
-    host_item *hh;
-    for (hh = h; hh != next_h; hh = hh->next)
+    for (host_item * hh = h; hh != next_h; hh = hh->next)
       {
       hh->mx = mx;
       hh->sort_key = sort_key;
       }
-    }
 
   /* A local host gets chopped, with its successors, if there are previous
   hosts. Otherwise the self option is used. If it is set to "send", any
@@ -236,7 +234,7 @@ for (prev = NULL, h = addr->host_list; h; h = next_h)
       DEBUG(D_route)
         {
         debug_printf("Removed from host list:\n");
-        for (; h != NULL; h = h->next) debug_printf("  %s\n", h->name);
+        for (; h; h = h->next) debug_printf("  %s\n", h->name);
         }
       prev->next = NULL;
       setflag(addr, af_local_host_removed);