diff options
author | Igor Sysoev <igor@sysoev.ru> | 2005-10-27 15:46:13 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2005-10-27 15:46:13 +0000 |
commit | 697d1aea0c7b1525beed2911f9f32426280df8f4 (patch) | |
tree | 3c59875442d9a8114785a04003fcc3b7b059dc55 /src/imap/ngx_imap_proxy_module.c | |
parent | 968b2a868ba7950b7c11c81905eeb5ed87b889f2 (diff) | |
download | nginx-release-0.3.7.tar.gz nginx-release-0.3.7.zip |
nginx-0.3.7-RELEASE importrelease-0.3.7
*) Feature: the "access_log" supports the "buffer=" parameter.
*) Bugfix: nginx could not be built on platforms different from i386,
amd64, sparc, and ppc; the bug had appeared in 0.3.2.
Diffstat (limited to 'src/imap/ngx_imap_proxy_module.c')
-rw-r--r-- | src/imap/ngx_imap_proxy_module.c | 46 |
1 files changed, 6 insertions, 40 deletions
diff --git a/src/imap/ngx_imap_proxy_module.c b/src/imap/ngx_imap_proxy_module.c index bfbcc1cbe..e1cccf122 100644 --- a/src/imap/ngx_imap_proxy_module.c +++ b/src/imap/ngx_imap_proxy_module.c @@ -32,8 +32,8 @@ static char *ngx_imap_proxy_merge_conf(ngx_conf_t *cf, void *parent, void *child); -#define NGX_IMAP_WAIT_OK 0 -#define NGX_IMAP_WAIT_NEXT 1 +#define NGX_IMAP_WAIT_OK 0 +#define NGX_IMAP_WAIT_NEXT 1 static ngx_command_t ngx_imap_proxy_commands[] = { @@ -156,7 +156,6 @@ ngx_imap_proxy_block_read(ngx_event_t *rev) static void ngx_imap_proxy_imap_handler(ngx_event_t *rev) { - char *action; u_char *p; ngx_int_t rc; ngx_str_t line; @@ -194,21 +193,11 @@ ngx_imap_proxy_imap_handler(ngx_event_t *rev) return; } - if (rc == NGX_ERROR || rc == NGX_IMAP_PROXY_INVALID) { + if (rc == NGX_ERROR) { ngx_imap_proxy_internal_server_error(s); return; } - if (rc == NGX_IMAP_PROXY_ERROR) { - s->connection->read->handler = ngx_imap_proxy_handler; - s->connection->write->handler = ngx_imap_proxy_handler; - rev->handler = ngx_imap_proxy_handler; - c->write->handler = ngx_imap_proxy_handler; - - ngx_imap_proxy_handler(c->read); - return; - } - switch (s->imap_state) { case ngx_imap_start: @@ -294,10 +283,8 @@ ngx_imap_proxy_imap_handler(ngx_event_t *rev) ngx_add_timer(s->connection->read, pcf->timeout); ngx_del_timer(c->read); - action = c->log->action; c->log->action = NULL; ngx_log_error(NGX_LOG_INFO, c->log, 0, "client logged in"); - c->log->action = action; c->log->action = "proxying"; } @@ -307,7 +294,6 @@ ngx_imap_proxy_imap_handler(ngx_event_t *rev) static void ngx_imap_proxy_pop3_handler(ngx_event_t *rev) { - char *action; u_char *p; ngx_int_t rc; ngx_str_t line; @@ -344,21 +330,11 @@ ngx_imap_proxy_pop3_handler(ngx_event_t *rev) return; } - if (rc == NGX_ERROR || rc == NGX_IMAP_PROXY_INVALID) { + if (rc == NGX_ERROR) { ngx_imap_proxy_internal_server_error(s); return; } - if (rc == NGX_IMAP_PROXY_ERROR) { - s->connection->read->handler = ngx_imap_proxy_handler; - s->connection->write->handler = ngx_imap_proxy_handler; - rev->handler = ngx_imap_proxy_handler; - c->write->handler = ngx_imap_proxy_handler; - - ngx_imap_proxy_handler(c->read); - return; - } - switch (s->imap_state) { case ngx_pop3_start: @@ -425,10 +401,8 @@ ngx_imap_proxy_pop3_handler(ngx_event_t *rev) ngx_add_timer(s->connection->read, pcf->timeout); ngx_del_timer(c->read); - action = c->log->action; c->log->action = NULL; ngx_log_error(NGX_LOG_INFO, c->log, 0, "client logged in"); - c->log->action = action; c->log->action = "proxying"; } @@ -474,7 +448,7 @@ ngx_imap_proxy_read_response(ngx_imap_session_t *s, ngx_uint_t what) ngx_log_error(NGX_LOG_ERR, s->connection->log, 0, "upstream sent too long response line: \"%s\"", b->pos); - return NGX_IMAP_PROXY_INVALID; + return NGX_ERROR; } return NGX_AGAIN; @@ -487,15 +461,7 @@ ngx_imap_proxy_read_response(ngx_imap_session_t *s, ngx_uint_t what) return NGX_OK; } - if (p[0] == '-' && p[1] == 'E' && p[2] == 'R' && p[3] == 'R') { - return NGX_IMAP_PROXY_ERROR; - } - } else { - if (p[0] == 'N' && p[1] == 'O') { - return NGX_IMAP_PROXY_ERROR; - } - if (what == NGX_IMAP_WAIT_OK) { if (p[0] == '*' && p[1] == ' ' && p[2] == 'O' && p[3] == 'K') { return NGX_OK; @@ -512,7 +478,7 @@ ngx_imap_proxy_read_response(ngx_imap_session_t *s, ngx_uint_t what) ngx_log_error(NGX_LOG_ERR, s->connection->log, 0, "upstream sent invalid response: \"%s\"", p); - return NGX_IMAP_PROXY_INVALID; + return NGX_ERROR; } |