{
struct smtp_server_command *cmd = *_cmd;
- if (cmd->replies_submitted < cmd->replies_expected)
- return TRUE;
+ if (cmd->replies_submitted < cmd->replies_expected) {
+ e_debug(cmd->context.event, "Replied (one)");
+
+ return smtp_server_command_call_hooks(
+ _cmd, SMTP_SERVER_COMMAND_HOOK_REPLIED_ONE, FALSE);
+ }
e_debug(cmd->context.event, "Replied");
- return smtp_server_command_call_hooks(
- _cmd, SMTP_SERVER_COMMAND_HOOK_REPLIED, TRUE);
+ return (smtp_server_command_call_hooks(
+ _cmd, SMTP_SERVER_COMMAND_HOOK_REPLIED_ONE, TRUE) &&
+ smtp_server_command_call_hooks(
+ _cmd, SMTP_SERVER_COMMAND_HOOK_REPLIED, TRUE));
}
bool smtp_server_command_completed(struct smtp_server_command **_cmd)
/* next: command is next to reply but has not submittted all replies
yet. */
SMTP_SERVER_COMMAND_HOOK_NEXT,
+ /* replied_one: command has submitted one reply. */
+ SMTP_SERVER_COMMAND_HOOK_REPLIED_ONE,
/* replied: command has submitted all replies. */
SMTP_SERVER_COMMAND_HOOK_REPLIED,
/* completed: server is about to send last replies for this command. */