X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fsrc%2Fstructs.h;h=14d109869ec4ceb67972f1e6f2cf4b365d67a6aa;hb=a09f294202729d7e532a1584536fa14e491a0b71;hp=60e7ccd9d79a892548057ca3312c099bb9afe970;hpb=d2aa036bf831a28b2e0208e6b8385eeb5453cd39;p=exim.git diff --git a/src/src/structs.h b/src/src/structs.h index 60e7ccd9d..14d109869 100644 --- a/src/src/structs.h +++ b/src/src/structs.h @@ -28,11 +28,11 @@ struct router_info; /* Structure for remembering macros for the configuration file */ typedef struct macro_item { - struct macro_item *next; - BOOL command_line; - unsigned namelen; - uschar * replacement; - uschar name[1]; + struct macro_item * next; + BOOL command_line; + unsigned namelen; + const uschar * name; + const uschar * replacement; } macro_item; /* Structure for bit tables for debugging and logging */ @@ -235,6 +235,10 @@ typedef int (*tpt_chunk_cmd_cb)(struct transport_context *, unsigned, unsigned); /* Structure for information about a delivery-in-progress */ typedef struct transport_context { + union { /* discriminated by option topt_output_string */ + int fd; /* file descriptor to write message to */ + uschar * msg; /* allocated string with written message */ + } u; transport_instance * tblock; /* transport */ struct address_item * addr; uschar * check_string; /* string replacement */ @@ -244,6 +248,10 @@ typedef struct transport_context { /* items below only used with option topt_use_bdat */ tpt_chunk_cmd_cb chunk_cb; /* per-datachunk callback */ void * smtp_context; + + /* items below only used with option topt_output_string */ + int msg_size; + int msg_ptr; } transport_ctx;