#include "clientsocket.h"
+#ifndef HAVE_SNPRINTF
+#include "snprintf.h"
+#endif
+
struct citsmtp { /* Information about the current session */
int command_state;
char helo_node[SIZ];
CtdlAllocUserData(SYM_SMTP_RECP, SIZ);
sprintf(SMTP_RECP, "%s", "");
- cprintf("220 Citadel/UX ESMTP server at %s ready.\r\n",
- config.c_fqdn);
+ cprintf("220 %s ESMTP Citadel/UX server ready.\r\n", config.c_fqdn);
}
cprintf("250 Greetings and joyous salutations.\r\n");
}
else {
- cprintf("250-Greetings and joyous salutations.\r\n");
+ cprintf("250-Extended greetings and joyous salutations.\r\n");
cprintf("250-HELP\r\n");
cprintf("250-SIZE %ld\r\n", config.c_maxmsglen);
+ cprintf("250-PIPELINING\r\n");
cprintf("250 AUTH=LOGIN\r\n");
}
}
}
else if (!strncasecmp(cmdbuf, "NOOP", 4)) {
- cprintf("250 This command successfully did nothing.\r\n");
+ cprintf("250 NOOP\r\n");
}
else if (!strncasecmp(cmdbuf, "QUIT", 4)) {
cprintf("221 Goodbye...\r\n");
CC->kill_me = 1;
return;
- }
+ }
else if (!strncasecmp(cmdbuf, "RCPT", 4)) {
smtp_rcpt(&cmdbuf[5]);
if (!strcasecmp(key, "retry")) {
/* double the retry interval after each attempt */
retry = extract_long(buf, 1) * 2L;
+ if (retry > SMTP_RETRY_MAX) {
+ retry = SMTP_RETRY_MAX;
+ }
remove_token(instr, i, '\n');
}
if (!strcasecmp(key, "attempted")) {