aboutsummaryrefslogtreecommitdiff
path: root/src/imap/ngx_imap_handler.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2005-06-23 13:41:06 +0000
committerIgor Sysoev <igor@sysoev.ru>2005-06-23 13:41:06 +0000
commit85ef94ba857237882c7e68dea87a1dbc68a38fe7 (patch)
tree1bc05e18adaabc75f91f1c7b34c7358e60b0efdc /src/imap/ngx_imap_handler.c
parent2e87bb645af1d3152c9961d49ca093d4cbfe630d (diff)
downloadnginx-85ef94ba857237882c7e68dea87a1dbc68a38fe7.tar.gz
nginx-85ef94ba857237882c7e68dea87a1dbc68a38fe7.zip
nginx-0.1.37-RELEASE importrelease-0.1.37
*) Change: now the "\n" is added to the end of the "nginx.pid" file. *) Bugfix: the responses may be transferred not completely, if many parts or the big parts were included by SSI. *) Bugfix: if all backends had returned the 404 reponse and the "http_404" parameter of the "proxy_next_upstream" or "fastcgi_next_upstream" directives was used, then nginx started to request all backends again.
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;