)]}'
{"id":"openvpn~1747","triplet_id":"openvpn~master~I5a7e9e13b9f9548b7ff717daae2b4a9cde3c06f2","project":"openvpn","branch":"master","attention_set":{"1000003":{"account":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"last_update":"2026-06-29 07:58:38.000000000","reason":"Reviewer was added"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I5a7e9e13b9f9548b7ff717daae2b4a9cde3c06f2","subject":"oob: Add --server-probe to order client remotes by probe","status":"NEW","created":"2026-06-29 07:58:31.000000000","updated":"2026-07-02 12:30:33.000000000","submit_type":"CHERRY_PICK","submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"e443f3d24995cf63406666fc2383da2a8be4b012","_number":1747,"virtual_id_number":1747,"owner":{"_account_id":1000008,"name":"stipa","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":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"}],"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":1000003,"name":"plaisthos","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-06-29 07:58:38.000000000","updated_by":{"_account_id":1000008,"name":"stipa","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:38.000000000","updated_by":{"_account_id":1000008,"name":"stipa","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"reviewer":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"state":"REVIEWER"}],"messages":[{"id":"7cb81efbd6fddaca461a87c3f7debc5750c3d996","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"stipa","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":"7fde16c37ae08b9ee831500235ad20656234e92c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"stipa","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-06-29 12:08:26.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.","accounts_in_message":[],"_revision_number":2},{"id":"fe49226c9498761fbd7adaaebb83ec6514c1e98d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"stipa","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-06-29 12:37:47.000000000","message":"Uploaded patch set 3: Patch Set 2 was rebased.","accounts_in_message":[],"_revision_number":3},{"id":"e443f3d24995cf63406666fc2383da2a8be4b012","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"stipa","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2026-07-02 12:30:33.000000000","message":"Uploaded patch set 4: Patch Set 3 was rebased.","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"e9a53b6caf34f4a17daec54368fe1d62c1215248","revisions":{"577a0d1d7afdf2b6f17f2595c5b72401dc6fb5d2":{"kind":"REWORK","_number":1,"created":"2026-06-29 07:58:31.000000000","uploader":{"_account_id":1000008,"name":"stipa","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/47/1747/1","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/47/1747/1","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/1 \u0026\u0026 git checkout -b change-1747 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/47/1747/1","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"07fcd8df66eb54dcfd0265176bfd9831304905b8","subject":"oob: Add probe-result ranking for server selection"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-22 07:40:50.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-29 07:58:02.000000000","tz":180},"subject":"oob: Add --server-probe to order client remotes by probe","message":"oob: Add --server-probe to order client remotes by probe\n\nWith --server-probe, before connecting a client sends an out-of-band\nSERVER_PROBE to all configured UDP remotes, collects the PROBE_REPLYs within a\nshort window, and reorders the connection list so the best-responding server is\ntried first. The option is off by default.\n\nThe probe phase is self-contained in oob_client.c behind a single call from\ninit.c (before next_connection_entry()). It uses one dual-stack UDP socket\n(IPV6_V6ONLY off, IPv4 remotes sent as IPv4-mapped, with an IPv4-only socket\nfallback) to fan probes out and collect replies, matches each reply to its\nremote by source address, and rejects spoofed replies via the session id the\nserver echoes back. Ranking and reordering use oob_rank_probe_results().\n\nPer-remote outcomes (skips, resolve/send failures, which servers answered with\ntheir priority/weight, and the final connection order) are logged at verb 4\n(D_LOW); a one-line summary of how many remotes answered stays at M_INFO.\n\nBecause the probe is pre-connection and session-less, replies are handled in\nthis dedicated loop and never reach tls_pre_decrypt(), so P_LAST_OPCODE is not\nwidened.\n\nFirst-cut limitations: the probe is sent unwrapped, so it currently works only\nagainst a server without tls-auth/tls-crypt (control-channel wrapping is a\nfollow-up); only UDP remotes are probed; probing runs once before the first\nconnection.\n\nChange-Id: I5a7e9e13b9f9548b7ff717daae2b4a9cde3c06f2\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"8056a449f5a2a25c9a9c8ef191a3648a40177b0d":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-06-29 12:08:26.000000000","uploader":{"_account_id":1000008,"name":"stipa","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/47/1747/2","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/47/1747/2","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/2 \u0026\u0026 git checkout -b change-1747 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/47/1747/2","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"52c7c6d63f22545538ec405c368ae9a7f58f34f6","subject":"oob: Add probe-result ranking for server selection"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-22 07:40:50.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-29 11:45:13.000000000","tz":180},"subject":"oob: Add --server-probe to order client remotes by probe","message":"oob: Add --server-probe to order client remotes by probe\n\nWith --server-probe, before connecting a client sends an out-of-band\nSERVER_PROBE to all configured UDP remotes, collects the PROBE_REPLYs within a\nshort window, and reorders the connection list so the best-responding server is\ntried first. The option is off by default.\n\nThe probe phase is self-contained in oob_client.c behind a single call from\ninit.c (before next_connection_entry()). It uses one dual-stack UDP socket\n(IPV6_V6ONLY off, IPv4 remotes sent as IPv4-mapped, with an IPv4-only socket\nfallback) to fan probes out and collect replies, matches each reply to its\nremote by source address, and rejects spoofed replies via the session id the\nserver echoes back. Ranking and reordering use oob_rank_probe_results().\n\nPer-remote outcomes (skips, resolve/send failures, which servers answered with\ntheir priority/weight, and the final connection order) are logged at verb 4\n(D_LOW); a one-line summary of how many remotes answered stays at M_INFO.\n\nBecause the probe is pre-connection and session-less, replies are handled in\nthis dedicated loop and never reach tls_pre_decrypt(), so P_LAST_OPCODE is not\nwidened.\n\nFirst-cut limitations: the probe is sent unwrapped, so it currently works only\nagainst a server without tls-auth/tls-crypt (control-channel wrapping is a\nfollow-up); only UDP remotes are probed; probing runs once before the first\nconnection.\n\nChange-Id: I5a7e9e13b9f9548b7ff717daae2b4a9cde3c06f2\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"412d78bef9b38f9b5cdfc7b10cce2d6c85c0fbda":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2026-06-29 12:37:47.000000000","uploader":{"_account_id":1000008,"name":"stipa","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/47/1747/3","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/47/1747/3","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/3 \u0026\u0026 git checkout -b change-1747 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/47/1747/3","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"26683f003b3f61802a6b673e0f658126a7eee788","subject":"oob: Add probe-result ranking for server selection"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-22 07:40:50.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-29 12:32:06.000000000","tz":180},"subject":"oob: Add --server-probe to order client remotes by probe","message":"oob: Add --server-probe to order client remotes by probe\n\nWith --server-probe, before connecting a client sends an out-of-band\nSERVER_PROBE to all configured UDP remotes, collects the PROBE_REPLYs within a\nshort window, and reorders the connection list so the best-responding server is\ntried first. The option is off by default.\n\nThe probe phase is self-contained in oob_client.c behind a single call from\ninit.c (before next_connection_entry()). It uses one dual-stack UDP socket\n(IPV6_V6ONLY off, IPv4 remotes sent as IPv4-mapped, with an IPv4-only socket\nfallback) to fan probes out and collect replies, matches each reply to its\nremote by source address, and rejects spoofed replies via the session id the\nserver echoes back. Ranking and reordering use oob_rank_probe_results().\n\nPer-remote outcomes (skips, resolve/send failures, which servers answered with\ntheir priority/weight, and the final connection order) are logged at verb 4\n(D_LOW); a one-line summary of how many remotes answered stays at M_INFO.\n\nBecause the probe is pre-connection and session-less, replies are handled in\nthis dedicated loop and never reach tls_pre_decrypt(), so P_LAST_OPCODE is not\nwidened.\n\nFirst-cut limitations: the probe is sent unwrapped, so it currently works only\nagainst a server without tls-auth/tls-crypt (control-channel wrapping is a\nfollow-up); only UDP remotes are probed; probing runs once before the first\nconnection.\n\nChange-Id: I5a7e9e13b9f9548b7ff717daae2b4a9cde3c06f2\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"e9a53b6caf34f4a17daec54368fe1d62c1215248":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2026-07-02 12:30:33.000000000","uploader":{"_account_id":1000008,"name":"stipa","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/47/1747/4","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/47/1747/4","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/4 \u0026\u0026 git checkout -b change-1747 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/47/1747/4","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/47/1747/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4da7d4cdae1bef9d8fd6fb0c549756903743e2ba","subject":"oob: Add probe-result ranking for server selection"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-06-22 07:40:50.000000000","tz":180},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2026-07-02 12:11:48.000000000","tz":180},"subject":"oob: Add --server-probe to order client remotes by probe","message":"oob: Add --server-probe to order client remotes by probe\n\nWith --server-probe, before connecting a client sends an out-of-band\nSERVER_PROBE to all configured UDP remotes, collects the PROBE_REPLYs within a\nshort window, and reorders the connection list so the best-responding server is\ntried first. The option is off by default.\n\nThe probe phase is self-contained in oob_client.c behind a single call from\ninit.c (before next_connection_entry()). It uses one dual-stack UDP socket\n(IPV6_V6ONLY off, IPv4 remotes sent as IPv4-mapped, with an IPv4-only socket\nfallback) to fan probes out and collect replies, matches each reply to its\nremote by source address, and rejects spoofed replies via the session id the\nserver echoes back. Ranking and reordering use oob_rank_probe_results().\n\nPer-remote outcomes (skips, resolve/send failures, which servers answered with\ntheir priority/weight, and the final connection order) are logged at verb 4\n(D_LOW); a one-line summary of how many remotes answered stays at M_INFO.\n\nBecause the probe is pre-connection and session-less, replies are handled in\nthis dedicated loop and never reach tls_pre_decrypt(), so P_LAST_OPCODE is not\nwidened.\n\nFirst-cut limitations: the probe is sent unwrapped, so it currently works only\nagainst a server without tls-auth/tls-crypt (control-channel wrapping is a\nfollow-up); only UDP remotes are probed; probing runs once before the first\nconnection.\n\nChange-Id: I5a7e9e13b9f9548b7ff717daae2b4a9cde3c06f2\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"NOT_READY","labels":[{"label":"Code-Review","status":"NEED"}]},{"rule_name":"checks~ChecksSubmitRule","status":"OK"}],"submit_requirements":[{"name":"Code-Review","status":"UNSATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","-label:Code-Review\u003dMIN"]}},{"name":"checks~ChecksSubmitRule","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"rule:checks~ChecksSubmitRule","fulfilled":true,"status":"PASS","passing_atoms":["checks~ChecksSubmitRule"],"failing_atoms":[]}}]}
