)]}'
{
  "commit": "e52f4c46421b57c1ff4a378136ba32ae8bd3d5d9",
  "tree": "9abdebd8c669ecf5dd415568d9578749a87816b3",
  "parents": [
    "b25a8999be9b0e9b95624a927791cc74e862695e"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sun Oct 01 22:35:10 2017 -0400"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Mon Oct 09 21:53:33 2017 +0000"
  },
  "message": "Replay the entire error queue on ssl_hs_error.\n\nThis is analogous to the Go stack\u0027s handshakeErr field. Since it\u0027s quite\ncommon for callers to run two I/O operations in parallel[*] like\nSSL_read and SSL_write (or SSL_read and SSL_do_handshake for client\n0-RTT). Accordingly, the new handshake state machine jams itself up on\nhandshake error, but to fully work with such callers, we should also\nreplay the error state.\n\nThis doesn\u0027t yet catch all cases (there are some parts of the read flow\nwhich need to be fixed). Those will be resolved in later changes.\n\n[*] Not actually in parallel, of course, but logically in parallel on a\nnon-blocking socket.\n\nBug: 206\nChange-Id: I5a4d37a258b9e3fc555b732938b0528b839650f8\nReviewed-on: https://boringssl-review.googlesource.com/21285\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nCQ-Verified: CQ bot account: commit-bot@chromium.org \u003ccommit-bot@chromium.org\u003e\nReviewed-by: Steven Valdez \u003csvaldez@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a03b140107fc7b2b44943ac11895bdc687408e02",
      "old_mode": 33188,
      "old_path": "ssl/handshake.cc",
      "new_id": "b54a0bb29c0132daf49fda9e37550380e26d6337",
      "new_mode": 33188,
      "new_path": "ssl/handshake.cc"
    },
    {
      "type": "modify",
      "old_id": "4247425eaeb2f246fbc1db0c18f20b581f84b9e3",
      "old_mode": 33188,
      "old_path": "ssl/internal.h",
      "new_id": "32199aa5f5e182ebaec67b9c18487cef01a387e1",
      "new_mode": 33188,
      "new_path": "ssl/internal.h"
    },
    {
      "type": "modify",
      "old_id": "f9cf83c4948e077c5d5cc5b54337738cad20fa76",
      "old_mode": 33188,
      "old_path": "ssl/ssl_test.cc",
      "new_id": "9901ce5df571db1cacf6e008bac4f9d2775e597d",
      "new_mode": 33188,
      "new_path": "ssl/ssl_test.cc"
    }
  ]
}
