diff src/os/win32/ngx_wsasend_chain.c @ 5850:f9c83484d9ce

Moved the code for adjusting sent buffers in a separate function.
author Valentin Bartenev <vbart@nginx.com>
date Wed, 13 Aug 2014 15:11:45 +0400
parents d620f497c50f
children 150df089fe47
line wrap: on
line diff
--- a/src/os/win32/ngx_wsasend_chain.c
+++ b/src/os/win32/ngx_wsasend_chain.c
@@ -119,29 +119,7 @@ ngx_wsasend_chain(ngx_connection_t *c, n
 
         c->sent += sent;
 
-        for (cl = in; cl; cl = cl->next) {
-
-            if (ngx_buf_special(cl->buf)) {
-                continue;
-            }
-
-            if (sent == 0) {
-                break;
-            }
-
-            size = cl->buf->last - cl->buf->pos;
-
-            if (sent >= size) {
-                sent -= size;
-                cl->buf->pos = cl->buf->last;
-
-                continue;
-            }
-
-            cl->buf->pos += sent;
-
-            break;
-        }
+        cl = ngx_handle_sent_chain(in, sent);
 
         if (!complete) {
             wev->ready = 0;
@@ -308,28 +286,7 @@ ngx_overlapped_wsasend_chain(ngx_connect
 
     c->sent += sent;
 
-    for (cl = in; cl && sent > 0; cl = cl->next) {
-        if (ngx_buf_special(cl->buf)) {
-            continue;
-        }
-
-        if (sent == 0) {
-            break;
-        }
-
-        size = cl->buf->last - cl->buf->pos;
-
-        if (sent >= size) {
-            sent -= size;
-            cl->buf->pos = cl->buf->last;
-
-            continue;
-        }
-
-        cl->buf->pos += sent;
-
-        break;
-    }
+    cl = ngx_handle_sent_chain(in, sent);
 
     if (cl) {
         wev->ready = 0;