*/
void smtps_greeting(void) {
CtdlModuleStartCryptoMsgs(NULL, NULL, NULL);
+ if (!CC->redirect_ssl) CC->kill_me = 1; /* kill session if no crypto */
smtp_greeting(0);
}
config.c_fqdn,
nowstamp);
- body = CtdlReadMessageBody(".", config.c_maxmsglen, body, 1);
+ body = CtdlReadMessageBody(".", config.c_maxmsglen, body, 1, 0);
if (body == NULL) {
cprintf("550 5.6.5 "
"Unable to save message: internal error.\r\n");
if (!strncasecmp(buf, "From:", 5)) {
safestrncpy(mailfrom, &buf[5], sizeof mailfrom);
striplt(mailfrom);
- for (i=0; !IsEmptyStr(&mailfrom[i]); ++i) {
+ for (i=0; mailfrom[i]; ++i) {
if (!isprint(mailfrom[i])) {
strcpy(&mailfrom[i], &mailfrom[i+1]);
i=0;
/* Strip out parenthesized names */
lp = (-1);
rp = (-1);
- for (i=0; !IsEmptyStr(&mailfrom[i]); ++i) {
+ for (i=0; mailfrom[i]; ++i) {
if (mailfrom[i] == '(') lp = i;
if (mailfrom[i] == ')') rp = i;
}
/* Prefer brokketized names */
lp = (-1);
rp = (-1);
- for (i=0; !IsEmptyStr(&mailfrom[i]); ++i) {
+ for (i=0; mailfrom[i]; ++i) {
if (mailfrom[i] == '<') lp = i;
if (mailfrom[i] == '>') rp = i;
}
-
+const char *CitadelServiceSMTP_MTA="SMTP-MTA";
+const char *CitadelServiceSMTPS_MTA="SMTPs-MTA";
+const char *CitadelServiceSMTP_MSA="SMTP-MSA";
+const char *CitadelServiceSMTP_LMTP="LMTP";
+const char *CitadelServiceSMTP_LMTP_UNF="LMTP-UnF";
CTDL_MODULE_INIT(smtp)
{
NULL,
smtp_mta_greeting,
smtp_command_loop,
- NULL);
+ NULL,
+ CitadelServiceSMTP_MTA);
#ifdef HAVE_OPENSSL
CtdlRegisterServiceHook(config.c_smtps_port,
NULL,
smtps_greeting,
smtp_command_loop,
- NULL);
+ NULL,
+ CitadelServiceSMTPS_MTA);
#endif
CtdlRegisterServiceHook(config.c_msa_port, /* SMTP MSA */
NULL,
smtp_msa_greeting,
smtp_command_loop,
- NULL);
+ NULL,
+ CitadelServiceSMTP_MSA);
CtdlRegisterServiceHook(0, /* local LMTP */
file_lmtp_socket,
lmtp_greeting,
smtp_command_loop,
- NULL);
+ NULL,
+ CitadelServiceSMTP_LMTP);
CtdlRegisterServiceHook(0, /* local LMTP */
file_lmtp_unfiltered_socket,
lmtp_unfiltered_greeting,
smtp_command_loop,
- NULL);
+ NULL,
+ CitadelServiceSMTP_LMTP_UNF);
smtp_init_spoolout();
CtdlRegisterSessionHook(smtp_do_queue, EVT_TIMER);