)]}'
{
  "commit": "38e825463c36d99f2f09c898787d29f5a55b73c5",
  "tree": "ff76312fe9cba7e3c339e71a053c1888d1bdab45",
  "parents": [
    "cde1502636be71b201d380ba616acfb6c63110af"
  ],
  "author": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Sun Aug 29 22:22:02 2021 +0300"
  },
  "committer": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Sun Aug 29 22:22:02 2021 +0300"
  },
  "message": "Request body: reading body buffering in filters.\n\nIf a filter wants to buffer the request body during reading (for\nexample, to check an external scanner), it can now do so.  To make\nit possible, the code now checks rb-\u003elast_saved (introduced in the\nprevious change) along with rb-\u003erest \u003d\u003d 0.\n\nSince in HTTP/2 this requires flow control to avoid overflowing the\nrequest body buffer, so filters which need buffering have to set\nthe rb-\u003efilter_need_buffering flag on the first filter call.  (Note\nthat each filter is expected to call the next filter, so all filters\nwill be able set the flag if needed.)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8966578906f5e87cfca72c8b4cd26b18a86aac71",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_request.h",
      "new_id": "b1269d22dbe23dc6e1e9971964bf35f12a6d4799",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_request.h"
    },
    {
      "type": "modify",
      "old_id": "4a31db0bc8c88be5e1e42361356eb8cadbe0e848",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_request_body.c",
      "new_id": "89a4c7492678589e44ea6312b4b58e99ca6823b9",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_request_body.c"
    },
    {
      "type": "modify",
      "old_id": "9e248758d2e0fb0ac7af222f76aa909a73097c72",
      "old_mode": 33188,
      "old_path": "src/http/v2/ngx_http_v2.c",
      "new_id": "5ccb363601a3134fce75c2de55389ee7e8243506",
      "new_mode": 33188,
      "new_path": "src/http/v2/ngx_http_v2.c"
    }
  ]
}
