)]}'
{
  "commit": "027d692a8bf12344ae2e5793d5852c794e8e46e2",
  "tree": "f926dcda083c18517266b4fd1fabbbe51fbf6f5f",
  "parents": [
    "ebf77b9feb4b0cfe89ec45e2faa03c98e2fb043b"
  ],
  "author": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Mon May 30 21:25:33 2022 +0300"
  },
  "committer": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Mon May 30 21:25:33 2022 +0300"
  },
  "message": "Reworked multi headers to use linked lists.\n\nMulti headers are now using linked lists instead of arrays.  Notably,\nthe following fields were changed: r-\u003eheaders_in.cookies (renamed\nto r-\u003eheaders_in.cookie), r-\u003eheaders_in.x_forwarded_for,\nr-\u003eheaders_out.cache_control, r-\u003eheaders_out.link, u-\u003eheaders_in.cache_control\nu-\u003eheaders_in.cookies (renamed to u-\u003eheaders_in.set_cookie).\n\nThe r-\u003eheaders_in.cookies and u-\u003eheaders_in.cookies fields were renamed\nto r-\u003eheaders_in.cookie and u-\u003eheaders_in.set_cookie to match header names.\n\nThe ngx_http_parse_multi_header_lines() and ngx_http_parse_set_cookie_lines()\nfunctions were changed accordingly.\n\nWith this change, multi headers are now essentially equivalent to normal\nheaders, and following changes will further make them equivalent.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "153b6aaf34e65fb239c9b94526bf72cdb651a159",
      "old_mode": 33188,
      "old_path": "src/http/modules/ngx_http_geo_module.c",
      "new_id": "ef4e9b84aca8241a7b23425aba788c6637e3a989",
      "new_mode": 33188,
      "new_path": "src/http/modules/ngx_http_geo_module.c"
    },
    {
      "type": "modify",
      "old_id": "5ea4f5fb05fb2c44a557d1b45e4bbe1b04258591",
      "old_mode": 33188,
      "old_path": "src/http/modules/ngx_http_geoip_module.c",
      "new_id": "eaf98764f8713b72baa6707f89be9c79eb83a223",
      "new_mode": 33188,
      "new_path": "src/http/modules/ngx_http_geoip_module.c"
    },
    {
      "type": "modify",
      "old_id": "a4c8cc264ef6eae2ce7534476e2633d87c83c7c5",
      "old_mode": 33188,
      "old_path": "src/http/modules/ngx_http_headers_filter_module.c",
      "new_id": "995beb41bf59faff899287846f8f8978b0288988",
      "new_mode": 33188,
      "new_path": "src/http/modules/ngx_http_headers_filter_module.c"
    },
    {
      "type": "modify",
      "old_id": "7c4061c02cf428157d55305e49cf89371cce0261",
      "old_mode": 33188,
      "old_path": "src/http/modules/ngx_http_proxy_module.c",
      "new_id": "644dacd51dd2035897e4b563547fc313fa264f40",
      "new_mode": 33188,
      "new_path": "src/http/modules/ngx_http_proxy_module.c"
    },
    {
      "type": "modify",
      "old_id": "9586ebe077f1178edbde93982aa53e616ffcd1b1",
      "old_mode": 33188,
      "old_path": "src/http/modules/ngx_http_realip_module.c",
      "new_id": "f6731e78055147f9ee17cfd080b46923b0c7722c",
      "new_mode": 33188,
      "new_path": "src/http/modules/ngx_http_realip_module.c"
    },
    {
      "type": "modify",
      "old_id": "1e33c5c96cfa6c4e47166e1e016b9b70b69558ef",
      "old_mode": 33188,
      "old_path": "src/http/modules/ngx_http_userid_filter_module.c",
      "new_id": "e52844446c78d72fe3a20ec648e4383c0166bdef",
      "new_mode": 33188,
      "new_path": "src/http/modules/ngx_http_userid_filter_module.c"
    },
    {
      "type": "modify",
      "old_id": "caf7c084af4ae940240b69df7f5e2e9519dbb1ec",
      "old_mode": 33188,
      "old_path": "src/http/modules/perl/nginx.xs",
      "new_id": "e2180e6cfbfc341d3b951acd592498f4ab615abd",
      "new_mode": 33188,
      "new_path": "src/http/modules/perl/nginx.xs"
    },
    {
      "type": "modify",
      "old_id": "be8b7cd713cf3f18646b0e116f2270d888580992",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http.h",
      "new_id": "a7f312f41b2fca5ec23797e13e8a6e6d4044340a",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http.h"
    },
    {
      "type": "modify",
      "old_id": "ad8caad198dcb79eaec27c5e34b8a4df9df7607b",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_core_module.c",
      "new_id": "afb0862844e96373b0efb4d5261e61718a69d47e",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_core_module.c"
    },
    {
      "type": "modify",
      "old_id": "7ba64947bda47dacd12a60182bc52d4f2dae8727",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_core_module.h",
      "new_id": "49bbd4aa9529e4166eb201978e17a9ac599640b8",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_core_module.h"
    },
    {
      "type": "modify",
      "old_id": "6460da293582549255fde202a4d4dfc03564aac4",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_parse.c",
      "new_id": "d4f2dae8720b264551bd5e4db2be3a37d949647b",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_parse.c"
    },
    {
      "type": "modify",
      "old_id": "44e4d89dec1be162de39b56855f08d49b3ece627",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_request.c",
      "new_id": "57fdd2f666e3fe12730fef3e0b659526035d0efe",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_request.c"
    },
    {
      "type": "modify",
      "old_id": "52165793aa970f3f6e80a5d5524b86e144b390ac",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_request.h",
      "new_id": "8c9eed24938f53dd5847744abd71aa5897f69e8e",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_request.h"
    },
    {
      "type": "modify",
      "old_id": "46fde8396110186a076b25a03c0693f6b9150ee6",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_upstream.c",
      "new_id": "99d72be07d5211131a294435586d578529114e85",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_upstream.c"
    },
    {
      "type": "modify",
      "old_id": "3db7b0643483f8f9cfe31f52e11e3fe2008381d1",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_upstream.h",
      "new_id": "18a9c570bcffce8861e5916800676f4175461365",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_upstream.h"
    },
    {
      "type": "modify",
      "old_id": "b0f06ac7ca948b3b99214e32ca3cac045cbb3bf5",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_variables.c",
      "new_id": "69462f10cc1d917ba162ed5efa24c87cb74e96c7",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_variables.c"
    },
    {
      "type": "modify",
      "old_id": "62b6a047ca7ae8cadd55247114e5a5ccb98c762e",
      "old_mode": 33188,
      "old_path": "src/http/v2/ngx_http_v2_filter_module.c",
      "new_id": "5f8626a40be1ee0f053328175745a9c59b6b0801",
      "new_mode": 33188,
      "new_path": "src/http/v2/ngx_http_v2_filter_module.c"
    }
  ]
}
