sender when checking recipients. If used indiscriminately, it reduces the
usefulness of callout caching.
+.new
.vitem &*hold*&
This option applies to recipient callouts only. For example:
.code
if the use_sender option is used,
if neither the random nor the use_postmaster option is used,
and if no other callouts intervene.
+.wen
.endlist
If you use any of the parameters that set a non-empty sender for the MAIL
errno = EINTR;
}
else
- {
lcount = select(max_socket + 1, (SELECT_ARG2_TYPE *)&select_listen,
NULL, NULL, NULL);
- }
if (lcount < 0)
{
while (lcount-- > 0)
{
int accept_socket = -1;
+
if (!select_failed)
- {
for (sk = 0; sk < listen_socket_count; sk++)
- {
if (FD_ISSET(listen_sockets[sk], &select_listen))
{
len = sizeof(accepted);
FD_CLR(listen_sockets[sk], &select_listen);
break;
}
- }
- }
/* If select or accept has failed and this was not caused by an
interruption, log the incident and try again. With asymmetric TCP/IP
extern pid_t child_open_uid(const uschar **, const uschar **, int,
uid_t *, gid_t *, int *, int *, uschar *, BOOL);
extern BOOL cleanup_environment(void);
-extern BOOL cutthrough_data_puts(uschar *, int);
-extern BOOL cutthrough_data_put_nl(void);
+extern void cutthrough_data_puts(uschar *, int);
+extern void cutthrough_data_put_nl(void);
extern uschar *cutthrough_finaldot(void);
extern BOOL cutthrough_flush_send(void);
extern BOOL cutthrough_headers_send(void);
case HASH_SHA1: SHA1_Update (&h->u.sha1, data, len); break;
case HASH_SHA256: SHA256_Update(&h->u.sha2, data, len); break;
/* should be blocked by init not handling these, but be explicit to
- * guard against accidents later (and hush up clang -Wswitch) */
+ guard against accidents later (and hush up clang -Wswitch) */
default: assert(0);
}
}
{
message_size++;
if (fout != NULL && fputc('\n', fout) == EOF) return END_WERROR;
- (void) cutthrough_data_put_nl();
+ cutthrough_data_put_nl();
if (ch != '\r') ch_state = 1; else continue;
}
break;
if (ch == '.')
{
uschar c= ch;
- (void) cutthrough_data_puts(&c, 1);
+ cutthrough_data_puts(&c, 1);
}
ch_state = 1;
break;
message_size++;
body_linecount++;
if (fout != NULL && fputc('\n', fout) == EOF) return END_WERROR;
- (void) cutthrough_data_put_nl();
+ cutthrough_data_put_nl();
if (ch == '\r')
{
ch_state = 2;
if (message_size > thismessage_size_limit) return END_SIZE;
}
if(ch == '\n')
- (void) cutthrough_data_put_nl();
+ cutthrough_data_put_nl();
else
{
uschar c = ch;
- (void) cutthrough_data_puts(&c, 1);
+ cutthrough_data_puts(&c, 1);
}
}
{
message_size++;
if (fout && fputc('\n', fout) == EOF) return END_WERROR;
- (void) cutthrough_data_put_nl();
+ cutthrough_data_put_nl();
if (ch == '\r') continue; /* don't write CR */
ch_state = MID_LINE;
}
if (message_size > thismessage_size_limit) return END_SIZE;
}
if(ch == '\n')
- (void) cutthrough_data_put_nl();
+ cutthrough_data_put_nl();
else
{
uschar c = ch;
- (void) cutthrough_data_puts(&c, 1);
+ cutthrough_data_puts(&c, 1);
}
}
/*NOTREACHED*/
return FALSE;
}
-BOOL
+void
cutthrough_data_puts(uschar * cp, int n)
{
-if (cutthrough.delivery) cutthrough_puts(cp, n);
+if (cutthrough.delivery) (void) cutthrough_puts(cp, n);
}
}
-BOOL
+void
cutthrough_data_put_nl(void)
{
-return cutthrough_data_puts(US"\r\n", 2);
+cutthrough_data_puts(US"\r\n", 2);
}
admin user
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
+release cutthrough conn: msg passed for delivery
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user