)]}'
{
  "commit": "908bdb84c52b18bce9356a5631eb6264fd2c8093",
  "tree": "68d67eb89c402f09cad1cb5d5414e9cbbde6982f",
  "parents": [
    "729648fb79df7bc46c145e49b0dfd8d2a24232f1"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sun Aug 17 11:13:01 2025 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Aug 19 11:13:18 2025 -0700"
  },
  "message": "Test async BIO_flush and fix a corner case\n\nWe were simulating non-blocking writes, but not non-blocking flush.\nModel it as consuming one byte in AsyncBio.\n\nIn doing so, fix an obscure corner case in DTLS: If flushing after ACK\nblocked, the next try would write a new ACK to the transport. There\u0027s no\nreal harm in this (we\u0027re running over UDP), but our tests intentionally\ncheck for exactly the right number of writes and this was easy to fix.\n\nThis completely doesn\u0027t matter as a non-blocking writes on UDP-like\nsockets are not really a thing, much less buffered non-blocking writes\non them. I don\u0027t even concretely know of anyone relying on BIO_flush in\nTCP-like BIOs anymore in libssl. But since we try to support it, we\nshould test that we get it right.\n\nFixed: 381906252\nChange-Id: I5296fcb01ca409d3026ca1150d6bdeaccc868014\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/81348\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Lily Chen \u003cchlily@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4a02d260fa9282027732c2735e984ee405eb0f99",
      "old_mode": 33188,
      "old_path": "ssl/d1_both.cc",
      "new_id": "c81e6f56a2ecbc7a03c4750e0d58993ad7758c2b",
      "new_mode": 33188,
      "new_path": "ssl/d1_both.cc"
    },
    {
      "type": "modify",
      "old_id": "c37e704ad2f4415c103f8f0aab21110f17fc4619",
      "old_mode": 33188,
      "old_path": "ssl/d1_lib.cc",
      "new_id": "7e3442061ade469494c0cb76daf313aad89f1106",
      "new_mode": 33188,
      "new_path": "ssl/d1_lib.cc"
    },
    {
      "type": "modify",
      "old_id": "fe41e496692441540d209d4aba240e79fec9a94d",
      "old_mode": 33188,
      "old_path": "ssl/internal.h",
      "new_id": "4a442e44ac62c0177171a53ac9e3d8085a5620f0",
      "new_mode": 33188,
      "new_path": "ssl/internal.h"
    },
    {
      "type": "modify",
      "old_id": "6e2009b9b16d0edbf088510703c1bfdce8f4757f",
      "old_mode": 33188,
      "old_path": "ssl/test/async_bio.cc",
      "new_id": "e7e657d959fdb228247d818246bca35cd3357af3",
      "new_mode": 33188,
      "new_path": "ssl/test/async_bio.cc"
    }
  ]
}
