void smtp_client_connection_uncork(struct smtp_client_connection *conn)
{
+ conn->corked = FALSE;
if (conn->conn.output != NULL) {
+ if (o_stream_uncork_flush(conn->conn.output) < 0) {
+ smtp_client_connection_handle_output_error(conn);
+ return;
+ }
smtp_client_connection_trigger_output(conn);
- o_stream_uncork(conn->conn.output);
}
- conn->corked = FALSE;
}
enum smtp_client_connection_state
error));
}
}
- if (conn->conn.output != NULL && !conn->corked)
- o_stream_uncork(conn->conn.output);
+ if (ret >= 0 && conn->conn.output != NULL && !conn->corked) {
+ if (o_stream_uncork_flush(conn->conn.output) < 0)
+ smtp_client_connection_handle_output_error(conn);
+ }
smtp_client_connection_unref(&conn);
}