diff options
Diffstat (limited to 'src/imap/ngx_imap_handler.c')
-rw-r--r-- | src/imap/ngx_imap_handler.c | 15 |
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; |