diff src/event/ngx_event_openssl.c @ 146:36af50a5582d NGINX_0_3_20

nginx 0.3.20 *) Bugfix: in SSI handling. *) Bugfix: the ngx_http_memcached_module did not support the keys in the "/usr?args" form.
author Igor Sysoev <http://sysoev.ru>
date Wed, 11 Jan 2006 00:00:00 +0300
parents 55a211e5eeb7
children 73e8476f9142
line wrap: on
line diff
--- a/src/event/ngx_event_openssl.c
+++ b/src/event/ngx_event_openssl.c
@@ -592,7 +592,9 @@ ngx_ssl_send_chain(ngx_connection_t *c, 
     ssize_t      send, size;
     ngx_buf_t   *buf;
 
-    if (!c->ssl->buffer || (in && in->next == NULL && !c->buffered)) {
+    if (!c->ssl->buffer
+        || (in && in->next == NULL && !(c->buffered & NGX_SSL_BUFFERED)))
+    {
 
         /*
          * we avoid a buffer copy if
@@ -613,7 +615,7 @@ ngx_ssl_send_chain(ngx_connection_t *c, 
             }
 
             if (n == NGX_AGAIN) {
-                c->buffered = 1;
+                c->buffered |= NGX_SSL_BUFFERED;
                 return in;
             }
 
@@ -689,7 +691,7 @@ ngx_ssl_send_chain(ngx_connection_t *c, 
         }
 
         if (n == NGX_AGAIN) {
-            c->buffered = 1;
+            c->buffered |= NGX_SSL_BUFFERED;
             return in;
         }
 
@@ -711,7 +713,12 @@ ngx_ssl_send_chain(ngx_connection_t *c, 
         }
     }
 
-    c->buffered = (buf->pos < buf->last) ? 1 : 0;
+    if (buf->pos < buf->last) {
+        c->buffered |= NGX_SSL_BUFFERED;
+
+    } else {
+        c->buffered &= ~NGX_SSL_BUFFERED;
+    }
 
     return in;
 }