From 32162cfe7c7c8be861ef2c8edb9428a32b11a304 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Mon, 12 Feb 2007 04:05:58 +0000 Subject: [PATCH] Observe CC->nologin (too many users already online) for SMTP sessions --- citadel/citserver.c | 9 +++++---- citadel/serv_smtp.c | 10 ++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/citadel/citserver.c b/citadel/citserver.c index 2c3013f43..bfe27e518 100644 --- a/citadel/citserver.c +++ b/citadel/citserver.c @@ -865,8 +865,9 @@ void begin_session(struct CitContext *con) con->dl_is_net = 0; con->nologin = 0; - if ((config.c_maxsessions > 0)&&(num_sessions > config.c_maxsessions)) + if ((config.c_maxsessions > 0)&&(num_sessions > config.c_maxsessions)) { con->nologin = 1; + } lprintf(CTDL_NOTICE, "Session started.\n"); @@ -877,10 +878,10 @@ void begin_session(struct CitContext *con) void citproto_begin_session() { if (CC->nologin==1) { - cprintf("%d %s: Too many users are already online " - "(maximum is %d)\n", + cprintf("%d %s: Too many users are already online (maximum is %d)\n", ERROR + MAX_SESSIONS_EXCEEDED, - config.c_nodename, config.c_maxsessions); + config.c_nodename, config.c_maxsessions + ); } else { cprintf("%d %s Citadel server ready.\n", diff --git a/citadel/serv_smtp.c b/citadel/serv_smtp.c index cc05b14db..56d1fb90a 100644 --- a/citadel/serv_smtp.c +++ b/citadel/serv_smtp.c @@ -155,6 +155,16 @@ void smtp_greeting(void) } /* 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; + /* no need to free(valid), it's not allocated yet */ + return; + } + cprintf("220 %s ESMTP Citadel server ready.\r\n", config.c_fqdn); } -- 2.39.2