- transport_instance * tblock;
- struct address_item * addr;
- uschar * check_string;
- uschar * escape_string;
- int options; /* topt_* */
+ 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 */
+ uschar * escape_string;
+ int options; /* output processing topt_* */
+
+ /* 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;