)]}'
{
  "commit": "59205ce10909ca0b50fbc70f4bf98e539ce176d5",
  "tree": "7e1e5c8dfa7c679611e882169773c2cf713aa821",
  "parents": [
    "200a0d86562d23176d0147936c518e99cf807fa0"
  ],
  "author": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Mon Oct 31 09:53:16 2011 +0000"
  },
  "committer": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Mon Oct 31 09:53:16 2011 +0000"
  },
  "message": "Event pipe: fixes for complex protocols.\n\n1. In ngx_event_pipe_write_chain_to_temp_file() make sure to fully write\n   all shadow buffers up to last_shadow.  With this change recycled buffers\n   cannot appear in p-\u003eout anymore.  This also fixes segmentation faults\n   observed due to ngx_event_pipe_write_chain_to_temp() not freeing any\n   raw buffers while still returning NGX_OK.\n\n2. In ngx_event_pipe_write_to_downstream() we now properly check for busy\n   size as a size of buffers, not a size of data in these buffers.  This\n   fixes situations where all available buffers became busy (including\n   segmentation faults due to this).\n\n3. The ngx_event_pipe_free_shadow_raw_buf() function is dropped.  It\u0027s\n   incorrect and not needed.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4f45bb8725f4a5a55c85082415429194babc3fa5",
      "old_mode": 33188,
      "old_path": "src/event/ngx_event_pipe.c",
      "new_id": "a770485d46c4b31c61a3647e9b9e518053649232",
      "new_mode": 33188,
      "new_path": "src/event/ngx_event_pipe.c"
    }
  ]
}
