Make router_name and transport_name usable for the expansions
[users/jgh/exim.git] / src / src / transports / smtp.c
index 04bee7fab3d26ccdbfdcb2319d065aca81351379..ac24f5f09ab3a4a0e4b82ec49855f3551cd455b4 100644 (file)
@@ -589,7 +589,8 @@ else
 *          Write error message to database log   *
 *************************************************/
 
-/* This writes to the database log
+/* This expands an arbitrary per-transport string.
+   It might, for example, be used to write to the database log.
 
 Arguments:
   dbl_host_defer_query  dbl_host_defer_query from the transport options block
@@ -612,19 +613,22 @@ dbl_delivery_local_part = string_copy(addr->local_part);
 dbl_delivery_domain = string_copy(addr->domain);
 dbl_defer_errno = addr->basic_errno;
 
-dbl_defer_errstr = NULL;
-if (addr->message != NULL)
-  if (addr->basic_errno > 0)
-    dbl_defer_errstr = string_sprintf("%s: %s", addr->message, strerror(addr->basic_errno));
-  else
-       dbl_defer_errstr = string_copy(addr->message);
-else if (addr->basic_errno > 0)
-  dbl_defer_errstr = string_copy(strerror(addr->basic_errno));
+dbl_defer_errstr = (addr->message != NULL)
+  ? (addr->basic_errno > 0)
+  ? string_sprintf("%s: %s", addr->message, strerror(addr->basic_errno))
+  : string_copy(addr->message)
+  : (addr->basic_errno > 0)
+  ? string_copy(strerror(addr->basic_errno))
+  : NULL;
 
 DEBUG(D_transport) {
        debug_printf("  DBL(host defer): dbl_host_defer_query=|%s| dbl_delivery_IP=%s\n", dbl_host_defer_query, dbl_delivery_ip);
 }
+
+router_name =    addr->router->name;
+transport_name = addr->transport->name;
 expand_string(dbl_host_defer_query);
+router_name = transport_name = NULL;
 }
 #endif