)]}'
{
  "commit": "7c73fefe38f4fce9437b1d24d90dd5aa411c7e28",
  "tree": "8d8c7b23f8eae3456b81ba5e2198515d556bae22",
  "parents": [
    "e34e91d7e575a2f69119601f2d34655cb6816148"
  ],
  "author": {
    "name": "Benjamin Kaduk",
    "email": "bkaduk@akamai.com",
    "time": "Fri Apr 02 10:04:24 2021 -0700"
  },
  "committer": {
    "name": "Benjamin Kaduk",
    "email": "bkaduk@akamai.com",
    "time": "Wed May 19 14:56:08 2021 -0700"
  },
  "message": "Let SSL_new_session_ticket() enter init immediately\n\nThe initial implementation always deferred the generation of the\nrequested ticket(s) until the next application write, but this\nis not a great fit for what it actually does, architecturally wise.\nA request to send a session ticket means entering back into the\nhandshake state machine (or \"in init\", as it\u0027s known in the\nimplementation).  The state machine transition is not something that\nonly occurs at an application-data write, and in general could occur at\nany time.  The only constraint is that we can\u0027t enter \"init\" while in\nthe middle of writing application data.  In such cases we will need to\nwait until the next TLS record boundary to enter the state machine,\nas is currently done.\n\nHowever, there is no reason why we cannot enter the handshake state\nmachine immediately in SSL_new_session_ticket() if there are no\napplication writes pending.  Doing so provides a cleaner API surface to\nthe application, as then calling SSL_do_handshake() suffices to drive\nthe actual ticket generation.  In the previous state of affairs a dummy\nzero-length SSL_write() would be needed to trigger the ticket\ngeneration, which is a logical mismatch in the type of operation being\nperformed.\n\nThis commit should only change whether SSL_do_handshake() vs zero-length\nSSL_write() is needed to immediately generate a ticket after the\nSSL_new_session_ticket() call -- the default behavior is still to defer\nthe actual write until there is other application data to write, unless\nthe application requests otherwise.\n\nReviewed-by: Matt Caswell \u003cmatt@openssl.org\u003e\n(Merged from https://github.com/openssl/openssl/pull/14817)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ff13442e3bb244b9762276e61998e074fc973d23",
      "old_mode": 33188,
      "old_path": "ssl/ssl_lib.c",
      "new_id": "f35eaf07c57f42093222b027d9879aa36d562bb1",
      "new_mode": 33188,
      "new_path": "ssl/ssl_lib.c"
    }
  ]
}
