Fix local-scan ABI. Bug 2458
[exim.git] / src / src / functions.h
index 37f6b1b6f2b68af7f274fe373a7a898ee50477aa..37bca23e321efc0d99d19658d7d7cb126f65227f 100644 (file)
@@ -48,6 +48,7 @@ extern uschar * tls_cert_fprt_md5(void *);
 extern uschar * tls_cert_fprt_sha1(void *);
 extern uschar * tls_cert_fprt_sha256(void *);
 
+extern void    tls_clean_env(void);
 extern BOOL    tls_client_start(client_conn_ctx *, smtp_connect_args *,
                  void *, tls_support *, uschar **);
 
@@ -519,7 +520,8 @@ extern uschar *string_localpart_utf8_to_alabel(const uschar *, uschar **);
 #endif
 
 #define string_format(buf, siz, fmt, ...) \
-       string_format_trc(buf, siz, US __FUNCTION__, __LINE__, fmt, __VA_ARGS__)
+       string_format_trc(buf, siz, US __FUNCTION__, __LINE__, \
+                               fmt __VA_OPT__(,) __VA_ARGS__)
 extern BOOL    string_format_trc(uschar *, int, const uschar *, unsigned,
                        const char *, ...) ALMOST_PRINTF(5,6);
 
@@ -530,7 +532,8 @@ extern gstring *string_vformat_trc(gstring *, const uschar *, unsigned,
                        unsigned, unsigned, const char *, va_list);
 
 #define string_open_failed(eno, fmt, ...) \
-       string_open_failed_trc(eno, US __FUNCTION__, __LINE__, fmt, __VA_ARGS__)
+       string_open_failed_trc(eno, US __FUNCTION__, __LINE__, \
+                               fmt __VA_OPT__(,) __VA_ARGS__)
 extern uschar *string_open_failed_trc(int, const uschar *, unsigned,
                        const char *, ...) PRINTF_FUNCTION(4,5);
 
@@ -538,6 +541,7 @@ extern int     strcmpic(const uschar *, const uschar *);
 extern int     strncmpic(const uschar *, const uschar *, int);
 extern uschar *strstric(uschar *, uschar *, BOOL);
 
+extern int     test_harness_fudged_queue_time(int);
 #ifdef EXIM_TFO_PROBE
 extern void    tfo_probe(void);
 #endif
@@ -829,11 +833,11 @@ if (g) store_release_above_3(g->s + (g->size = g->ptr + 1), file, line);
 
 #define string_fmt_append(g, fmt, ...) \
        string_fmt_append_f_trc(g, US __FUNCTION__, __LINE__, \
-       SVFMT_EXTEND|SVFMT_REBUFFER, fmt, __VA_ARGS__)
+       SVFMT_EXTEND|SVFMT_REBUFFER, fmt __VA_OPT__(,) __VA_ARGS__)
 
 #define string_fmt_append_f(g, flgs, fmt, ...) \
        string_fmt_append_f_trc(g, US __FUNCTION__, __LINE__, \
-       flgs,         fmt, __VA_ARGS__)
+                               flgs, fmt __VA_OPT__(,) __VA_ARGS__)
 
 static inline gstring *
 string_fmt_append_f_trc(gstring * g, const uschar * func, unsigned line,
@@ -876,20 +880,33 @@ return string_sprintf("%s/%s/%s/%s",
 # endif
 
 static inline uschar *
-spool_sname(const uschar * purpose, uschar * subdir)
+spool_q_sname(const uschar * purpose, const uschar * q, uschar * subdir)
 {
 return string_sprintf("%s%s%s%s%s",
-                   queue_name, *queue_name ? "/" : "",
+                   q, *q ? "/" : "",
                    purpose,
                    *subdir ? "/" : "", subdir);
 }
 
+static inline uschar *
+spool_sname(const uschar * purpose, uschar * subdir)
+{
+return spool_q_sname(purpose, queue_name, subdir);
+}
+
+static inline uschar *
+spool_q_fname(const uschar * purpose, const uschar * q,
+       const uschar * subdir, const uschar * fname, const uschar * suffix)
+{
+return string_sprintf("%s/%s/%s/%s/%s%s",
+       spool_directory, q, purpose, subdir, fname, suffix);
+}
+
 static inline uschar *
 spool_fname(const uschar * purpose, const uschar * subdir, const uschar * fname,
                const uschar * suffix)
 {
-return string_sprintf("%s/%s/%s/%s/%s%s",
-       spool_directory, queue_name, purpose, subdir, fname, suffix);
+return spool_q_fname(purpose, queue_name, subdir, fname, suffix);
 }
 
 static inline void