)]}'
{"id":"openvpn~1965","triplet_id":"openvpn~master~I89c3133e009dc75dc2c10c607b3f0a24c04e8146","project":"openvpn","branch":"master","full_branch":"refs/heads/master","topic":"oob-server-probe","attention_set":{"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:44.000000000","reason":"Reviewer was added"},"1000001":{"account":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"last_update":"2026-10-01 07:26:44.000000000","reason":"Vote got outdated and was removed: Code-Review-1"}},"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-10-01 07:36:51.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":"I89c3133e009dc75dc2c10c607b3f0a24c04e8146","subject":"Add a shared TLV codec and use it for early negotiation","status":"NEW","created":"2026-09-30 08:25:29.000000000","updated":"2026-10-01 07:36:51.000000000","submit_type":"CHERRY_PICK","total_comment_count":6,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"af3a402559755941272de0997301beee7a7afc65","_number":1965,"virtual_id_number":1965,"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":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"}],"CC":[{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-09-30 08:25:44.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-09-30 08:25:44.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-09-30 14:35:50.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"}],"messages":[{"id":"cf9733c47118cabcaba7093d4611fa68fa454cad","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 1.","accounts_in_message":[],"_revision_number":1},{"id":"d68f72c418cb311b7a98483210246aae47b67604","author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-09-30 14:35:50.000000000","message":"Patch Set 1: Code-Review-1\n\n(3 comments)","accounts_in_message":[],"_revision_number":1},{"id":"6bd57f5b5e53aa4674f2ae8ca3a42d87bfc6549b","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 07:26:44.000000000","message":"Uploaded patch set 2.\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":2},{"id":"af3a402559755941272de0997301beee7a7afc65","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-10-01 07:36:51.000000000","message":"Patch Set 2:\n\n(3 comments)","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"0e38f4a6f61321adac1b61994facdc0129ad92ca","revisions":{"09ca456f4fe87a0c765407eecd86e2b0f944a300":{"kind":"REWORK","_number":1,"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/65/1965/1","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/65/1965/1","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/65/1965/1 \u0026\u0026 git checkout -b change-1965 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/65/1965/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/65/1965/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/65/1965/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/65/1965/1","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/65/1965/1 \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-09-30 07:31:38.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-09-30 08:13:01.000000000","tz":180},"subject":"Add a shared TLV codec and use it for early negotiation","message":"Add a shared TLV codec and use it for early negotiation\n\nEarly negotiation in the reset packets is a sequence of TLVs, and the\nout-of-band and control data messages use the same TLV format and type\nspace. Add one TLV codec for all of them, control_msg.c/h, and move\nearly negotiation onto it.\n\nThe codec only handles the framing: reading and writing TLV headers,\nwriting a 16-bit TLV, and walking a payload TLV by TLV with each value\nchecked against the payload. How to treat an unknown type is up to each\nmessage. All TLV types are defined in control_msg.h;\nTLV_TYPE_EARLY_NEG_FLAGS moves there from ssl_pkt.h.\n\nThe bytes on the wire do not change. Since the top bit of the type\nfield is the \"optional\" flag, a TLV of type 0x8001 is now read as the\nflags TLV marked optional rather than skipped as unknown, so one whose\nlength is not 2 now fails the handshake as malformed.\n\nChange-Id: I89c3133e009dc75dc2c10c607b3f0a24c04e8146\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"0e38f4a6f61321adac1b61994facdc0129ad92ca":{"kind":"REWORK","_number":2,"created":"2026-10-01 07:26:44.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/65/1965/2","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/65/1965/2","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/65/1965/2 \u0026\u0026 git checkout -b change-1965 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/65/1965/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/65/1965/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/65/1965/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/65/1965/2","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/65/1965/2 \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-09-30 07:31:38.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-10-01 06:55:02.000000000","tz":180},"subject":"Add a shared TLV codec and use it for early negotiation","message":"Add a shared TLV codec and use it for early negotiation\n\nEarly negotiation in the reset packets is a sequence of TLVs, and the\nout-of-band and control data messages use the same TLV format and type\nspace. Add one TLV codec for all of them, control_msg.c/h, and move\nearly negotiation onto it.\n\nThe codec only handles the framing: reading and writing TLV headers,\nwriting a 16-bit TLV, and walking a payload TLV by TLV with each value\nchecked against the payload. How to treat an unknown type is up to each\nmessage. All TLV types are defined in control_msg.h;\nTLV_TYPE_EARLY_NEG_FLAGS moves there from ssl_pkt.h.\n\nThe bytes on the wire do not change. Since the top bit of the type\nfield is the \"optional\" flag, a TLV of type 0x8001 is now read as the\nflags TLV marked optional rather than skipped as unknown, so one whose\nlength is not 2 now fails the handshake as malformed.\n\nChange-Id: I89c3133e009dc75dc2c10c607b3f0a24c04e8146\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"}]}]}
