diff options
author | Igor Sysoev <igor@sysoev.ru> | 2005-03-19 12:38:37 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2005-03-19 12:38:37 +0000 |
commit | c15717285d2157a603bb1b130b26d7baa549be7e (patch) | |
tree | 56dc8346b22bb2660eecd3bc086d263ac6d67326 /src/imap/ngx_imap_proxy.c | |
parent | e12fbfe82a176cd386cdcecfeabf43ac8fd870a4 (diff) | |
download | nginx-release-0.1.25.tar.gz nginx-release-0.1.25.zip |
nginx-0.1.25-RELEASE importrelease-0.1.25
*) Bugfix: nginx did run on Linux parisc.
*) Feature: nginx now does not start under FreeBSD if the sysctl
kern.ipc.somaxconn value is too big.
*) Bugfix: if a request was internally redirected by the
ngx_http_index_module module to the ngx_http_proxy_module or
ngx_http_fastcgi_module modules, then the index file was not closed
after request completion.
*) Feature: the "proxy_pass" can be used in location with regular
expression.
*) Feature: the ngx_http_rewrite_filter_module module supports the
condition like "if ($HTTP_USER_AGENT ~ MSIE)".
*) Bugfix: nginx started too slow if the large number of addresses and
text values were used in the "geo" directive.
*) Change: a variable name must be declared as "$name" in the "geo"
directive. The previous variant without "$" is still supported, but
will be removed soon.
*) Feature: the "%{VARIABLE}v" logging parameter.
*) Feature: the "set $name value" directive.
*) Bugfix: gcc 4.0 compatibility.
*) Feature: the --with-openssl-opt=OPTIONS autoconfiguration directive.
Diffstat (limited to 'src/imap/ngx_imap_proxy.c')
-rw-r--r-- | src/imap/ngx_imap_proxy.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/imap/ngx_imap_proxy.c b/src/imap/ngx_imap_proxy.c index dde349500..451fb3770 100644 --- a/src/imap/ngx_imap_proxy.c +++ b/src/imap/ngx_imap_proxy.c @@ -13,7 +13,6 @@ static void ngx_imap_proxy_block_read(ngx_event_t *rev); static void ngx_imap_proxy_auth_handler(ngx_event_t *rev); -static void ngx_imap_proxy_init_handler(ngx_event_t *wev); static void ngx_imap_proxy_dummy_handler(ngx_event_t *ev); static ngx_int_t ngx_imap_proxy_read_response(ngx_imap_session_t *s); static void ngx_imap_proxy_handler(ngx_event_t *ev); @@ -27,7 +26,8 @@ void ngx_imap_proxy_init(ngx_imap_session_t *s) struct sockaddr_in *sin; ngx_imap_proxy_ctx_t *p; - if (!(p = ngx_pcalloc(s->connection->pool, sizeof(ngx_imap_proxy_ctx_t)))) { + p = ngx_pcalloc(s->connection->pool, sizeof(ngx_imap_proxy_ctx_t)); + if (p == NULL) { ngx_imap_close_connection(s->connection); return; } @@ -36,7 +36,8 @@ void ngx_imap_proxy_init(ngx_imap_session_t *s) /**/ - if (!(peers = ngx_pcalloc(s->connection->pool, sizeof(ngx_peers_t)))) { + peers = ngx_pcalloc(s->connection->pool, sizeof(ngx_peers_t)); + if (peers == NULL) { ngx_imap_close_connection(s->connection); return; } @@ -45,7 +46,8 @@ void ngx_imap_proxy_init(ngx_imap_session_t *s) p->upstream.log = s->connection->log; p->upstream.log_error = NGX_ERROR_ERR; - if (!(sin = ngx_pcalloc(s->connection->pool, sizeof(struct sockaddr_in)))) { + sin = ngx_pcalloc(s->connection->pool, sizeof(struct sockaddr_in)); + if (sin == NULL) { ngx_imap_close_connection(s->connection); return; } @@ -146,14 +148,15 @@ static void ngx_imap_proxy_auth_handler(ngx_event_t *rev) ngx_log_debug0(NGX_LOG_DEBUG_IMAP, rev->log, 0, "imap proxy send user"); line.len = sizeof("USER ") + s->login.len - 1 + 2; - if (!(line.data = ngx_palloc(c->pool, line.len))) { + line.data = ngx_palloc(c->pool, line.len); + if (line.data == NULL) { ngx_imap_proxy_close_session(s); return; } p = ngx_cpymem(line.data, "USER ", sizeof("USER ") - 1); p = ngx_cpymem(p, s->login.data, s->login.len); - *p++ = CR; *p++ = LF; + *p++ = CR; *p = LF; if (ngx_send(c, line.data, line.len) < (ssize_t) line.len) { /* @@ -175,14 +178,15 @@ static void ngx_imap_proxy_auth_handler(ngx_event_t *rev) ngx_log_debug0(NGX_LOG_DEBUG_IMAP, rev->log, 0, "imap proxy send pass"); line.len = sizeof("PASS ") + s->passwd.len - 1 + 2; - if (!(line.data = ngx_palloc(c->pool, line.len))) { + line.data = ngx_palloc(c->pool, line.len); + if (line.data == NULL) { ngx_imap_proxy_close_session(s); return; } p = ngx_cpymem(line.data, "PASS ", sizeof("PASS ") - 1); p = ngx_cpymem(p, s->passwd.data, s->passwd.len); - *p++ = CR; *p++ = LF; + *p++ = CR; *p = LF; if (ngx_send(c, line.data, line.len) < (ssize_t) line.len) { /* |