b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch#define SMTP_CLIENT_DATA_CHUNK_SIZE IO_BLOCK_SIZE
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch smtp_client_command_callback_t *rcpt_callback;
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch smtp_client_command_callback_t *data_callback;
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch struct smtp_client_command *cmd_mail_from, *cmd_data;
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch struct smtp_client_command *cmd_plug, *cmd_last;
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch smtp_client_command_callback_t *mail_from_callback;
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch ARRAY(struct smtp_client_transaction_rcpt *) rcpts, rcpts_pending;
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch smtp_client_command_callback_t *data_callback;
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch enum smtp_client_connection_ssl_mode ssl_mode;
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch struct timeout *to_connect, *to_trans, *to_commands;
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch smtp_client_command_callback_t *login_callback;
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch /* commands pending in queue to be sent */
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch struct smtp_client_command *cmd_send_queue_head, *cmd_send_queue_tail;
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch /* commands that have been sent, waiting for response */
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch struct smtp_client_command *cmd_wait_list_head, *cmd_wait_list_tail;
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch /* active transactions */
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch struct smtp_client_transaction *transactions_head, *transactions_tail;
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Boschvoid smtp_client_command_free(struct smtp_client_command *cmd);
52cb7a947c02678218c5e4d859e03aa35d54cda9Stephan Boschint smtp_client_command_send_more(struct smtp_client_connection *conn);
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Boschint smtp_client_command_input_reply(struct smtp_client_command *cmd,
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Boschvoid smtp_client_command_fail(struct smtp_client_command **_cmd,
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Boschvoid smtp_client_command_fail_reply(struct smtp_client_command **_cmd,
2dd20833b86743fe1e45c5af06d9c5f2549126e3Stephan Boschvoid smtp_client_commands_list_abort(struct smtp_client_command *cmds_list,
bd06411e6f2ffc9e0122824ba4edb774bb40c26fStephan Bosch struct smtp_client_command *cmds_list, unsigned int cmds_list_count,
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Bosch * Transaction
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Boschvoid smtp_client_transaction_connection_result(
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Boschstruct connection_list *smtp_client_connection_list_init(void);
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Boschsmpt_client_connection_label(struct smtp_client_connection *conn);
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Boschvoid smtp_client_connection_fail(struct smtp_client_connection *conn,
a02b8d9eed3636518cc5ffce8d1045f9808f24e4Stephan Boschvoid smtp_client_connection_handle_output_error(
b3888944586654b4aa069e0db31f998e0ed8b414Stephan Boschvoid smtp_client_connection_update_cmd_timeout(
419c83155744e62e690ae731b153c59314554826Stephan Boschint smtp_client_init_ssl_ctx(struct smtp_client *client, const char **error_r);