)]}'
{
  "commit": "5b03c8fd1c54397eded6bf84ef52ac610d79bddd",
  "tree": "95b3ba45c474f2a65654834a4f0fef1184a4f667",
  "parents": [
    "abed22499d36aa35b3a5c829a88316b0c8280d74"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Mon Oct 28 17:42:12 2024 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Nov 06 23:56:37 2024 +0000"
  },
  "message": "Redo DTLS retransmit tests\n\nPreviously, we tested DTLS retransmit by hooking *before* processing a\nflight and bracketing one flight\u0027s worth of packets and then dropping\nall of them, with minimal processing. We\u0027d then repeat this a few times\nand, once we were satisfied, actually process the next flight. This has\na few drawbacks:\n\n1. We cannot interleave timeouts with chunks of the next flight.\n   Retransmit of the peer\u0027s flight, in both 1.2 and 1.3, interacts with\n   the peer receiving all or parts of the next flight, and in different\n   ways.\n\n2. We cannot easily, in 1.3, ACK part of a flight and then wait for the\n   shim to retransmit the other part.\n\nThe new design instead hooks *after* we construct the reply to the\npeer\u0027s flight under test. We buffer up all the data to be sent and then\ncall into a test-supplied callback that can control the exact order of\ntimeouts, etc. See the comment on DTLSController for more details.\n\nAs part of this, ChangeCipherSpec is now implicitly ordered with\nReorderHandshakeFragments, so there is no more need to carry\nReorderChangeCipherSpec separately.\n\nBug: 42290594\nChange-Id: I754946dbb5591188aa2d32b694f213269836b266\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/72708\nReviewed-by: Nick Harper \u003cnharper@chromium.org\u003e\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "64a02e5030ccdbc4856e9fa683f343131d325085",
      "old_mode": 33188,
      "old_path": "ssl/test/runner/common.go",
      "new_id": "82fde256bc8f459b2f99d2e3211b27b98a9c0010",
      "new_mode": 33188,
      "new_path": "ssl/test/runner/common.go"
    },
    {
      "type": "modify",
      "old_id": "d63242e7276a1a9fc81735eb1f39ab69b10c30cf",
      "old_mode": 33188,
      "old_path": "ssl/test/runner/conn.go",
      "new_id": "23d53f56c4534e80a75837f803a4dafe96f461e8",
      "new_mode": 33188,
      "new_path": "ssl/test/runner/conn.go"
    },
    {
      "type": "modify",
      "old_id": "2f993d1151811a01408816969994d24f70e82b61",
      "old_mode": 33188,
      "old_path": "ssl/test/runner/dtls.go",
      "new_id": "18abd91c07991331a20abb92747b9bbdbda53dae",
      "new_mode": 33188,
      "new_path": "ssl/test/runner/dtls.go"
    },
    {
      "type": "modify",
      "old_id": "5281c7a49cdf2741834f359ca2ab1650f073300d",
      "old_mode": 33188,
      "old_path": "ssl/test/runner/handshake_client.go",
      "new_id": "70f8c287d7863f4039fe5955e58c9361fbf5f1c3",
      "new_mode": 33188,
      "new_path": "ssl/test/runner/handshake_client.go"
    },
    {
      "type": "modify",
      "old_id": "1eaef77b4859de06e145153e49ce2a96e458134e",
      "old_mode": 33188,
      "old_path": "ssl/test/runner/handshake_server.go",
      "new_id": "418daf78aa3b5a80e71c5d1f18ddda8382a4af71",
      "new_mode": 33188,
      "new_path": "ssl/test/runner/handshake_server.go"
    },
    {
      "type": "modify",
      "old_id": "a557736194f1db9418f1415362af7b8e083b9467",
      "old_mode": 33188,
      "old_path": "ssl/test/runner/runner.go",
      "new_id": "69269f5ac6555ed660585c40426bf6939080213f",
      "new_mode": 33188,
      "new_path": "ssl/test/runner/runner.go"
    }
  ]
}
