X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fsmtp%2Fserv_smtp.c;h=b28ca2ef39a3ad434c582bf52aba193d1d4c2bc7;hb=e26a8dee20d1726b4995821f717f867f50fc5659;hp=d2fbe63840b603778225dcc9640bc590bf52c3d0;hpb=f1ee61891901850ebbdee1e9440b363dc6df540a;p=citadel.git diff --git a/citadel/modules/smtp/serv_smtp.c b/citadel/modules/smtp/serv_smtp.c index d2fbe6384..b28ca2ef3 100644 --- a/citadel/modules/smtp/serv_smtp.c +++ b/citadel/modules/smtp/serv_smtp.c @@ -131,11 +131,11 @@ void smtp_greeting(int is_msa) */ if ( (config.c_rbl_at_greeting) && (sSMTP->is_msa == 0) ) { if (rbl_check(message_to_spammer)) { - if (CtdlThreadCheckStop()) + if (server_shutting_down) cprintf("421 %s\r\n", message_to_spammer); else cprintf("550 %s\r\n", message_to_spammer); - CC->kill_me = 1; + CC->kill_me = KILLME_SPAMMER; /* no need to free_recipients(valid), it's not allocated yet */ return; } @@ -144,10 +144,8 @@ void smtp_greeting(int is_msa) /* Otherwise we're either clean or we check later. */ if (CC->nologin==1) { - cprintf("500 Too many users are already online (maximum is %d)\r\n", - config.c_maxsessions - ); - CC->kill_me = 1; + cprintf("451 Too many connections are already open; please try again later.\r\n"); + CC->kill_me = KILLME_MAX_SESSIONS_EXCEEDED; /* no need to free_recipients(valid), it's not allocated yet */ return; } @@ -165,7 +163,7 @@ void smtp_greeting(int is_msa) void smtps_greeting(void) { CtdlModuleStartCryptoMsgs(NULL, NULL, NULL); #ifdef HAVE_OPENSSL - if (!CC->redirect_ssl) CC->kill_me = 1; /* kill session if no crypto */ + if (!CC->redirect_ssl) CC->kill_me = KILLME_NO_CRYPTO; /* kill session if no crypto */ #endif smtp_greeting(0); } @@ -183,10 +181,8 @@ void smtp_msa_greeting(void) { * LMTP is like SMTP but with some extra bonus footage added. */ void lmtp_greeting(void) { - citsmtp *sSMTP; smtp_greeting(0); - sSMTP = SMTP; SMTP->is_lmtp = 1; } @@ -584,7 +580,7 @@ void smtp_rcpt(char *argbuf) { && (!sSMTP->is_lmtp) ) { /* Don't RBL LMTP clients */ if (config.c_rbl_at_greeting == 0) { /* Don't RBL again if we already did it */ if (rbl_check(message_to_spammer)) { - if (CtdlThreadCheckStop()) + if (server_shutting_down) cprintf("421 %s\r\n", message_to_spammer); else cprintf("550 %s\r\n", message_to_spammer); @@ -840,8 +836,8 @@ void smtp_command_loop(void) { time(&CC->lastcmd); memset(cmdbuf, 0, sizeof cmdbuf); /* Clear it, just in case */ if (client_getln(cmdbuf, sizeof cmdbuf) < 1) { - syslog(LOG_CRIT, "Client disconnected: ending session.\n"); - CC->kill_me = 1; + syslog(LOG_CRIT, "SMTP: client disconnected: ending session.\n"); + CC->kill_me = KILLME_CLIENT_DISCONNECTED; return; } syslog(LOG_INFO, "SMTP server: %s\n", cmdbuf); @@ -893,7 +889,7 @@ void smtp_command_loop(void) { else if (!strncasecmp(cmdbuf, "QUIT", 4)) { cprintf("221 Goodbye...\r\n"); - CC->kill_me = 1; + CC->kill_me = KILLME_CLIENT_LOGGED_OUT; return; } @@ -991,6 +987,6 @@ CTDL_MODULE_INIT(smtp) CtdlRegisterSessionHook(smtp_cleanup_function, EVT_STOP); } - /* return our Subversion id for the Log */ + /* return our module name for the log */ return "smtp"; }