*************************************************/
/* Copyright (c) University of Cambridge 1995 - 2018 */
*************************************************/
/* Copyright (c) University of Cambridge 1995 - 2018 */
uschar *name; /* Instance name */
struct driver_info *info; /* Points to info for this driver */
void *options_block; /* Pointer to private options */
uschar *name; /* Instance name */
struct driver_info *info; /* Points to info for this driver */
void *options_block; /* Pointer to private options */
optionlist *options; /* Table of private options names */
int *options_count; /* -> Number of entries in table */
void *options_block; /* Points to default private block */
optionlist *options; /* Table of private options names */
int *options_count; /* -> Number of entries in table */
void *options_block; /* Points to default private block */
struct transport_info *info; /* Info for this driver */
void *options_block; /* Pointer to private options */
uschar *driver_name; /* Must be first */
struct transport_info *info; /* Info for this driver */
void *options_block; /* Pointer to private options */
uschar *driver_name; /* Must be first */
int (*setup)( /* Setup entry point */
struct transport_instance *,
struct address_item *,
int (*setup)( /* Setup entry point */
struct transport_instance *,
struct address_item *,
struct router_info *info;
void *options_block; /* Pointer to private options */
uschar *driver_name; /* Must be first */
struct router_info *info;
void *options_block; /* Pointer to private options */
uschar *driver_name; /* Must be first */
struct auth_info *info; /* Pointer to driver info block */
void *options_block; /* Pointer to private options */
uschar *driver_name; /* Must be first */
struct auth_info *info; /* Pointer to driver info block */
void *options_block; /* Pointer to private options */
uschar *driver_name; /* Must be first */
uschar *advertise_condition; /* Are we going to advertise this?*/
uschar *client_condition; /* Should the client try this? */
uschar *public_name; /* Advertised name */
uschar *advertise_condition; /* Are we going to advertise this?*/
uschar *client_condition; /* Should the client try this? */
uschar *public_name; /* Advertised name */
int, /* command timeout */
uschar *, /* buffer for reading response */
int); /* sizeof buffer */
int, /* command timeout */
uschar *, /* buffer for reading response */
int); /* sizeof buffer */
- void (*version_report)( /* diagnostic version reporting */
- FILE *); /* I/O stream to print to */
+ gstring * (*version_report)( /* diagnostic version reporting */
+ gstring *); /* string to append to */
BOOL af_verify_routed:1; /* for cached sender verify: routed OK */
BOOL af_verify_callout:1; /* for cached sender verify: callout was specified */
BOOL af_include_affixes:1; /* delivered with affixes in RCPT */
BOOL af_verify_routed:1; /* for cached sender verify: routed OK */
BOOL af_verify_callout:1; /* for cached sender verify: callout was specified */
BOOL af_include_affixes:1; /* delivered with affixes in RCPT */
BOOL af_cert_verified:1; /* delivered with verified TLS cert */
BOOL af_pass_message:1; /* pass message in bounces */
BOOL af_bad_reply:1; /* filter could not generate autoreply */
BOOL af_cert_verified:1; /* delivered with verified TLS cert */
BOOL af_pass_message:1; /* pass message in bounces */
BOOL af_bad_reply:1; /* filter could not generate autoreply */