Mercurial > hg > nginx
diff src/imap/ngx_imap_proxy.c @ 501:d4ea69372b94 release-0.1.25
nginx-0.1.25-RELEASE import
*) 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.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sat, 19 Mar 2005 12:38:37 +0000 |
parents | c52408583801 |
children | 9b8c906f6e63 |
line wrap: on
line diff
--- 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_sessio 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_sessio /**/ - 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_sessio 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_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_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) { /*