Fix continue_more on TLS connection. Bug 2104
[exim.git] / src / src / deliver.c
index 2787d0040d5cba90d39886914e1c1f8c3f3cabf5..56642c6aab1aa7ee199fb6f20f0a6589510b97b3 100644 (file)
@@ -3890,14 +3890,12 @@ for (;;)   /* Normally we do not repeat this loop */
     maxpipe = 0;
     FD_ZERO(&select_pipes);
     for (poffset = 0; poffset < remote_max_parallel; poffset++)
-      {
       if (parlist[poffset].pid != 0)
         {
         int fd = parlist[poffset].fd;
         FD_SET(fd, &select_pipes);
         if (fd > maxpipe) maxpipe = fd;
         }
-      }
 
     /* Stick in a 60-second timeout, just in case. */
 
@@ -4502,8 +4500,11 @@ for (delivery_count = 0; addr_remote; delivery_count++)
     /* Set a flag indicating whether there are further addresses that list
     the continued host. This tells the transport to leave the channel open,
     but not to pass it to another delivery process. */
+    /*XXX really the flag should be settable even by an initial proces
+    (not continue_transport dependent).  Need to check that uses of it
+    are independent. */
 
-    for (next = addr_remote; next; next = next->next)
+    for (next = addr_remote; next && !continue_more; next = next->next)
       {
       host_item *h;
       for (h = next->host_list; h; h = h->next)