aboutsummaryrefslogtreecommitdiff
path: root/src/imap/ngx_imap_handler.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/imap/ngx_imap_handler.c')
-rw-r--r--src/imap/ngx_imap_handler.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/imap/ngx_imap_handler.c b/src/imap/ngx_imap_handler.c
index be2c9d1c5..680bf20d0 100644
--- a/src/imap/ngx_imap_handler.c
+++ b/src/imap/ngx_imap_handler.c
@@ -24,6 +24,11 @@ static ngx_str_t greetings[] = {
ngx_string("* OK " NGINX_VER " ready" CRLF)
};
+static ngx_str_t internal_server_errors[] = {
+ ngx_string("-ERR internal server error" CRLF),
+ ngx_string("* BAD internal server error" CRLF),
+};
+
static u_char pop3_ok[] = "+OK" CRLF;
static u_char pop3_invalid_command[] = "-ERR invalid command" CRLF;
@@ -342,6 +347,16 @@ ngx_imap_close_session(ngx_imap_session_t *s)
void
+ngx_imap_session_internal_server_error(ngx_imap_session_t *s)
+{
+ (void) ngx_send(s->connection, internal_server_errors[s->protocol].data,
+ internal_server_errors[s->protocol].len);
+
+ ngx_imap_close_connection(s->connection);
+}
+
+
+void
ngx_imap_close_connection(ngx_connection_t *c)
{
ngx_pool_t *pool;