#endif
extern int tls_write(void *, const uschar *, size_t, BOOL);
extern uschar *tls_validate_require_cipher(void);
-extern void tls_version_report(FILE *);
+extern gstring *tls_version_report(gstring *);
# ifdef SUPPORT_DANE
extern int tlsa_lookup(const host_item *, dns_answer *, BOOL);
#endif
extern void debug_logging_activate(uschar *, uschar *);
-extern void debug_logging_stop(void);
+extern void debug_logging_stop(BOOL);
extern void debug_print_argv(const uschar **);
extern void debug_print_ids(uschar *);
extern void debug_printf_indent(const char *, ...) PRINTF_FUNCTION(1,2);
extern void debug_print_string(uschar *);
extern void debug_print_tree(const char *, tree_node *);
extern void debug_vprintf(int, const char *, va_list);
+extern void debug_pretrigger_setup(const uschar *);
+extern void debug_pretrigger_discard(void);
extern void debug_print_socket(int);
+extern void debug_trigger_fire(void);
extern void decode_bits(unsigned int *, size_t, int *,
uschar *, bit_table *, int, uschar *, int);
extern void exim_exit(int) NORETURN;
extern void exim_gettime(struct timeval *);
extern void exim_nullstd(void);
-extern void exim_setugid(uid_t, gid_t, BOOL, uschar *);
+extern void exim_setugid(uid_t, gid_t, BOOL, const uschar *);
extern void exim_underbar_exit(int) NORETURN;
extern void exim_wait_tick(struct timeval *, int);
extern int exp_bool(address_item *addr,
extern BOOL fd_ready(int, time_t);
-extern int filter_interpret(uschar *, int, address_item **, uschar **);
+extern int filter_interpret(const uschar *, int, address_item **, uschar **);
extern BOOL filter_personal(string_item *, BOOL);
extern BOOL filter_runtest(int, uschar *, BOOL, BOOL);
extern BOOL filter_system_interpret(address_item **, uschar **);
extern uschar *parse_extract_address(const uschar *, uschar **, int *, int *, int *,
BOOL);
extern int parse_forward_list(const uschar *, int, address_item **, uschar **,
- const uschar *, uschar *, error_block **);
+ const uschar *, const uschar *, error_block **);
extern uschar *parse_find_address_end(const uschar *, BOOL);
extern const uschar *parse_find_at(const uschar *);
extern const uschar *parse_fix_phrase(const uschar *, int);
extern int random_number(int);
extern const uschar *rc_to_string(int);
-extern int rda_interpret(redirect_block *, int, uschar *, uschar *,
- uschar *, uschar *, uschar *, ugid_block *, address_item **,
- uschar **, error_block **, int *, uschar *);
+extern int rda_interpret(redirect_block *, int, const uschar *, const uschar *,
+ const uschar *, const uschar *, const uschar *, const ugid_block *, address_item **,
+ uschar **, error_block **, int *, const uschar *);
extern int rda_is_filter(const uschar *);
extern BOOL readconf_depends(driver_instance *, uschar *);
extern void readconf_driver_init(uschar *, driver_instance **,
extern void sha1_end(hctx *, const uschar *, int, uschar *);
extern void sha1_mid(hctx *, const uschar *);
extern void sha1_start(hctx *);
-extern int sieve_interpret(uschar *, int, uschar *, uschar *, uschar *,
- uschar *, address_item **, uschar **);
+extern int sieve_interpret(const uschar *, int, const uschar *,
+ const uschar *, const uschar *, const uschar *,
+ address_item **, uschar **);
extern void sigalrm_handler(int);
extern void smtp_closedown(uschar *);
extern void smtp_command_timeout_exit(void) NORETURN;
extern int strcmpic(const uschar *, const uschar *);
extern int strncmpic(const uschar *, const uschar *, int);
extern uschar *strstric(uschar *, uschar *, BOOL);
+extern const uschar *strstric_c(const uschar *, const uschar *, BOOL);
extern int test_harness_fudged_queue_time(int);
extern void tcp_init(void);
extern void unspool_mbox(void);
#endif
#ifdef SUPPORT_I18N
-extern void utf8_version_report(FILE *);
+extern gstring *utf8_version_report(gstring *);
#endif
extern int verify_address(address_item *, FILE *, int, int, int, int,
string_get_tainted_trc(unsigned size, BOOL tainted, const char * func, unsigned line)
{
gstring * g = store_get_3(sizeof(gstring) + size, tainted, func, line);
-g->size = size;
+g->size = size; /*XXX would be good if we could see the actual alloc size */
g->ptr = 0;
g->s = US(g + 1);
return g;