)]}'
{"id":"openvpn~1741","triplet_id":"openvpn~master~I1c8d302ac57c5603d622a7be14be369437388268","project":"openvpn","branch":"master","full_branch":"refs/heads/master","topic":"oob-server-probe","attention_set":{"1000041":{"account":{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"last_update":"2026-09-11 09:11:03.000000000","reason":"Vote got outdated and was removed: Code-Review+1"},"1000003":{"account":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"last_update":"2026-09-30 08:25:29.000000000","reason":"Vote got outdated and was removed: Code-Review-1"},"1000001":{"account":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"last_update":"2026-07-28 15:03:23.000000000","reason":"Vote got outdated and was removed: Code-Review+2"}},"removed_from_attention_set":{"1000008":{"account":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"last_update":"2026-09-30 08:28:01.000000000","reason":"\u003cGERRIT_ACCOUNT_1000008\u003e replied on the change","reason_account":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"}}},"hashtags":[],"change_id":"I1c8d302ac57c5603d622a7be14be369437388268","subject":"oob: Add P_CONTROL_OOB_V1 and the probe request and reply TLVs","status":"NEW","created":"2026-06-29 07:58:31.000000000","updated":"2026-10-01 11:42:56.000000000","submit_type":"CHERRY_PICK","total_comment_count":70,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"c24d862a3967c73ddda78dbf069213b6130f497b","_number":1741,"virtual_id_number":1741,"owner":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"actions":{},"labels":{"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."}],"values":{"-2":"This shall not be submitted","-1":"I would prefer this is not submitted as is"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"description":"","default_value":0}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"}],"CC":[{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-29 07:58:36.000000000","updated_by":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"real_updated_by":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"reviewer":{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"},"state":"CC"},{"updated":"2026-06-29 07:58:36.000000000","updated_by":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"real_updated_by":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"reviewer":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"state":"REVIEWER"},{"updated":"2026-06-30 11:59:32.000000000","updated_by":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"real_updated_by":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"reviewer":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"state":"REVIEWER"},{"updated":"2026-09-07 16:22:54.000000000","updated_by":{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"real_updated_by":{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"reviewer":{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"state":"REVIEWER"}],"messages":[{"id":"fa8ebd27a6df4eddf07d3d2b74f3bcca4bf5120a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-06-29 07:58:31.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"14b230cd8593bbee5d1e5c7e6abdab275a96331d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-06-29 12:37:47.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.","accounts_in_message":[],"_revision_number":2},{"id":"aaf9452cdd9a3c6ddb4cbd70092d6586b96c458e","author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-06-30 11:59:32.000000000","message":"Patch Set 2: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"8428b0ec3dc10add58fffb0f8eefe302f738a5b9","author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-06-30 12:02:11.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"b4872dc5819410ac50d3a0301e5a8a7b19000609","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-07-02 12:30:33.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":3},{"id":"1e85739400d6f6d1a9e98dfb4004520cd126e2f0","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-07-02 12:31:22.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"b87ddc4d5735f94fdbaba4ab4cbd5bc66ce5cd06","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-07-06 07:11:36.000000000","message":"Topic set to oob-server-probe","accounts_in_message":[],"_revision_number":3},{"id":"82b7c79358a277b90e32384368ddd7d14b040989","author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-07-08 16:13:11.000000000","message":"Patch Set 3: Code-Review-1\n\n(5 comments)","accounts_in_message":[],"_revision_number":3},{"id":"af01b6e8cb5339dccfc147bf5ceace8275df2670","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-07-09 13:47:21.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":4},{"id":"bd876f201c986802639f74834919dad3747fb01d","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-07-09 13:49:00.000000000","message":"Patch Set 4:\n\n(5 comments)","accounts_in_message":[],"_revision_number":4},{"id":"f538306fb4fff67e7bd031aeb8fc8e2286925808","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-07-09 14:02:04.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"854959b189c032f70f2f639fbd382e01e883518d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-07-14 08:14:41.000000000","message":"Uploaded patch set 5: New patch set was added with same tree, parent tree, and commit message as Patch Set 4.","accounts_in_message":[],"_revision_number":5},{"id":"4b81681b99f29080d1a1f41f8c9564ebdac0ed5a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-07-14 12:32:24.000000000","message":"Uploaded patch set 6: Patch Set 5 was rebased.","accounts_in_message":[],"_revision_number":6},{"id":"98836ce9039e98649519e1f08711e13e32e98305","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-07-16 08:09:01.000000000","message":"Uploaded patch set 7: Patch Set 6 was rebased.","accounts_in_message":[],"_revision_number":7},{"id":"33752b140d06ce90c663b157cbfafe26e758c30c","author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-07-20 13:23:11.000000000","message":"Patch Set 7:\n\n(4 comments)","accounts_in_message":[],"_revision_number":7},{"id":"b09a91df52a046084a89aaaef3e9b7ee27095be5","author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-07-20 13:29:00.000000000","message":"Patch Set 7: Code-Review+2","accounts_in_message":[],"_revision_number":7},{"id":"5dd1bbff4d21b25503121a0b89ee2460de2be4f3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-07-21 12:35:24.000000000","message":"Uploaded patch set 8: Patch Set 7 was rebased.\n\nCopied Votes:\n* Code-Review+2 (copy condition: \"changekind:NO_CHANGE OR **changekind:TRIVIAL_REBASE** OR is:MIN\")\n","accounts_in_message":[],"_revision_number":8},{"id":"0e82b77663ad0c417c43619b7450c0dbe1efd6fb","author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-07-26 00:42:43.000000000","message":"Patch Set 8: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"fee29e6f337beabb28f2bb82b2b8f3ae988eb091","author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-07-26 00:58:29.000000000","message":"Patch Set 8: Code-Review-2\n\n(7 comments)","accounts_in_message":[],"_revision_number":8},{"id":"a911e76917ec3681f0b8fc2b4d7a25e0fd52de26","author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-07-26 01:10:34.000000000","message":"Patch Set 8:\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"d8237ce85e734f5c60426e411f92b3ceba65ef3b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-07-28 15:03:23.000000000","message":"Uploaded patch set 9.\n\nCopied Votes:\n* Code-Review-2 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR **is:MIN**\")\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":9},{"id":"c9cbf54fed4709bec4742be56b97b0e0a06f7d0c","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-07-28 15:04:11.000000000","message":"Patch Set 9:\n\n(9 comments)","accounts_in_message":[],"_revision_number":9},{"id":"e7c816b74dcace18a41c2d82544edb04c459e6ce","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-07-29 12:22:54.000000000","message":"Uploaded patch set 10: Commit message was updated.\n\nCopied Votes:\n* Code-Review-2 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR **is:MIN**\")\n","accounts_in_message":[],"_revision_number":10},{"id":"3fda70678d807ad8e0d9675fe667bbf81927b1b2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-08-04 08:10:28.000000000","message":"Uploaded patch set 11: Patch Set 10 was rebased.\n\nCopied Votes:\n* Code-Review-2 (copy condition: \"changekind:NO_CHANGE OR **changekind:TRIVIAL_REBASE** OR **is:MIN**\")\n","accounts_in_message":[],"_revision_number":11},{"id":"4940f7ea298fc9b58f532460d7ecf6822385e0cf","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-08-28 12:51:00.000000000","message":"Uploaded patch set 12.\n\nCopied Votes:\n* Code-Review-2 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR **is:MIN**\")\n","accounts_in_message":[],"_revision_number":12},{"id":"c8c9098a907844f312462d0e00c1b53082686549","author":{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2026-09-07 16:22:54.000000000","message":"Patch Set 12: Code-Review-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":12},{"id":"9b7da0e7327c1f345bf58bdf0f14bdf7b625ce89","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-09-09 07:27:02.000000000","message":"Uploaded patch set 13.\n\nCopied Votes:\n* Code-Review-2 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR **is:MIN**\")\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":13},{"id":"5691cdb9b87edfc2e2fe9800137fcc47ff0bcf49","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-09-09 07:27:24.000000000","message":"Patch Set 13:\n\n(2 comments)","accounts_in_message":[],"_revision_number":13},{"id":"3e84d9e96967eded82c24dac5ff58a43ac779538","author":{"_account_id":1000041,"name":"Ralf Lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2026-09-09 11:43:38.000000000","message":"Patch Set 13: Code-Review+1","accounts_in_message":[],"_revision_number":13},{"id":"f3c7ed46a9fa778c582e5b0c6c88eb64b2f2eee0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-09-11 09:11:03.000000000","message":"Uploaded patch set 14.\n\nCopied Votes:\n* Code-Review-2 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR **is:MIN**\")\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":14},{"id":"8987f67a6d23b46c7bb63974bb39c1b789b2d541","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-09-14 14:18:32.000000000","message":"Uploaded patch set 15: Patch Set 14 was rebased. Commit message was updated.\n\nCopied Votes:\n* Code-Review-2 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR **is:MIN**\")\n","accounts_in_message":[],"_revision_number":15},{"id":"4a7a0d954c49eb1b90d7cf9dc9ce5ae7ae46c696","author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-09-16 23:19:01.000000000","message":"Patch Set 15: Code-Review-2\n\n(1 comment)","accounts_in_message":[],"_revision_number":15},{"id":"e85b59c1d3e7bffe10c1781138cfc0160796c42e","author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-09-16 23:39:24.000000000","message":"Patch Set 15:\n\n(2 comments)","accounts_in_message":[],"_revision_number":15},{"id":"7ec20df8dd5454d678f65128965da9520460d4c9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-09-17 07:01:11.000000000","message":"Uploaded patch set 16.\n\nCopied Votes:\n* Code-Review-2 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR **is:MIN**\")\n","accounts_in_message":[],"_revision_number":16},{"id":"20a8915d222d5664290050550a37e3d1bd217e59","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-09-17 07:42:23.000000000","message":"Patch Set 16:\n\n(3 comments)","accounts_in_message":[],"_revision_number":16},{"id":"5536f30e3e3d18737b8229d7f86e885c4936cb1a","author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-09-17 12:41:53.000000000","message":"Patch Set 16: Code-Review-1\n\n(10 comments)","accounts_in_message":[],"_revision_number":16},{"id":"aab5947f59de9584c317fc899570ac8f7e843de5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-09-18 08:31:39.000000000","message":"Uploaded patch set 17.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":17},{"id":"a6d859e25cf6fbc403b77656b7a37a1a696691a6","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-09-18 08:32:15.000000000","message":"Patch Set 17:\n\n(10 comments)","accounts_in_message":[],"_revision_number":17},{"id":"be2b01d9d0282929e08edac701520b5c85bc5dc4","author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-09-25 15:23:13.000000000","message":"Patch Set 17: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":17},{"id":"8f51201faa3346465983fad9e87506ff72f46a3c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-09-29 13:16:31.000000000","message":"Uploaded patch set 18.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":18},{"id":"c3132c4a0d6a2b15db77b28193a43ed993eec9c8","author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-09-29 22:16:12.000000000","message":"Patch Set 18: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":18},{"id":"0d42f7d7ef30af9598147e8a7343f33fa14b08f7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-09-30 08:25:29.000000000","message":"Uploaded patch set 19.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":19},{"id":"ee20a6709b2cf036ffb9b38ff5f0f921ce30dd2f","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-09-30 08:28:01.000000000","message":"Patch Set 19:\n\n(2 comments)","accounts_in_message":[],"_revision_number":19},{"id":"45e4c4ed73ca2a2f027571d01b87d23aa2d197a4","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-09-30 20:19:52.000000000","message":"Uploaded patch set 20.","accounts_in_message":[],"_revision_number":20},{"id":"c24d862a3967c73ddda78dbf069213b6130f497b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-10-01 11:42:56.000000000","message":"Uploaded patch set 21: Patch Set 20 was rebased.","accounts_in_message":[],"_revision_number":21}],"current_revision_number":21,"current_revision":"ae129436e9cf54ad395798a24ed7fbb13a15708a","revisions":{"2ff2cd48f827716f0eb8e58c4396eec027284068":{"kind":"REWORK","_number":1,"created":"2026-06-29 07:58:31.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/1","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/1","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/1 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/1","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4c1d09e3bb0b5db506178a6d091fc08dc8a456ee","subject":"buffer: Add buf_read_u64() and buf_write_u64()"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-29 07:58:02.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nReserve opcode 12 (P_CONTROL_OOB_V1) for out-of-band control messages and\nadd encoding/decoding for the SERVER_PROBE / PROBE_REPLY TLVs used for\nserver latency checks:\n\n  - probe_parameter (0x200): client timestamp + capability flags\n  - probe_reply    (0x201): echoed session id, DNS-SRV style priority and\n                            weight, connect_lifetime and behaviour flags\n\nEach TLV has a 4-byte header (15-bit type plus an optional flag, then a\n16-bit value length). Readers enforce the minimum value length and skip\ntrailing bytes they do not understand, so the format stays forward\ncompatible and multi-TLV framing resynchronises.\n\nP_LAST_OPCODE is deliberately left at 11: opcode 12 is not yet accepted by\ntls_pre_decrypt(). The legal-opcode range is widened together with the\nreceive handler in a follow-up, which also wires oob.c into the openvpn\nbuild. For now the codec is exercised only by the unit tests.\n\nSee the OOB control message section of the OpenVPN wire protocol\nspecification (openvpn-rfc PR #30).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"e268a6167a01da9be34af5193ec5ba8a5c093e82":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-06-29 12:37:47.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/2","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/2","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/2 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/2","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"837260c57e6dee5b2eb106534d12f05f3e7dbbc0","subject":"buffer: Add buf_read_u64() and buf_write_u64()"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-29 12:32:06.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nReserve opcode 12 (P_CONTROL_OOB_V1) for out-of-band control messages and\nadd encoding/decoding for the SERVER_PROBE / PROBE_REPLY TLVs used for\nserver latency checks:\n\n  - probe_parameter (0x200): client timestamp + capability flags\n  - probe_reply    (0x201): echoed session id, DNS-SRV style priority and\n                            weight, connect_lifetime and behaviour flags\n\nEach TLV has a 4-byte header (15-bit type plus an optional flag, then a\n16-bit value length). Readers enforce the minimum value length and skip\ntrailing bytes they do not understand, so the format stays forward\ncompatible and multi-TLV framing resynchronises.\n\nP_LAST_OPCODE is deliberately left at 11: opcode 12 is not yet accepted by\ntls_pre_decrypt(). The legal-opcode range is widened together with the\nreceive handler in a follow-up, which also wires oob.c into the openvpn\nbuild. For now the codec is exercised only by the unit tests.\n\nSee the OOB control message section of the OpenVPN wire protocol\nspecification (openvpn-rfc PR #30).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"493aec58151150b86fbdc1665e116706b34dcfcf":{"kind":"REWORK","_number":3,"created":"2026-07-02 12:30:33.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/3","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/3","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/3 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/3","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"837260c57e6dee5b2eb106534d12f05f3e7dbbc0","subject":"buffer: Add buf_read_u64() and buf_write_u64()"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-07-02 12:07:42.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nReserve opcode 12 (P_CONTROL_OOB_V1) for out-of-band control messages and\nadd encoding/decoding for the SERVER_PROBE / PROBE_REPLY TLVs used for\nserver latency checks:\n\n  - probe_parameter (0x200): client timestamp + capability flags\n  - probe_reply    (0x201): echoed session id, DNS-SRV style priority and\n                            weight, connect_lifetime and behaviour flags\n\nEach TLV has a 4-byte header (15-bit type plus an optional flag, then a\n16-bit value length). Readers enforce the minimum value length and skip\ntrailing bytes they do not understand, so the format stays forward\ncompatible and multi-TLV framing resynchronises.\n\nP_LAST_OPCODE is deliberately left at 11: opcode 12 is not yet accepted by\ntls_pre_decrypt(). The legal-opcode range is widened together with the\nreceive handler in a follow-up, which also wires oob.c into the openvpn\nbuild. For now the codec is exercised only by the unit tests.\n\nSee the OOB control message section of the OpenVPN wire protocol\nspecification (openvpn-rfc PR #30).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"225628306ecc72d5b7b06c16d88ac5f271e56b89":{"kind":"REWORK","_number":4,"created":"2026-07-09 13:47:21.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/4","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/4","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/4 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/4","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"837260c57e6dee5b2eb106534d12f05f3e7dbbc0","subject":"buffer: Add buf_read_u64() and buf_write_u64()"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-07-09 13:35:11.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nReserve opcode 12 (P_CONTROL_OOB_V1) for out-of-band control messages and\nadd encoding/decoding for the SERVER_PROBE / PROBE_REPLY TLVs used for\nserver latency checks:\n\n  - probe_parameter (0x200): client timestamp + capability flags\n  - probe_reply    (0x201): echoed session id, DNS-SRV style priority and\n                            weight, connect_lifetime and behaviour flags\n\nEach TLV has a 4-byte header (15-bit type plus an optional flag, then a\n16-bit value length). Readers enforce the minimum value length and skip\ntrailing bytes they do not understand, so the format stays forward\ncompatible and multi-TLV framing resynchronises.\n\nP_LAST_OPCODE is deliberately left at 11: opcode 12 is not yet accepted by\ntls_pre_decrypt(). The legal-opcode range is widened together with the\nreceive handler in a follow-up, which also wires oob.c into the openvpn\nbuild. For now the codec is exercised only by the unit tests.\n\nSee the OOB control message section of the OpenVPN wire protocol\nspecification (openvpn-rfc PR #30).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"c4295099dc8fd4fa59a96d0842107060f030ea02":{"kind":"NO_CHANGE","_number":5,"created":"2026-07-14 08:14:41.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/5","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/5","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/5 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/5","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/5 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"fad2c0952fba5907ae81d9541f8984de5adcfad7","subject":"buffer: Add buf_read_u64() and buf_write_u64()"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-07-14 08:13:52.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nReserve opcode 12 (P_CONTROL_OOB_V1) for out-of-band control messages and\nadd encoding/decoding for the SERVER_PROBE / PROBE_REPLY TLVs used for\nserver latency checks:\n\n  - probe_parameter (0x200): client timestamp + capability flags\n  - probe_reply    (0x201): echoed session id, DNS-SRV style priority and\n                            weight, connect_lifetime and behaviour flags\n\nEach TLV has a 4-byte header (15-bit type plus an optional flag, then a\n16-bit value length). Readers enforce the minimum value length and skip\ntrailing bytes they do not understand, so the format stays forward\ncompatible and multi-TLV framing resynchronises.\n\nP_LAST_OPCODE is deliberately left at 11: opcode 12 is not yet accepted by\ntls_pre_decrypt(). The legal-opcode range is widened together with the\nreceive handler in a follow-up, which also wires oob.c into the openvpn\nbuild. For now the codec is exercised only by the unit tests.\n\nSee the OOB control message section of the OpenVPN wire protocol\nspecification (openvpn-rfc PR #30).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"6765a12048ceb22573f03919163cfe679c406da6":{"kind":"TRIVIAL_REBASE","_number":6,"created":"2026-07-14 12:32:24.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/6","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/6","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/6 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/6","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/6 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"e8d39061007b0a29f78cecce72a0269d6dd3ecde","subject":"buffer: Add buf_read_u64() and buf_write_u64()"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-07-14 12:14:32.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nReserve opcode 12 (P_CONTROL_OOB_V1) for out-of-band control messages and\nadd encoding/decoding for the SERVER_PROBE / PROBE_REPLY TLVs used for\nserver latency checks:\n\n  - probe_parameter (0x200): client timestamp + capability flags\n  - probe_reply    (0x201): echoed session id, DNS-SRV style priority and\n                            weight, connect_lifetime and behaviour flags\n\nEach TLV has a 4-byte header (15-bit type plus an optional flag, then a\n16-bit value length). Readers enforce the minimum value length and skip\ntrailing bytes they do not understand, so the format stays forward\ncompatible and multi-TLV framing resynchronises.\n\nP_LAST_OPCODE is deliberately left at 11: opcode 12 is not yet accepted by\ntls_pre_decrypt(). The legal-opcode range is widened together with the\nreceive handler in a follow-up, which also wires oob.c into the openvpn\nbuild. For now the codec is exercised only by the unit tests.\n\nSee the OOB control message section of the OpenVPN wire protocol\nspecification (openvpn-rfc PR #30).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"51378748df89363371f6b13cb0f78ea9fa38d5bc":{"kind":"TRIVIAL_REBASE","_number":7,"created":"2026-07-16 08:09:01.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/7","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/7","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/7 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/7","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/7 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"27df276eabdf87ad97ab88e8e84cc53d2bbc59c8","subject":"Replace strtok with strtok_r"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-07-16 08:08:35.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nReserve opcode 12 (P_CONTROL_OOB_V1) for out-of-band control messages and\nadd encoding/decoding for the SERVER_PROBE / PROBE_REPLY TLVs used for\nserver latency checks:\n\n  - probe_parameter (0x200): client timestamp + capability flags\n  - probe_reply    (0x201): echoed session id, DNS-SRV style priority and\n                            weight, connect_lifetime and behaviour flags\n\nEach TLV has a 4-byte header (15-bit type plus an optional flag, then a\n16-bit value length). Readers enforce the minimum value length and skip\ntrailing bytes they do not understand, so the format stays forward\ncompatible and multi-TLV framing resynchronises.\n\nP_LAST_OPCODE is deliberately left at 11: opcode 12 is not yet accepted by\ntls_pre_decrypt(). The legal-opcode range is widened together with the\nreceive handler in a follow-up, which also wires oob.c into the openvpn\nbuild. For now the codec is exercised only by the unit tests.\n\nSee the OOB control message section of the OpenVPN wire protocol\nspecification (openvpn-rfc PR #30).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"4e332039301865b4061702bc2d6b622d0691ee60":{"kind":"TRIVIAL_REBASE","_number":8,"created":"2026-07-21 12:35:24.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/8","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/8","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/8 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/8","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/8 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4ad3c71ec4bdad706332d0281a3bb3bba0234288","subject":"silence autoconf warnings about openvpnserv_testdriver_CFLAGS etc"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-07-21 12:30:44.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nReserve opcode 12 (P_CONTROL_OOB_V1) for out-of-band control messages and\nadd encoding/decoding for the SERVER_PROBE / PROBE_REPLY TLVs used for\nserver latency checks:\n\n  - probe_parameter (0x200): client timestamp + capability flags\n  - probe_reply    (0x201): echoed session id, DNS-SRV style priority and\n                            weight, connect_lifetime and behaviour flags\n\nEach TLV has a 4-byte header (15-bit type plus an optional flag, then a\n16-bit value length). Readers enforce the minimum value length and skip\ntrailing bytes they do not understand, so the format stays forward\ncompatible and multi-TLV framing resynchronises.\n\nP_LAST_OPCODE is deliberately left at 11: opcode 12 is not yet accepted by\ntls_pre_decrypt(). The legal-opcode range is widened together with the\nreceive handler in a follow-up, which also wires oob.c into the openvpn\nbuild. For now the codec is exercised only by the unit tests.\n\nSee the OOB control message section of the OpenVPN wire protocol\nspecification (openvpn-rfc PR #30).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"a86807f8ff487d67889bf8747327e6311aeba99f":{"kind":"REWORK","_number":9,"created":"2026-07-28 15:03:23.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/9","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/9","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/9 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/9","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/9 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4ad3c71ec4bdad706332d0281a3bb3bba0234288","subject":"silence autoconf warnings about openvpnserv_testdriver_CFLAGS etc"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-07-28 14:46:36.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nAdd opcode 12 for out-of-band control messages and the TLV codec for the\nSERVER_PROBE and PROBE_REPLY used by server latency checks.\n\nThe framing is not OOB-specific, so it goes into its own control_msg.c/h;\noob.c keeps the OOB message and TLV types.\n\nP_LAST_OPCODE becomes 12, and opcode_valid_in_session() replaces the plain\nrange check because OOB opcodes are answered statelessly and are never legal\non an established session.\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"b071e452e7d1711314c2d583ade5ee5d2b21371c":{"kind":"NO_CODE_CHANGE","_number":10,"created":"2026-07-29 12:22:54.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/10","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/10","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/10 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/10","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/10 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4ad3c71ec4bdad706332d0281a3bb3bba0234288","subject":"silence autoconf warnings about openvpnserv_testdriver_CFLAGS etc"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-07-29 11:01:41.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nOut-of-band control messages carry control data but belong to no session, so a\nclient can ask a server about itself before connecting. Reserve opcode 12 for\nthem and add the codec for the two messages the probe needs, SERVER_PROBE and\nPROBE_REPLY.\n\nThe spec uses the same TLV framing for all its control messages, not just the\nout-of-band ones, so the message-type header, the TLV header and the TLV scan go\ninto their own control_msg.c/h; oob.c keeps the OOB message and TLV types.\n\nP_LAST_OPCODE becomes 12, and opcode_valid_in_session() replaces the plain range\ncheck because OOB opcodes are answered statelessly and are never legal on an\nestablished session.\n\nSee the OOB control message section of the wire protocol specification\n(openvpn-rfc PR #30).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"f33459944a289b5b87b6d11dd141b073f3841626":{"kind":"TRIVIAL_REBASE","_number":11,"created":"2026-08-04 08:10:28.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/11","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/11","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/11 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/11","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/11 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"d1e67f419f1ea9121d44fa4b91c59e7209785e57","subject":"ssl: Ignore hard reset packets with a non-zero packet id"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-08-04 08:08:32.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nOut-of-band control messages carry control data but belong to no session, so a\nclient can ask a server about itself before connecting. Reserve opcode 12 for\nthem and add the codec for the two messages the probe needs, SERVER_PROBE and\nPROBE_REPLY.\n\nThe spec uses the same TLV framing for all its control messages, not just the\nout-of-band ones, so the message-type header, the TLV header and the TLV scan go\ninto their own control_msg.c/h; oob.c keeps the OOB message and TLV types.\n\nP_LAST_OPCODE becomes 12, and opcode_valid_in_session() replaces the plain range\ncheck because OOB opcodes are answered statelessly and are never legal on an\nestablished session.\n\nSee the OOB control message section of the wire protocol specification\n(openvpn-rfc PR #30).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"b401b0989fda78f36449073f3b64df9900d21bc5":{"kind":"REWORK","_number":12,"created":"2026-08-28 12:51:00.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/12","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/12","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/12 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/12","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/12 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"269da702816e8ee9bce595b2444aa9997a34fc5c","subject":"Add mock support for management messages"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-08-28 11:16:18.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nOut-of-band control messages carry control data but belong to no session, so a\nclient can ask a server about itself before connecting. Reserve opcode 12 for\nthem and add the codec for the two messages the probe needs, SERVER_PROBE and\nPROBE_REPLY.\n\nThe spec uses the same TLV framing for all its control messages, not just the\nout-of-band ones, so the message-type header, the TLV header and the TLV scan go\ninto their own control_msg.c/h; oob.c keeps the OOB message and TLV types.\n\nP_LAST_OPCODE becomes 12, and opcode_valid_in_session() replaces the plain range\ncheck because OOB opcodes are answered statelessly and are never legal on an\nestablished session.\n\nSee the OOB control message section of the wire protocol specification\n(openvpn-rfc PR #30).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"8285b3457f16c633f8971cc5725dd4b48e718cf3":{"kind":"REWORK","_number":13,"created":"2026-09-09 07:27:02.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/13","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/13","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/13 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/13","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/13 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"269da702816e8ee9bce595b2444aa9997a34fc5c","subject":"Add mock support for management messages"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-09-08 12:44:19.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nOut-of-band control messages carry control data but belong to no session, so a\nclient can ask a server about itself before connecting. Reserve opcode 12 for\nthem and add the codec for the two messages the probe needs, SERVER_PROBE and\nPROBE_REPLY.\n\nThe spec uses the same TLV framing for all its control messages, not just the\nout-of-band ones, so the message-type header, the TLV header and the TLV scan go\ninto their own control_msg.c/h; oob.c keeps the OOB message and TLV types.\n\nThe scan is strict: a header or value that does not fit in the remaining\npayload, including trailing bytes too few for a header, or an unknown TLV not\nmarked optional rejects the whole message rather than just the TLV.\n\nP_LAST_OPCODE becomes 12, and opcode_valid_in_session() replaces the plain range\ncheck because OOB opcodes are answered statelessly and are never legal on an\nestablished session.\n\nSee the OOB control message section of the wire protocol specification\n(openvpn-rfc PR #30).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"3bac555932e1cfb6ad53d746980a72e377391c83":{"kind":"REWORK","_number":14,"created":"2026-09-11 09:11:03.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/14","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/14","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/14 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/14","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/14 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"269da702816e8ee9bce595b2444aa9997a34fc5c","subject":"Add mock support for management messages"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-09-11 09:03:47.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nOut-of-band control messages carry control data but belong to no\nsession, so a client can ask a server about itself before connecting.\nReserve opcode 12 for them and add the codec for the two messages the\nprobe needs, SERVER_PROBE and PROBE_REPLY.\n\nThe spec uses the same TLV framing for all its control messages, not\njust the out-of-band ones, so the message-type header, the TLV header\nand the TLV scan go into their own control_msg.c/h; oob.c keeps the OOB\nmessage and TLV types.\n\nThe scan is strict: a header or value that does not fit in the remaining\npayload, including trailing bytes too few for a header, or an unknown\nTLV not marked optional rejects the whole message rather than just the\nTLV.\n\nP_LAST_OPCODE becomes 12, and opcode_valid_in_session() replaces the\nplain range check because OOB opcodes are answered statelessly and are\nnever legal on an established session.\n\nSee the OOB control message section of the wire protocol specification\n(openvpn-rfc PR #30).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"3f8217314124701400cb9ce525071943a373e780":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":15,"created":"2026-09-14 14:18:32.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/15","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/15","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/15 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/15 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/15 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/15 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/15","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/15 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"aa12dd64b74142bbbff9f37cec05959ba115c06d","subject":"options: fix unsigned underflow when clearing domain_search_list"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-09-14 08:10:54.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\r\n\r\nOut-of-band control messages carry control data but belong to no\r\nsession, so a client can ask a server about itself before connecting.\r\nReserve opcode 12 for them and add the codec for the two messages the\r\nprobe needs, SERVER_PROBE and PROBE_REPLY.\r\n\r\nThe spec uses the same TLV framing for all its control messages, not\r\njust the out-of-band ones, so the message-type header, the TLV header\r\nand the TLV scan go into their own control_msg.c/h; oob.c keeps the OOB\r\nmessage and TLV types.\r\n\r\nThe scan is strict: a header or value that does not fit in the remaining\r\npayload, including trailing bytes too few for a header, or an unknown\r\nTLV not marked optional rejects the whole message rather than just the\r\nTLV.\r\n\r\nP_LAST_OPCODE becomes 12, and opcode_valid_in_session() replaces the\r\nplain range check because OOB opcodes are answered statelessly and are\r\nnever legal on an established session.\r\n\r\nSee the OOB control message section of the wire protocol specification\r\n(openvpn-rfc PR #30).\r\n\r\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\r\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\r\n"},"branch":"refs/heads/master"},"5b1e911f450ab09703cf02f50846d58bf66fbaeb":{"kind":"REWORK","_number":16,"created":"2026-09-17 07:01:11.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/16","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/16","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/16 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/16 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/16 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/16 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/16","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/16 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"aa12dd64b74142bbbff9f37cec05959ba115c06d","subject":"options: fix unsigned underflow when clearing domain_search_list"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-09-17 06:24:16.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nOut-of-band control messages carry control data but belong to no\nsession, so a client can ask a server about itself before connecting.\nReserve opcode 12 for them and add the codec for the two messages the\nprobe needs, SERVER_PROBE and PROBE_REPLY.\n\nThe spec uses the same TLV framing for all its control messages, not\njust the out-of-band ones, so the message-type header, the TLV header\nand the TLV scan go into their own control_msg.c/h; oob.c keeps the OOB\nmessage and TLV types.\n\nThe scan is strict: a header or value that does not fit in the remaining\npayload, including trailing bytes too few for a header, or an unknown\nTLV not marked optional rejects the whole message rather than just the\nTLV.\n\nP_LAST_OPCODE becomes 12, and opcode_valid_in_session() replaces the\nplain range check because OOB opcodes are answered statelessly and are\nnever legal on an established session.\n\nSee the OOB control message section of the wire protocol specification\n(openvpn-rfc PR #30).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"ffa8097cbd669f623a93dd9b368ffb776ae60d2e":{"kind":"REWORK","_number":17,"created":"2026-09-18 08:31:39.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/17","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/17","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/17 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/17 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/17 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/17 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/17","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/17 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"aa12dd64b74142bbbff9f37cec05959ba115c06d","subject":"options: fix unsigned underflow when clearing domain_search_list"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-09-18 07:32:31.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nOut-of-band control messages carry control data but belong to no\nsession, so a client can ask a server about itself before connecting.\nReserve opcode 12 for them and add the codec for the two messages the\nprobe needs, SERVER_PROBE and PROBE_REPLY.\n\nThe spec uses the same TLV framing for all its control messages, not\njust the out-of-band ones, so the message-type header, the TLV header\nand the TLV scan go into their own control_msg.c/h; oob.c keeps the OOB\nmessage and TLV types.\n\nThe scan is strict: a header or value that does not fit in the remaining\npayload, including trailing bytes too few for a header, or an unknown\nTLV not marked optional rejects the whole message rather than just the\nTLV.\n\nP_LAST_OPCODE becomes 12. tls_pre_decrypt() rejects the OOB opcodes\nexplicitly: they are not part of the reliable control channel (no\ncontrol message id, no ACK array), so do_pre_decrypt_check() answers\nthem statelessly instead.\n\nSee \"Out of band and control data messages\" and \"[OPCODE ID 12]\nCONTROL_OOB_V1\" in the wire protocol specification\n(openvpn-rfc, openvpn-wire-protocol.xml).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"842942c1351f98633602bb39d6f0ad183ebcfe36":{"kind":"REWORK","_number":18,"created":"2026-09-29 13:16:31.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/18","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/18","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/18 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/18 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/18 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/18 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/18","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/18 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"aa12dd64b74142bbbff9f37cec05959ba115c06d","subject":"options: fix unsigned underflow when clearing domain_search_list"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-09-29 13:05:03.000000000","tz":180},"subject":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)","message":"oob: Add control message TLV encoding (P_CONTROL_OOB_V1)\n\nOut-of-band control messages carry control data but belong to no\nsession, so a client can ask a server about itself before connecting.\nReserve opcode 12 for them and add the TLV codecs the probe needs: the\nprobe request a SERVER_PROBE carries and the probe reply a PROBE_REPLY\ncarries.\n\nA message is just a sequence of TLVs, and the TLVs it carries say what\nit is. The probe request carries a request_id chosen by the client,\nwhich the probe reply echoes.\n\nThe spec uses the same TLV framing for all its control messages, not\njust the out-of-band ones, so the TLV header and the TLV scan go into\ntheir own control_msg.c/h; oob.c keeps the OOB TLV types.\n\nThe scan is strict: a truncated TLV header or value, or an unknown TLV\nnot marked optional, rejects the whole message.\n\nP_LAST_OPCODE becomes 12. tls_pre_decrypt() rejects the OOB opcodes\nexplicitly: they are not part of the reliable control channel (no\ncontrol message id, no ACK array); the server answers them\nstatelessly in a follow-up.\n\nSee \"Out of band and control data messages\" and \"[OPCODE ID 12]\nCONTROL_OOB_V1\" in the wire protocol specification\n(openvpn-rfc, openvpn-wire-protocol.xml).\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"9b66f9d7f01932ff34ea618d1557b7cbee7ca158":{"kind":"REWORK","_number":19,"created":"2026-09-30 08:25:29.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/19","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/19","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/19 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/19 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/19 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/19 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/19","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/19 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"09ca456f4fe87a0c765407eecd86e2b0f944a300","subject":"Add a shared TLV codec and use it for early negotiation"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-09-30 08:13:01.000000000","tz":180},"subject":"oob: Add P_CONTROL_OOB_V1 and the probe request and reply TLVs","message":"oob: Add P_CONTROL_OOB_V1 and the probe request and reply TLVs\n\nOut-of-band control messages carry control data but belong to no\nsession, so a client can ask a server about itself before connecting.\nReserve opcode 12 for them and add the TLV codecs the probe needs: the\nprobe request a client probes a server with, and the probe reply the\nserver answers with.\n\nA message is just a sequence of TLVs, and the TLVs it carries say what\nit is. The probe request carries a request_id chosen by the client,\nwhich the probe reply echoes.\n\nThe TLVs use the shared TLV codec, control_msg.c/h, and their two types\njoin the others in control_msg.h. The codec gains ctrl_msg_find_tlv(),\nwhich scans a payload for the one mandatory TLV of a message. The scan\nis strict: a truncated TLV header or value, or an unknown TLV not marked\noptional, rejects the whole message.\n\nP_LAST_OPCODE becomes 12. tls_pre_decrypt() rejects the OOB opcodes\nexplicitly: they are not part of the reliable control channel (no\ncontrol message id, no ACK array); the server answers them\nstatelessly in a follow-up.\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"e3fc273fd285d76d4e1d590ace37158a1d4fc364":{"kind":"REWORK","_number":20,"created":"2026-09-30 20:19:52.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/20","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/20","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/20 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/20 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/20 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/20 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/20","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/20 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"09ca456f4fe87a0c765407eecd86e2b0f944a300","subject":"Add a shared TLV codec and use it for early negotiation"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-09-30 18:15:02.000000000","tz":180},"subject":"oob: Add P_CONTROL_OOB_V1 and the probe request and reply TLVs","message":"oob: Add P_CONTROL_OOB_V1 and the probe request and reply TLVs\n\nOut-of-band control messages carry control data but belong to no\nsession, so a client can ask a server about itself before connecting.\nReserve opcode 12 for them and add the TLV codecs the probe needs: the\nprobe request a client probes a server with, and the probe reply the\nserver answers with.\n\nA message is just a sequence of TLVs, and the TLVs it carries say what\nit is. The probe request carries a request_id chosen by the client,\nwhich the probe reply echoes.\n\nThe TLVs use the shared TLV codec, control_msg.c/h, and their two types\njoin the others in control_msg.h. The codec gains ctrl_msg_find_tlv(),\nwhich scans a payload for the one mandatory TLV of a message. The scan\nis strict: a truncated TLV header or value, or an unknown TLV not marked\noptional, rejects the whole message.\n\nP_LAST_OPCODE becomes 12. tls_pre_decrypt() rejects the OOB opcodes\nexplicitly: they are not part of the reliable control channel (no\ncontrol message id, no ACK array); the server answers them\nstatelessly in a follow-up.\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"ae129436e9cf54ad395798a24ed7fbb13a15708a":{"kind":"TRIVIAL_REBASE","_number":21,"created":"2026-10-01 11:42:56.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/41/1741/21","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/41/1741/21","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/21 \u0026\u0026 git checkout -b change-1741 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/21 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/21 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/21 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/41/1741/21","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/41/1741/21 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"0e38f4a6f61321adac1b61994facdc0129ad92ca","subject":"Add a shared TLV codec and use it for early negotiation"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-17 07:09:23.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-10-01 06:55:02.000000000","tz":180},"subject":"oob: Add P_CONTROL_OOB_V1 and the probe request and reply TLVs","message":"oob: Add P_CONTROL_OOB_V1 and the probe request and reply TLVs\n\nOut-of-band control messages carry control data but belong to no\nsession, so a client can ask a server about itself before connecting.\nReserve opcode 12 for them and add the TLV codecs the probe needs: the\nprobe request a client probes a server with, and the probe reply the\nserver answers with.\n\nA message is just a sequence of TLVs, and the TLVs it carries say what\nit is. The probe request carries a request_id chosen by the client,\nwhich the probe reply echoes.\n\nThe TLVs use the shared TLV codec, control_msg.c/h, and their two types\njoin the others in control_msg.h. The codec gains ctrl_msg_find_tlv(),\nwhich scans a payload for the one mandatory TLV of a message. The scan\nis strict: a truncated TLV header or value, or an unknown TLV not marked\noptional, rejects the whole message.\n\nP_LAST_OPCODE becomes 12. tls_pre_decrypt() rejects the OOB opcodes\nexplicitly: they are not part of the reliable control channel (no\ncontrol message id, no ACK array); the server answers them\nstatelessly in a follow-up.\n\nChange-Id: I1c8d302ac57c5603d622a7be14be369437388268\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"}},"requirements":[{"status":"NOT_READY","fallback_text":"All required checks must pass","type":"checks_pass"}],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"NOT_READY","labels":[{"label":"Code-Review","status":"NEED"}]},{"rule_name":"checks~ChecksSubmitRule","status":"NOT_READY","requirements":[{"status":"NOT_READY","fallback_text":"All required checks must pass","type":"checks_pass"}]}]}
