Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package nginx for openSUSE:Factory checked 
in at 2021-09-16 23:14:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nginx (Old)
 and      /work/SRC/openSUSE:Factory/.nginx.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nginx"

Thu Sep 16 23:14:30 2021 rev:70 rq:918014 version:1.21.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/nginx/nginx.changes      2021-09-03 
21:25:26.486119132 +0200
+++ /work/SRC/openSUSE:Factory/.nginx.new.1899/nginx.changes    2021-09-16 
23:16:43.583925935 +0200
@@ -1,0 +2,9 @@
+Fri Sep 10 17:44:54 UTC 2021 - ???????? ???????????? <i...@ilya.pp.ua>
+
+- Updated to 1.21.3
+  * https://nginx.org/en/CHANGES
+  * Optimization of client request body reading when using HTTP/2.
+  * Fixed request body filters internal API when using HTTP/2 and
+    buffering of the data being processed.
+
+-------------------------------------------------------------------

Old:
----
  nginx-1.21.2.tar.gz
  nginx-1.21.2.tar.gz.asc

New:
----
  nginx-1.21.3.tar.gz
  nginx-1.21.3.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nginx.spec ++++++
--- /var/tmp/diff_new_pack.TFPHtJ/_old  2021-09-16 23:16:44.279926656 +0200
+++ /var/tmp/diff_new_pack.TFPHtJ/_new  2021-09-16 23:16:44.283926661 +0200
@@ -23,7 +23,7 @@
 %bcond_with    ngx_google_perftools
 #
 Name:           nginx
-Version:        1.21.2
+Version:        1.21.3
 Release:        0
 Summary:        A HTTP server and IMAP/POP3 proxy server
 License:        BSD-2-Clause

++++++ nginx-1.21.2.tar.gz -> nginx-1.21.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nginx-1.21.2/CHANGES new/nginx-1.21.3/CHANGES
--- old/nginx-1.21.2/CHANGES    2021-08-31 17:13:56.000000000 +0200
+++ new/nginx-1.21.3/CHANGES    2021-09-07 17:21:08.000000000 +0200
@@ -1,4 +1,13 @@
 
+Changes with nginx 1.21.3                                        07 Sep 2021
+
+    *) Change: optimization of client request body reading when using
+       HTTP/2.
+
+    *) Bugfix: in request body filters internal API when using HTTP/2 and
+       buffering of the data being processed.
+
+
 Changes with nginx 1.21.2                                        31 Aug 2021
 
     *) Change: now nginx rejects HTTP/1.0 requests with the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nginx-1.21.2/CHANGES.ru new/nginx-1.21.3/CHANGES.ru
--- old/nginx-1.21.2/CHANGES.ru 2021-08-31 17:13:53.000000000 +0200
+++ new/nginx-1.21.3/CHANGES.ru 2021-09-07 17:21:06.000000000 +0200
@@ -1,4 +1,12 @@
 
+?????????????????? ?? nginx 1.21.3                                          
07.09.2021
+
+    *) ??????????????????: ?????????????????????? ???????????? ???????? 
?????????????? ?????? ?????????????????????????? HTTP/2.
+
+    *) ??????????????????????: ???? ???????????????????? API ?????? 
?????????????????? ???????? ?????????????? ??????
+       ?????????????????????????? HTTP/2 ?? ?????????????????????? 
???????????????????????????? ????????????.
+
+
 ?????????????????? ?? nginx 1.21.2                                          
31.08.2021
 
     *) ??????????????????: ???????????? nginx ???????????????????? 
????????????, ???????? ?? ?????????????? ????
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nginx-1.21.2/src/core/nginx.h 
new/nginx-1.21.3/src/core/nginx.h
--- old/nginx-1.21.2/src/core/nginx.h   2021-08-31 17:13:47.000000000 +0200
+++ new/nginx-1.21.3/src/core/nginx.h   2021-09-07 17:21:03.000000000 +0200
@@ -9,8 +9,8 @@
 #define _NGINX_H_INCLUDED_
 
 
-#define nginx_version      1021002
-#define NGINX_VERSION      "1.21.2"
+#define nginx_version      1021003
+#define NGINX_VERSION      "1.21.3"
 #define NGINX_VER          "nginx/" NGINX_VERSION
 
 #ifdef NGX_BUILD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nginx-1.21.2/src/http/v2/ngx_http_v2.c 
new/nginx-1.21.3/src/http/v2/ngx_http_v2.c
--- old/nginx-1.21.2/src/http/v2/ngx_http_v2.c  2021-08-31 17:13:47.000000000 
+0200
+++ new/nginx-1.21.3/src/http/v2/ngx_http_v2.c  2021-09-07 17:21:03.000000000 
+0200
@@ -1092,7 +1092,7 @@
 ngx_http_v2_state_read_data(ngx_http_v2_connection_t *h2c, u_char *pos,
     u_char *end)
 {
-    size_t                   size, window;
+    size_t                   size;
     ngx_buf_t               *buf;
     ngx_int_t                rc;
     ngx_connection_t        *fc;
@@ -1148,32 +1148,6 @@
             ngx_http_finalize_request(r, rc);
         }
 
