summaryrefslogtreecommitdiff
path: root/src/src/moan.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/src/moan.c')
-rw-r--r--src/src/moan.c108
1 files changed, 54 insertions, 54 deletions
diff --git a/src/src/moan.c b/src/src/moan.c
index 4e8648480..c89f5c238 100644
--- a/src/src/moan.c
+++ b/src/src/moan.c
@@ -70,7 +70,7 @@ int fd;
int status;
int count = 0;
int size_limit = bounce_return_size_limit;
-FILE *f;
+FILE * fp;
int pid = child_open_exim(&fd);
/* Creation of child failed */
@@ -85,48 +85,48 @@ else DEBUG(D_any) debug_printf("Child process %d for sending message\n", pid);
/* Creation of child succeeded */
-f = fdopen(fd, "wb");
-if (errors_reply_to) fprintf(f, "Reply-To: %s\n", errors_reply_to);
-fprintf(f, "Auto-Submitted: auto-replied\n");
-moan_write_from(f);
-fprintf(f, "To: %s\n", recipient);
+fp = fdopen(fd, "wb");
+if (errors_reply_to) fprintf(fp, "Reply-To: %s\n", errors_reply_to);
+fprintf(fp, "Auto-Submitted: auto-replied\n");
+moan_write_from(fp);
+fprintf(fp, "To: %s\n", recipient);
switch(ident)
{
case ERRMESS_BADARGADDRESS:
- fprintf(f,
+ fprintf(fp,
"Subject: Mail failure - malformed recipient address\n\n");
- fprintf(f,
+ fprintf(fp,
"A message that you sent contained a recipient address that was incorrectly\n"
"constructed:\n\n");
- fprintf(f, " %s %s\n", eblock->text1, eblock->text2);
+ fprintf(fp, " %s %s\n", eblock->text1, eblock->text2);
count = Ustrlen(eblock->text1);
if (count > 0 && eblock->text1[count-1] == '.')
- fprintf(f,
+ fprintf(fp,
"\nRecipient addresses must not end with a '.' character.\n");
- fprintf(f,
+ fprintf(fp,
"\nThe message has not been delivered to any recipients.\n");
break;
case ERRMESS_BADNOADDRESS:
case ERRMESS_BADADDRESS:
- fprintf(f,
+ fprintf(fp,
"Subject: Mail failure - malformed recipient address\n\n");
- fprintf(f,
+ fprintf(fp,
"A message that you sent contained one or more recipient addresses that were\n"
"incorrectly constructed:\n\n");
while (eblock != NULL)
{
- fprintf(f, " %s: %s\n", eblock->text1, eblock->text2);
+ fprintf(fp, " %s: %s\n", eblock->text1, eblock->text2);
count++;
eblock = eblock->next;
}
- fprintf(f, (count == 1)? "\nThis address has been ignored. " :
+ fprintf(fp, (count == 1)? "\nThis address has been ignored. " :
"\nThese addresses have been ignored. ");
- fprintf(f, (ident == ERRMESS_BADADDRESS)?
+ fprintf(fp, (ident == ERRMESS_BADADDRESS)?
"The other addresses in the message were\n"
"syntactically valid and have been passed on for an attempt at delivery.\n" :
@@ -135,8 +135,8 @@ switch(ident)
break;
case ERRMESS_IGADDRESS:
- fprintf(f, "Subject: Mail failure - no recipient addresses\n\n");
- fprintf(f,
+ fprintf(fp, "Subject: Mail failure - no recipient addresses\n\n");
+ fprintf(fp,
"A message that you sent using the -t command line option contained no\n"
"addresses that were not also on the command line, and were therefore\n"
"suppressed. This left no recipient addresses, and so no delivery could\n"
@@ -144,75 +144,75 @@ switch(ident)
break;
case ERRMESS_NOADDRESS:
- fprintf(f, "Subject: Mail failure - no recipient addresses\n\n");
- fprintf(f,
+ fprintf(fp, "Subject: Mail failure - no recipient addresses\n\n");
+ fprintf(fp,
"A message that you sent contained no recipient addresses, and therefore no\n"
"delivery could be attempted.\n");
break;
case ERRMESS_IOERR:
- fprintf(f, "Subject: Mail failure - system failure\n\n");
- fprintf(f,
+ fprintf(fp, "Subject: Mail failure - system failure\n\n");
+ fprintf(fp,
"A system failure was encountered while processing a message that you sent,\n"
"so it has not been possible to deliver it. The error was:\n\n%s\n",
eblock->text1);
break;
case ERRMESS_VLONGHEADER:
- fprintf(f, "Subject: Mail failure - overlong header section\n\n");
- fprintf(f,
+ fprintf(fp, "Subject: Mail failure - overlong header section\n\n");
+ fprintf(fp,
"A message that you sent contained a header section that was excessively\n"
"long and could not be handled by the mail transmission software. The\n"
"message has not been delivered to any recipients.\n");
break;
case ERRMESS_VLONGHDRLINE:
- fprintf(f, "Subject: Mail failure - overlong header line\n\n");
- fprintf(f,
+ fprintf(fp, "Subject: Mail failure - overlong header line\n\n");
+ fprintf(fp,
"A message that you sent contained a header line that was excessively\n"
"long and could not be handled by the mail transmission software. The\n"
"message has not been delivered to any recipients.\n");
break;
case ERRMESS_TOOBIG:
- fprintf(f, "Subject: Mail failure - message too big\n\n");
- fprintf(f,
+ fprintf(fp, "Subject: Mail failure - message too big\n\n");
+ fprintf(fp,
"A message that you sent was longer than the maximum size allowed on this\n"
"system. It was not delivered to any recipients.\n");
break;
case ERRMESS_TOOMANYRECIP:
- fprintf(f, "Subject: Mail failure - too many recipients\n\n");
- fprintf(f,
+ fprintf(fp, "Subject: Mail failure - too many recipients\n\n");
+ fprintf(fp,
"A message that you sent contained more recipients than allowed on this\n"
"system. It was not delivered to any recipients.\n");
break;
case ERRMESS_LOCAL_SCAN:
case ERRMESS_LOCAL_ACL:
- fprintf(f, "Subject: Mail failure - rejected by local scanning code\n\n");
- fprintf(f,
+ fprintf(fp, "Subject: Mail failure - rejected by local scanning code\n\n");
+ fprintf(fp,
"A message that you sent was rejected by the local scanning code that\n"
"checks incoming messages on this system.");
if (eblock->text1)
- fprintf(f, " The following error was given:\n\n %s", eblock->text1);
- fprintf(f, "\n");
+ fprintf(fp, " The following error was given:\n\n %s", eblock->text1);
+ fprintf(fp, "\n");
break;
#ifdef EXPERIMENTAL_DMARC
case ERRMESS_DMARC_FORENSIC:
bounce_return_message = TRUE;
bounce_return_body = FALSE;
- fprintf(f,
+ fprintf(fp,
"Subject: DMARC Forensic Report for %s from IP %s\n\n",
((eblock == NULL) ? US"Unknown" : eblock->text2),
sender_host_address);
- fprintf(f,
+ fprintf(fp,
"A message claiming to be from you has failed the published DMARC\n"
"policy for your domain.\n\n");
while (eblock != NULL)
{
- fprintf(f, " %s: %s\n", eblock->text1, eblock->text2);
+ fprintf(fp, " %s: %s\n", eblock->text1, eblock->text2);
count++;
eblock = eblock->next;
}
@@ -220,8 +220,8 @@ switch(ident)
#endif
default:
- fprintf(f, "Subject: Mail failure\n\n");
- fprintf(f,
+ fprintf(fp, "Subject: Mail failure\n\n");
+ fprintf(fp,
"A message that you sent has caused the error routine to be entered with\n"
"an unknown error number (%d).\n", ident);
break;
@@ -235,7 +235,7 @@ if (bounce_return_message)
{
if (bounce_return_body)
{
- fprintf(f, "\n"
+ fprintf(fp, "\n"
"------ This is a copy of your message, including all the headers.");
if (size_limit == 0 || size_limit > thismessage_size_limit)
size_limit = thismessage_size_limit;
@@ -248,15 +248,15 @@ if (bounce_return_message)
k = US"K";
x >>= 10;
}
- fprintf(f, "\n"
+ fprintf(fp, "\n"
"------ No more than %d%s characters of the body are included.\n\n",
x, k);
}
- else fprintf(f, " ------\n\n");
+ else fprintf(fp, " ------\n\n");
}
else
{
- fprintf(f, "\n"
+ fprintf(fp, "\n"
"------ This is a copy of the headers that were received before the "
"error\n was detected.\n\n");
}
@@ -266,12 +266,12 @@ if (bounce_return_message)
while (headers)
{
- if (headers->text != NULL) fprintf(f, "%s", CS headers->text);
+ if (headers->text != NULL) fprintf(fp, "%s", CS headers->text);
headers = headers->next;
}
if (ident != ERRMESS_VLONGHEADER && ident != ERRMESS_VLONGHDRLINE)
- fputc('\n', f);
+ fputc('\n', fp);
/* After early detection of an error, the message file may be STDIN,
in which case we might have to terminate on a line containing just "."
@@ -279,10 +279,10 @@ if (bounce_return_message)
if (bounce_return_body && message_file)
{
- BOOL enddot = dot_ends && message_file == stdin;
+ BOOL enddot = f.dot_ends && message_file == stdin;
uschar * buf = store_get(bounce_return_linesize_limit+2);
- if (firstline) fprintf(f, "%s", CS firstline);
+ if (firstline) fprintf(fp, "%s", CS firstline);
while (fgets(CS buf, bounce_return_linesize_limit+2, message_file))
{
@@ -290,7 +290,7 @@ if (bounce_return_message)
if (enddot && *buf == '.' && buf[1] == '\n')
{
- fputc('.', f);
+ fputc('.', fp);
break;
}
@@ -304,11 +304,11 @@ if (bounce_return_message)
if (size_limit > 0 && len > size_limit - written)
{
buf[size_limit - written] = '\0';
- fputs(CS buf, f);
+ fputs(CS buf, fp);
break;
}
- fputs(CS buf, f);
+ fputs(CS buf, fp);
}
}
#ifdef EXPERIMENTAL_DMARC
@@ -318,14 +318,14 @@ if (bounce_return_message)
/*XXX limit line length here? */
/* This doesn't print newlines, disable until can parse and fix
* output to be legible. */
- fprintf(f, "%s", expand_string(US"$message_body"));
+ fprintf(fp, "%s", expand_string(US"$message_body"));
}
#endif
}
/* Close the file, which should send an EOF to the child process
that is receiving the message. Wait for it to finish, without a timeout. */
-(void)fclose(f);
+(void)fclose(fp);
status = child_close(pid, 0); /* Waits for child to close */
if (status != 0)
{
@@ -382,7 +382,7 @@ if (message_reference)
/* Find the sender from a From line if permitted and possible */
-if (check_sender && message_file && trusted_caller &&
+if (check_sender && message_file && f.trusted_caller &&
Ufgets(big_buffer, BIG_BUFFER_SIZE, message_file) != NULL)
{
uschar *new_sender = NULL;
@@ -394,7 +394,7 @@ if (check_sender && message_file && trusted_caller &&
/* If viable sender address, send a message */
-if (sender_address && sender_address[0] && !local_error_message)
+if (sender_address && sender_address[0] && !f.local_error_message)
return moan_send_message(sender_address, ident, eblock, headers,
message_file, firstline);