)]}'
{
  "commit": "7a79cf69829adb351aef39f52ef76b64169aa2bc",
  "tree": "e4dc84d2f6225a95af091b45ed63a4bce1ee723c",
  "parents": [
    "ff089ad94c37bd865769a93cb86889d8d85cda10"
  ],
  "author": {
    "name": "Paul Marks",
    "email": "pmarks@google.com",
    "time": "Tue Dec 01 19:54:17 2015 -0800"
  },
  "committer": {
    "name": "Paul Marks",
    "email": "pmarks@google.com",
    "time": "Tue Dec 01 19:54:17 2015 -0800"
  },
  "message": "Use both IPv4+IPv6 sockets to check whether a port is free.\n\nThis allows the portpicker to function in dual-stack and IPv4/IPv6-only\nenvironments.\n\nFor a port to be considered available, the kernel must support at least\none of (IPv6, IPv4), and the port must be available on each supported\nfamily.\n\nUse identical/redundant implementations of bind() and is_port_free()\nbetween portpicker and portserver.  I am assuming that these were\nintentionally designed as self-contained programs, instead of sharing a\ncommon library.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a77869e7bf2dbc0afd051db093319f14dac1ce25",
      "old_mode": 33188,
      "old_path": "src/portpicker.py",
      "new_id": "f5315cd3204fa2585ef9cc0c67b7c1f975b866e8",
      "new_mode": 33188,
      "new_path": "src/portpicker.py"
    },
    {
      "type": "modify",
      "old_id": "54a480f1100ee80553fd8c529b0f0a648638141e",
      "old_mode": 33188,
      "old_path": "src/portserver.py",
      "new_id": "493f45f7ce4c1bbbf69b5ff600b72e3252570aeb",
      "new_mode": 33188,
      "new_path": "src/portserver.py"
    },
    {
      "type": "modify",
      "old_id": "daabb41e4c5579d067a4825a23a2a40a94560001",
      "old_mode": 33188,
      "old_path": "src/tests/portpicker_test.py",
      "new_id": "9e826a63d21659e00c9e327a3e313621668c9534",
      "new_mode": 33188,
      "new_path": "src/tests/portpicker_test.py"
    },
    {
      "type": "modify",
      "old_id": "2e49595972e7ec82a1dc06c24d3f013bcaf193f2",
      "old_mode": 33188,
      "old_path": "src/tests/portserver_test.py",
      "new_id": "f0475c36932793a53eec043b1d1ae8b866f7ef5c",
      "new_mode": 33188,
      "new_path": "src/tests/portserver_test.py"
    }
  ]
}