-        if (rc == NGX_AGAIN && !stream->no_flow_control) {
-            buf = r->request_body->buf;
-            window = buf->end - buf->last;
-
-            window -= h2c->state.length - size;
-
-            if (window < stream->recv_window) {
-                ngx_log_error(NGX_LOG_ALERT, h2c->connection->log, 0,
-                              "http2 negative window update");
-                return ngx_http_v2_connection_error(h2c,
-                                                    
NGX_HTTP_V2_INTERNAL_ERROR);
-            }
-
-            if (window > stream->recv_window) {
-                if (ngx_http_v2_send_window_update(h2c, stream->node->id,
-                                                   window - 
stream->recv_window)
-                    == NGX_ERROR)
-                {
-                    return ngx_http_v2_connection_error(h2c,
-                                                    
NGX_HTTP_V2_INTERNAL_ERROR);
-                }
-
-                stream->recv_window = window;
-            }
-        }
-
         ngx_http_run_posted_requests(fc);
 
     } else if (size) {
@@ -4214,8 +4188,8 @@
 
                 /* update chains */
 
-                ngx_log_error(NGX_LOG_DEBUG, fc->log, 0,
-                              "http2 body update chains");
+                ngx_log_debug0(NGX_LOG_DEBUG_HTTP, fc->log, 0,
+                               "http2 body update chains");
 
                 rc = ngx_http_v2_filter_request_body(r);
 
@@ -4255,30 +4229,22 @@
                 rb->rest = 0;
             }
 
-            if (r->request_body_no_buffering) {
+            if (size == 0) {
                 break;
             }
+        }
 
-            /* pass buffer to request body filter chain */
+        ngx_log_debug1(NGX_LOG_DEBUG_HTTP, fc->log, 0,
+                       "http2 request body rest %O", rb->rest);
 
+        if (flush) {
             rc = ngx_http_v2_filter_request_body(r);
 
             if (rc != NGX_OK) {
                 return rc;
             }
-
-            if (rb->rest == 0) {
-                break;
-            }
-
-            if (size == 0) {
-                break;
-            }
         }
 
-        ngx_log_debug1(NGX_LOG_DEBUG_HTTP, fc->log, 0,
-                       "http2 request body rest %O", rb->rest);
-
         if (rb->rest == 0 && rb->last_saved) {
             break;
         }
@@ -4287,9 +4253,8 @@
             clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
             ngx_add_timer(fc->read, clcf->client_body_timeout);
 
-            if (r->request_body_no_buffering) {
+            if (!flush) {
                 ngx_post_event(fc->read, &ngx_posted_events);
-                return NGX_AGAIN;
             }
 
             return NGX_AGAIN;
@@ -4301,7 +4266,10 @@
     }
 
     if (r->request_body_no_buffering) {
-        ngx_post_event(fc->read, &ngx_posted_events);
+        if (!flush) {
+            ngx_post_event(fc->read, &ngx_posted_events);
+        }
+
         return NGX_OK;
     }
 
@@ -4455,14 +4423,26 @@
         return;
     }
 
+    if (r->stream->no_flow_control) {
+        return;
+    }
+
     if (r->request_body->rest == 0) {
         return;
     }
 
+    if (r->request_body->busy != NULL) {
+        return;
+    }
+
     stream = r->stream;
     h2c = stream->connection;
 
     buf = r->request_body->buf;
+
+    buf->pos = buf->start;
+    buf->last = buf->start;
+
     window = buf->end - buf->start;
 
     if (h2c->state.stream == stream) {
@@ -4511,7 +4491,6 @@
     ngx_connection_t          *fc;
     ngx_http_v2_stream_t      *stream;
     ngx_http_v2_connection_t  *h2c;
-    ngx_http_core_loc_conf_t  *clcf;
 
     stream = r->stream;
     fc = r->connection;
@@ -4535,14 +4514,14 @@
         return NGX_HTTP_BAD_REQUEST;
     }
 
-    rc = ngx_http_v2_filter_request_body(r);
+    rc = ngx_http_v2_process_request_body(r, NULL, 0, r->stream->in_closed, 1);
 
-    if (rc != NGX_OK) {
+    if (rc != NGX_OK && rc != NGX_AGAIN) {
         stream->skip_data = 1;
         return rc;
     }
 
-    if (r->request_body->rest == 0 && r->request_body->last_saved) {
+    if (rc == NGX_OK) {
         return NGX_OK;
     }
 
@@ -4590,11 +4569,6 @@
         return NGX_HTTP_INTERNAL_SERVER_ERROR;
     }
 
-    if (stream->recv_window == 0) {
-        clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
-        ngx_add_timer(fc->read, clcf->client_body_timeout);
-    }
-
     stream->recv_window = window;
 
     return NGX_AGAIN;

Reply via email to