struct smtp_client_transaction_rcpt **rcpts;
unsigned int i, count;
+ if (trans->failing)
+ return;
+
smtp_client_transaction_debug(trans, "Abort");
/* clean up */
reply = trans->failure;
i_assert(reply != NULL);
+ trans->failing = TRUE;
+
smtp_client_transaction_debug(trans,
"Returning failure: %s", smtp_reply_log(reply));
smtp_client_command_abort(&trans->cmd_plug);
trans->cmd_plug = NULL;
+ trans->failing = FALSE;
+
if (trans->data_provided) {
/* abort the transaction only if smtp_client_transaction_send()
was called (and if it is not aborted already) */