Enforce that only smtp transports can be used for verify callouts. Bug 1445
authorHeiko Schlittermann <hs+exim@schlittermann.de>
Sun, 16 Mar 2014 22:29:59 +0000 (22:29 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Sun, 16 Mar 2014 22:39:40 +0000 (22:39 +0000)
doc/doc-docbook/spec.xfpt
src/src/verify.c

index 2b055c3e9978603326c1dcce571bea511d3eab63..c412c1e1675e124f5c7909a77fe6eabf6a08837f 100644 (file)
@@ -29039,6 +29039,7 @@ router that does not set up hosts routes to an &(smtp)& transport with a
 &%hosts%& setting, the transport's hosts are used. If an &(smtp)& transport has
 &%hosts_override%& set, its hosts are always used, whether or not the router
 supplies a host list.
+Callouts are only supported on &(smtp)& transports.
 
 The port that is used is taken from the transport, if it is specified and is a
 remote transport. (For routers that do verification only, no transport need be
index 39f546ed6a7ab072020c410cf4ce9c25d86dc26c..8cc67f1b15974130168f19b687d737d3b18d2ed2 100644 (file)
@@ -373,6 +373,9 @@ if (!addr->transport)
   {
   HDEBUG(D_verify) debug_printf("cannot callout via null transport\n");
   }
+else if (Ustrcmp(addr->transport->driver_name, "smtp") != 0)
+  log_write(0, LOG_MAIN|LOG_PANIC|LOG_CONFIG_FOR, "callout transport '%s': %s is non-smtp",
+    addr->transport->name, addr->transport->driver_name);
 else
   {
   smtp_transport_options_block *ob =