)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"df55b457a6d551acc9223301c60c861f314fbf79","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Lev Stipakov \u003clev@openvpn.net\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-07-21 15:30:45 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"oob: client handshake shortcut via a server probe"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the best remote answered a probe and advertised a connect_lifetime, the"},{"line_number":10,"context_line":"client now skips its own three-way handshake and starts at the third packet,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"8e001067_ef9168f5","line":7,"updated":"2026-07-26 01:55:46.000000000","message":"I don\u0027t think handshake shortcut is a good name here. Because that is not what this is really this. \n\nWe are not short cutting anything here. We are doing a normal server connection with a slightly different packets at the start.","commit_id":"ad957fa52d9cd851d8e9f52beb2171a656c43db0"},{"author":{"_account_id":1000008,"name":"stipa","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"52f0114478facb9251c5191447d99e7a802e5d04","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Lev Stipakov \u003clev@openvpn.net\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-07-21 15:30:45 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"oob: client handshake shortcut via a server probe"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the best remote answered a probe and advertised a connect_lifetime, the"},{"line_number":10,"context_line":"client now skips its own three-way handshake and starts at the third packet,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"0c3a5f84_07b90a1a","line":7,"in_reply_to":"8e001067_ef9168f5","updated":"2026-07-28 15:06:10.000000000","message":"agreed. Renamed, it is now \"probe-started handshake\". The message says that the handshake is not shortened - the probe and reply take place of the reset packets, not remove them. The saving is one RTT vs probing and then connecting.","commit_id":"ad957fa52d9cd851d8e9f52beb2171a656c43db0"}],"Changes.rst":[{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"df55b457a6d551acc9223301c60c861f314fbf79","unresolved":true,"context_lines":[{"line_number":12,"context_line":"Handshake shortcut for probing clients"},{"line_number":13,"context_line":"    A probing client reuses the probe reply to skip one round trip of"},{"line_number":14,"context_line":"    the three-way handshake when the chosen server advertises support"},{"line_number":15,"context_line":"    for it. This needs no extra configuration."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Overview of changes in 2.7"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7acec7dc_b19b4484","line":15,"updated":"2026-07-26 01:55:46.000000000","message":"there is no skipping of a round of three-way handshake. The probe packet is just a replacement for the RESET_V3/RESET_V2 packet.\n\nThis change entry is misleading.","commit_id":"ad957fa52d9cd851d8e9f52beb2171a656c43db0"},{"author":{"_account_id":1000008,"name":"stipa","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"52f0114478facb9251c5191447d99e7a802e5d04","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Handshake shortcut for probing clients"},{"line_number":13,"context_line":"    A probing client reuses the probe reply to skip one round trip of"},{"line_number":14,"context_line":"    the three-way handshake when the chosen server advertises support"},{"line_number":15,"context_line":"    for it. This needs no extra configuration."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Overview of changes in 2.7"}],"source_content_type":"text/x-rst","patch_set":8,"id":"938eb310_891c59a4","line":15,"in_reply_to":"7acec7dc_b19b4484","updated":"2026-07-28 15:06:10.000000000","message":"Reworded.","commit_id":"ad957fa52d9cd851d8e9f52beb2171a656c43db0"}],"src/openvpn/oob_client.c":[{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"df55b457a6d551acc9223301c60c861f314fbf79","unresolved":true,"context_lines":[{"line_number":654,"context_line":"     * skip the shortcut there; probing/ordering still applied above. */"},{"line_number":655,"context_line":"    /* The RFC also requires the client to fall back to a full handshake once"},{"line_number":656,"context_line":"     * more than connect_lifetime seconds have elapsed since the probe. We probe"},{"line_number":657,"context_line":"     * immediately before connecting (~0 s gap), so that check is a no-op today;"},{"line_number":658,"context_line":"     * add an elapsed-time guard here if probe results are ever cached and reused"},{"line_number":659,"context_line":"     * across reconnects. */"},{"line_number":660,"context_line":"    bool shortcut \u003d results[0].responded \u0026\u0026 results[0].connect_lifetime \u003e 0;"}],"source_content_type":"text/x-csrc","patch_set":8,"id":"a8368f3e_fcf6298a","line":657,"updated":"2026-07-26 01:55:46.000000000","message":"You can probe two server and then both reply and then the you don\u0027t connect to both of them instantly. And when you reach the second server there is more than a 0s gap.","commit_id":"ad957fa52d9cd851d8e9f52beb2171a656c43db0"},{"author":{"_account_id":1000008,"name":"stipa","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"52f0114478facb9251c5191447d99e7a802e5d04","unresolved":false,"context_lines":[{"line_number":654,"context_line":"     * skip the shortcut there; probing/ordering still applied above. */"},{"line_number":655,"context_line":"    /* The RFC also requires the client to fall back to a full handshake once"},{"line_number":656,"context_line":"     * more than connect_lifetime seconds have elapsed since the probe. We probe"},{"line_number":657,"context_line":"     * immediately before connecting (~0 s gap), so that check is a no-op today;"},{"line_number":658,"context_line":"     * add an elapsed-time guard here if probe results are ever cached and reused"},{"line_number":659,"context_line":"     * across reconnects. */"},{"line_number":660,"context_line":"    bool shortcut \u003d results[0].responded \u0026\u0026 results[0].connect_lifetime \u003e 0;"}],"source_content_type":"text/x-csrc","patch_set":8,"id":"5ad93dd1_365c9d1e","line":657,"in_reply_to":"a8368f3e_fcf6298a","updated":"2026-07-28 15:06:10.000000000","message":"Right, the gap is not 0s for a later remote. The comment is confusing, let me make it shorter and clearer.","commit_id":"ad957fa52d9cd851d8e9f52beb2171a656c43db0"}]}
