)]}'
{
  "commit": "70a49bba40a2bd07271130309fb3059f23335105",
  "tree": "ddf816343a22110f5af6de9efed92713c4749762",
  "parents": [
    "919f6db484ba8d99fb926aa8e1c8e2eaffe2abce"
  ],
  "author": {
    "name": "Kent Hagerman",
    "email": "khagerma@ciena.com",
    "time": "Thu Aug 29 17:21:03 2019 -0400"
  },
  "committer": {
    "name": "Kent Hagerman",
    "email": "khagerma@ciena.com",
    "time": "Tue Sep 03 17:18:55 2019 +0000"
  },
  "message": "Reworked connection to use a single thread for state management.\n\nAlso disabled the SetConnection API call.\n\nStream cleanup.\n\nRemoved Unnescessary threads, there is now one thread per connection (handling response stream forwarding), and the existing thread is used to forward the request stream.\nRenamed \u0027streams\u0027 to \u0027request\u0027.\nRenamed \u0027nbFrame\u0027 to \u0027requestFrame\u0027.\nRenamed \u0027sbFrame\u0027 to \u0027responseFrame\u0027.\n\nChanged handling of streaming requests.\n\nIncoming \u0026 Outgoing streams are split when a connection becomes ready.\nAdded playback of non-streaming requests/responses for newly opened streams.\n\nLate stream catchup fix \u0026 streaming call detection.\n\nFixed an issue where old streams were not being caught up with what they missed.\nStreaming requests \u0026 responses are now detected based on the proto definitions.\nChanged where the proto file is specified in the afrouter config (see afrouter/arouter.json for an example).\n\nFixed mutex copy.\n\nAlso tweaked some log statements.\n\nFixed field tag lint error.\n\nChange-Id: I6e14039c27519d8d2103065258ff4302bc881235\n(cherry picked from commit 03b58999ad8ce39d1c61af5cc62bfdeccd04be3a)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "239084657876c7ae86f1b6d5eb8f03294ee743be",
      "old_mode": 33188,
      "old_path": "afrouter/afrouter/affinity-router.go",
      "new_id": "583d0a70873814089a6e25ef380956ed9b356088",
      "new_mode": 33188,
      "new_path": "afrouter/afrouter/affinity-router.go"
    },
    {
      "type": "modify",
      "old_id": "87f5573cac0496ca01ad3ba8743c6558306d854c",
      "old_mode": 33188,
      "old_path": "afrouter/afrouter/api.go",
      "new_id": "3e47ef812ea1fb1a1ee5bc02ee21d7f32919a5a0",
      "new_mode": 33188,
      "new_path": "afrouter/afrouter/api.go"
    },
    {
      "type": "modify",
      "old_id": "31f431af38b6297993e11d872c999ec4a5d78100",
      "old_mode": 33188,
      "old_path": "afrouter/afrouter/backend.go",
      "new_id": "3c7815dbbeca1e5caf5e9643129265b3967aad18",
      "new_mode": 33188,
      "new_path": "afrouter/afrouter/backend.go"
    },
    {
      "type": "modify",
      "old_id": "67a7a7e4dcbcd198463d053199ced3dc72bde880",
      "old_mode": 33188,
      "old_path": "afrouter/afrouter/binding-router.go",
      "new_id": "dd737567ae7c09a9f6e6d69e2f0357d282657f59",
      "new_mode": 33188,
      "new_path": "afrouter/afrouter/binding-router.go"
    },
    {
      "type": "modify",
      "old_id": "879246b40a35cd80a92837c78c6704cd8d0fcfe5",
      "old_mode": 33188,
      "old_path": "afrouter/afrouter/cluster.go",
      "new_id": "e33db67be7459c73dd6c5a015d451f5166711257",
      "new_mode": 33188,
      "new_path": "afrouter/afrouter/cluster.go"
    },
    {
      "type": "modify",
      "old_id": "675320a5e12f096e856b61ed11573fafe7506974",
      "old_mode": 33188,
      "old_path": "afrouter/afrouter/codec.go",
      "new_id": "7ea6ef21c0430fe08360542ba914a1c9e0f5f8d4",
      "new_mode": 33188,
      "new_path": "afrouter/afrouter/codec.go"
    },
    {
      "type": "modify",
      "old_id": "1f0be7bca6c5f19a3883c730b995a6c0f2a19255",
      "old_mode": 33188,
      "old_path": "afrouter/afrouter/config.go",
      "new_id": "60081997cf5f1b36e3c2f0b29b628ac3f8009958",
      "new_mode": 33188,
      "new_path": "afrouter/afrouter/config.go"
    },
    {
      "type": "modify",
      "old_id": "fab1052ae66cb19112148c676a108332a85d4762",
      "old_mode": 33188,
      "old_path": "afrouter/afrouter/connection.go",
      "new_id": "dcdb8d66b37774e716bacb6eeddb93833144ec96",
      "new_mode": 33188,
      "new_path": "afrouter/afrouter/connection.go"
    },
    {
      "type": "modify",
      "old_id": "2c1ca4f2dcb6743b38c2b34672849e4a15a417e6",
      "old_mode": 33188,
      "old_path": "afrouter/afrouter/method-router.go",
      "new_id": "fd3b97460d9f40683964de1a3713864ae8c74d44",
      "new_mode": 33188,
      "new_path": "afrouter/afrouter/method-router.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0af20e3995384948c83de2f3d69dc64fcb7a3934",
      "new_mode": 33188,
      "new_path": "afrouter/afrouter/request.go"
    },
    {
      "type": "modify",
      "old_id": "70f164a2f0019b5876109a38bde1d6d6fa5b17a3",
      "old_mode": 33188,
      "old_path": "afrouter/afrouter/round-robin-router.go",
      "new_id": "60ff4576904f61a3eed79a176bc65538657f15bf",
      "new_mode": 33188,
      "new_path": "afrouter/afrouter/round-robin-router.go"
    },
    {
      "type": "modify",
      "old_id": "323ffb2424d8b1bfd09c5ef482307a2ce3e91441",
      "old_mode": 33188,
      "old_path": "afrouter/afrouter/router.go",
      "new_id": "1bd2d6e05c4bf8d715c016e2b932d04c00bbb0c3",
      "new_mode": 33188,
      "new_path": "afrouter/afrouter/router.go"
    },
    {
      "type": "modify",
      "old_id": "dff1519a2a15829f7c024b78bf8dd0f9d89b0f70",
      "old_mode": 33188,
      "old_path": "afrouter/afrouter/server.go",
      "new_id": "82269d2b84610acf9d73c37a0a23820d91a3d716",
      "new_mode": 33188,
      "new_path": "afrouter/afrouter/server.go"
    },
    {
      "type": "delete",
      "old_id": "bb7faeadedea445e91b60a5dd4ca685892bb3fdf",
      "old_mode": 33188,
      "old_path": "afrouter/afrouter/streams.go",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "7739d658b74afa86676d938927321e379b371b64",
      "old_mode": 33188,
      "old_path": "afrouter/arouter.json",
      "new_id": "50364028feb0a6b0f0d80154864cefdacabb429b",
      "new_mode": 33188,
      "new_path": "afrouter/arouter.json"
    }
  ]
}
