)]}'
{
  "commit": "4e8c772c6e0ab76a5055a40d3201b95ee0ee10da",
  "tree": "b5e1da8523d966f7cfb429288ab255878f4a2a55",
  "parents": [
    "9126e56298db804fbf586c064df021c8881e7b02"
  ],
  "author": {
    "name": "Roman Arutyunyan",
    "email": "arut@nginx.com",
    "time": "Tue Mar 15 15:55:23 2016 +0300"
  },
  "committer": {
    "name": "Roman Arutyunyan",
    "email": "arut@nginx.com",
    "time": "Tue Mar 15 15:55:23 2016 +0300"
  },
  "message": "Stream: post first read events from client and upstream.\n\nThe main proxy function ngx_stream_proxy_process() can terminate the stream\nsession.  The code, following it, should check its return code to make sure the\nsession still exists.  This happens in client and upstream initialization\nfunctions.  Swapping ngx_stream_proxy_process() call with the code, that\nfollows it, leaves the same problem vice versa.\n\nIn future ngx_stream_proxy_process() will call ngx_stream_proxy_next_upstream()\nmaking it too complicated to know if stream session still exists after this\ncall.\n\nNow ngx_stream_proxy_process() is called from posted event handlers in both\nplaces with no code following it.  The posted event is automatically removed\nonce session is terminated.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b969fea14b6b9619f4ed93ca901ac63e55306b80",
      "old_mode": 33188,
      "old_path": "src/stream/ngx_stream_proxy_module.c",
      "new_id": "a83d627d72018067b9546496f24a8393d7d8040b",
      "new_mode": 33188,
      "new_path": "src/stream/ngx_stream_proxy_module.c"
    }
  ]
}
