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) {
         /*