Returns: One of the END_xxx values indicating why it stopped reading
*/
+/*XXX CHUNKING: maybe a variant routing specialised for BDAT, assuming
+string RFC compliance ie. CRLF always? We still have to strip the CR
+but we are not dealing with variant lunacy or looking for the end-dot */
static int
read_message_data_smtp(FILE *fout)
*/
static uschar *
-add_host_info_for_log(uschar *s, int *sizeptr, int *ptrptr)
+add_host_info_for_log(uschar * s, int * sizeptr, int * ptrptr)
{
-if (sender_fullhost != NULL)
+if (sender_fullhost)
{
+ if (LOGGING(dnssec) && sender_host_dnssec) /*XXX sender_helo_dnssec? */
+ s = string_cat(s, sizeptr, ptrptr, US" DS");
s = string_append(s, sizeptr, ptrptr, 2, US" H=", sender_fullhost);
if (LOGGING(incoming_interface) && interface_address != NULL)
{
- uschar *ss = string_sprintf(" I=[%s]:%d", interface_address,
- interface_port);
- s = string_cat(s, sizeptr, ptrptr, ss);
+ s = string_cat(s, sizeptr, ptrptr,
+ string_sprintf(" I=[%s]:%d", interface_address, interface_port));
}
}
if (sender_ident != NULL)
for (;;)
{
+/*XXX CHUNKING: account for BDAT size & last, and do more chunks as needed */
int ch = (receive_getc)();
/* If we hit EOF on a SMTP connection, it's an error, since incoming
return message_ended == END_DOT;
}
+/*XXX CHUNKING: need to cancel cutthrough under BDAT, for now */
/* Cutthrough delivery:
We have to create the Received header now rather than at the end of reception,
so the timestamp behaviour is a change to the normal case.
{
if (smtp_input)
{
+/*XXX CHUNKING: main data read, for message body */
message_ended = read_message_data_smtp(data_file);
receive_linecount++; /* The terminating "." line */
}