extern void tls_client_creds_reload(BOOL);
extern void tls_close(void *, int);
-extern BOOL tls_could_read(void);
+extern BOOL tls_could_getc(void);
extern void tls_daemon_init(void);
extern int tls_daemon_tick(void);
extern BOOL tls_dropprivs_validate_require_cipher(BOOL);
#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 enq_end(uschar *);
extern BOOL enq_start(uschar *, unsigned);
#ifndef DISABLE_EVENT
-extern uschar *event_raise(uschar *, const uschar *, uschar *);
+extern uschar *event_raise(uschar *, const uschar *, uschar *, int *);
extern void msg_event_raise(const uschar *, const address_item *);
#endif
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 int sieve_interpret(uschar *, int, uschar *, uschar *, uschar *,
uschar *, address_item **, uschar **);
extern void sigalrm_handler(int);
-extern BOOL smtp_buffered(void);
extern void smtp_closedown(uschar *);
extern void smtp_command_timeout_exit(void) NORETURN;
extern void smtp_command_sigterm_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 uschar *strstric(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,
*/
static inline uschar *
-string_copylc(const uschar *s)
+string_copylc(const uschar * s)
{
-uschar *ss = store_get(Ustrlen(s) + 1, is_tainted(s));
-uschar *p = ss;
-while (*s != 0) *p++ = tolower(*s++);
+uschar * ss = store_get(Ustrlen(s) + 1, is_tainted(s));
+uschar * p = ss;
+while (*s) *p++ = tolower(*s++);
*p = 0;
return ss;
}
*/
static inline uschar *
-string_copynlc(uschar *s, int n)
+string_copynlc(uschar * s, int n)
{
uschar *ss = store_get(n + 1, is_tainted(s));
uschar *p = ss;
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;
static inline dns_answer *
store_get_dns_answer_trc(const uschar * func, unsigned line)
{
-/* return store_get_3(sizeof(dns_answer), TRUE, CCS func, line); use tainted mem */
return store_malloc_3(sizeof(dns_answer), CCS func, line);
}
outfdptr, make_leader, purpose);
}
+/* Return 1 if fd is usable per pollbits, else 0 */
static inline int
poll_one_fd(int fd, short pollbits, int tmo_millisec)
{