/* Copyright (c) The Exim Maintainers 2020 - 2022 */
/* Copyright (c) University of Cambridge 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/* Functions for writing spool files, and moving them about. */
message.
Argument:
- id the message id
+ id the message id (used for the eventual filename; the *content* uses the global. Unclear why.)
where SW_RECEIVING, SW_DELIVERING, or SW_MODIFYING
errmsg where to put an error message; if NULL, panic-die on error
*/
int
-spool_write_header(uschar *id, int where, uschar **errmsg)
+spool_write_header(uschar * id, int where, uschar ** errmsg)
{
-int fd;
-int size_correction;
+int fd, size_correction;
FILE * fp;
struct stat statbuf;
-uschar * tname;
uschar * fname;
-
-tname = spool_fname(US"input", message_subdir, US"hdr.", message_id);
+uschar * tname = spool_fname(US"input", message_subdir, US"hdr.", message_id);
if ((fd = spool_open_temp(tname)) < 0)
return spool_write_error(where, errmsg, US"open", NULL, NULL);
if (sender_host_address)
{
if (is_tainted(sender_host_address)) putc('-', fp);
- fprintf(fp, "-host_address %s.%d\n", sender_host_address, sender_host_port);
+ fprintf(fp, "-host_address [%s]:%d\n", sender_host_address, sender_host_port);
if (sender_host_name)
spool_var_write(fp, US"host_name", sender_host_name);
}
if (interface_address)
{
if (is_tainted(interface_address)) putc('-', fp);
- fprintf(fp, "-interface_address %s.%d\n", interface_address, interface_port);
+ fprintf(fp, "-interface_address [%s]:%d\n", interface_address, interface_port);
}
if (smtp_active_hostname != primary_hostname)
*/
static BOOL
-make_link(uschar *dir, uschar * dq, uschar *subdir, uschar *id, uschar *suffix,
- uschar *from, uschar *to, BOOL noentok)
+make_link(uschar * dir, uschar * dq, uschar * subdir, uschar * id, uschar * suffix,
+ uschar * from, uschar * to, BOOL noentok)
{
uschar * fname = spool_fname(string_sprintf("%s%s", from, dir), subdir, id, suffix);
uschar * tname = spool_q_fname(string_sprintf("%s%s", to, dir), dq, subdir, id, suffix);
*/
static BOOL
-break_link(uschar *dir, uschar *subdir, uschar *id, uschar *suffix, uschar *from,
+break_link(uschar * dir, uschar * subdir, uschar * id, uschar * suffix, uschar * from,
BOOL noentok)
{
uschar * fname = spool_fname(string_sprintf("%s%s", from, dir), subdir, id, suffix);
*/
BOOL
-spool_move_message(uschar *id, uschar *subdir, uschar *from, uschar *to)
+spool_move_message(uschar * id, uschar * subdir, uschar * from, uschar * to)
{
uschar * dest_qname = queue_name_dest ? queue_name_dest : queue_name;