git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix continue_more on TLS connection. Bug 2104
[exim.git]
/
src
/
src
/
deliver.c
diff --git
a/src/src/deliver.c
b/src/src/deliver.c
index ca3b8abfb12956d0dc816a15d9f0f015e570b1a6..56642c6aab1aa7ee199fb6f20f0a6589510b97b3 100644
(file)
--- a/
src/src/deliver.c
+++ b/
src/src/deliver.c
@@
-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++)
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;
}
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. */
/* 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. */
/* 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)
{
host_item *h;
for (h = next->host_list; h; h = h->next)
@@
-7272,8
+7273,9
@@
if (addr_senddsn)
/* Write the original email out */
/* Write the original email out */
+ tctx.u.fd = fileno(f);
tctx.options = topt_add_return_path | topt_no_body;
tctx.options = topt_add_return_path | topt_no_body;
- transport_write_message(
fileno(f),
&tctx, 0);
+ transport_write_message(&tctx, 0);
fflush(f);
fprintf(f,"\n--%s--\n", bound);
fflush(f);
fprintf(f,"\n--%s--\n", bound);
@@
-7732,11
+7734,12
@@
wording. */
transport_ctx tctx = {0};
transport_instance tb = {0};
transport_ctx tctx = {0};
transport_instance tb = {0};
+ tctx.u.fd = fileno(f);
tctx.tblock = &tb;
tctx.options = topt;
tb.add_headers = dsnnotifyhdr;
tctx.tblock = &tb;
tctx.options = topt;
tb.add_headers = dsnnotifyhdr;
- transport_write_message(
fileno(f),
&tctx, 0);
+ transport_write_message(&tctx, 0);
}
fflush(f);
}
fflush(f);
@@
-8197,12
+8200,13
@@
else if (addr_defer != (address_item *)(+1))
fflush(f);
/* header only as required by RFC. only failure DSN needs to honor RET=FULL */
fflush(f);
/* header only as required by RFC. only failure DSN needs to honor RET=FULL */
+ tctx.u.fd = fileno(f);
tctx.options = topt_add_return_path | topt_no_body;
transport_filter_argv = NULL; /* Just in case */
return_path = sender_address; /* In case not previously set */
/* Write the original email out */
tctx.options = topt_add_return_path | topt_no_body;
transport_filter_argv = NULL; /* Just in case */
return_path = sender_address; /* In case not previously set */
/* Write the original email out */
- transport_write_message(
fileno(f),
&tctx, 0);
+ transport_write_message(&tctx, 0);
fflush(f);
fprintf(f,"\n--%s--\n", bound);
fflush(f);
fprintf(f,"\n--%s--\n", bound);