)]}'
{"id":"openvpn~2001","triplet_id":"openvpn~master~I089e5b79600c535e3c0c5d1bb14319ac03f4144b","project":"openvpn","branch":"master","full_branch":"refs/heads/master","attention_set":{"1000009":{"account":{"_account_id":1000009,"name":"Selva Nair","display_name":"Selva Nair","email":"selva.nair@gmail.com","username":"selvanair"},"last_update":"2026-10-18 14:25:35.000000000","reason":"\u003cGERRIT_ACCOUNT_1000006\u003e replied on the change","reason_account":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"}},"1000008":{"account":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"last_update":"2026-10-18 14:25:35.000000000","reason":"\u003cGERRIT_ACCOUNT_1000006\u003e replied on the change","reason_account":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"}},"1000003":{"account":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"last_update":"2026-10-16 05:26:28.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-17 08:46:35.000000000","reason":"\u003cGERRIT_ACCOUNT_1000006\u003e replied on the change","reason_account":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"}}},"removed_from_attention_set":{"1000006":{"account":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"last_update":"2026-10-17 08:46:35.000000000","reason":"\u003cGERRIT_ACCOUNT_1000006\u003e replied on the change","reason_account":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"}}},"hashtags":[],"change_id":"I089e5b79600c535e3c0c5d1bb14319ac03f4144b","subject":"openvpnserv: add automatic service again","status":"NEW","created":"2026-10-16 05:26:27.000000000","updated":"2026-10-18 14:25:35.000000000","submit_type":"CHERRY_PICK","total_comment_count":9,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"ef6fad0df5a4639f16693d3c33a8a3aba1c386be","_number":2001,"virtual_id_number":2001,"owner":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"actions":{},"labels":{"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1000009,"name":"Selva Nair","display_name":"Selva Nair","email":"selva.nair@gmail.com","username":"selvanair"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},{"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"}],"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":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},{"_account_id":1000009,"name":"Selva Nair","display_name":"Selva Nair","email":"selva.nair@gmail.com","username":"selvanair"}],"CC":[{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-10-16 05:26:28.000000000","updated_by":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"real_updated_by":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"reviewer":{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"},"state":"CC"},{"updated":"2026-10-16 05:26:28.000000000","updated_by":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"real_updated_by":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"reviewer":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"state":"REVIEWER"},{"updated":"2026-10-16 07:46:08.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":"CC"},{"updated":"2026-10-18 14:25:35.000000000","updated_by":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"real_updated_by":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"reviewer":{"_account_id":1000009,"name":"Selva Nair","display_name":"Selva Nair","email":"selva.nair@gmail.com","username":"selvanair"},"state":"REVIEWER"},{"updated":"2026-10-18 14:25:35.000000000","updated_by":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"real_updated_by":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"reviewer":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"state":"REVIEWER"}],"messages":[{"id":"ea642d0b8bd2a90d85d57676ecfe08a30032a7e9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"date":"2026-10-16 05:26:27.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"a898b2a01f87044322767c15525b02ce86d1b5ba","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"date":"2026-10-16 06:50:34.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased. Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"bbc5e42214531eeea4a0175bfbf1c780794a1201","author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-10-16 07:46:08.000000000","message":"Patch Set 2:\n\n(5 comments)","accounts_in_message":[],"_revision_number":2},{"id":"4cdb921073b406b21f4b4e4374ff8cbca74070a1","author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"date":"2026-10-17 08:46:35.000000000","message":"Patch Set 2:\n\n(4 comments)","accounts_in_message":[],"_revision_number":2},{"id":"0c6ab6003d09a9d603aeb44d994543ba7c6ba490","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"date":"2026-10-17 08:46:51.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"1896422807ad9616e71c8e8e99c921312cd21b25","revisions":{"7d670ace40e14f9ab055d21ade40342b4e757ad1":{"kind":"REWORK","_number":1,"created":"2026-10-16 05:26:27.000000000","uploader":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"ref":"refs/changes/01/2001/1","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/01/2001/1","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/1 \u0026\u0026 git checkout -b change-2001 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/01/2001/1","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"6d382d5e6932787f963d98293385cd691d8909b9","subject":"cppcheck: Review suppressions for constParameter and constParameterCallback"}],"author":{"name":"Heiko Hund","email":"heiko@ist.eigentlich.net","date":"2026-10-15 16:49:00.000000000","tz":120},"committer":{"name":"Heiko Hund","email":"heiko@ist.eigentlich.net","date":"2026-10-16 05:22:50.000000000","tz":120},"subject":"openvpnserv: add automatic service again","message":"openvpnserv: add automatic service again\n\nThe automatic service, which starts all configs in the autostart config\ndirectory, was removed from openvpnserv.exe in 2021 and replaced by the\n.NET based openvpnserv2.exe. Add it back, implemented in C, so that both\nWindows services are maintained in this repository.\n\nSecurity related changes added:\n- before sending any data, verify that the named pipe is served by the\n  interactive service process\n- the exit event of each OpenVPN process has a random name and a DACL\n  that only grants access to its owner, so it cannot be pre-created or\n  signalled by other users\n- the service checks that it is run as the ovpn_service_user account in\n  the registry settings, so that it and openvpn in turn is guaranteed to\n  run with limited privileges\n\nRobustness:\n- starting a config is retried until the service stops, with a delay\n  that doubles from 10 seconds up to 5 minutes for configs that keep\n  failing, and is reset once a process ran for a minute\n- an OpenVPN process that may have been started by a failed attempt is\n  signalled to exit, so it does not run unmonitored\n- configs in subdirectories use their own directory as working\n  directory; configs with the same file name as one found before are\n  ignored, like in the GUI\n\nBoth services now run in their own process, selected by the new\n\u0027-automatic\u0027 and \u0027-interactive\u0027 options. This is needed since they need\nto run with different accounts. \u0027-install\u0027 takes an optional service\nname again. \u0027-instance automatic\u0027 is not supported, since the service\ncannot check the named pipe owner for instances.\n\nAlso add a few unit tests and some documentation.\n\nChange-Id: I089e5b79600c535e3c0c5d1bb14319ac03f4144b\nSigned-off-by: Heiko Hund \u003cheiko@ist.eigentlich.net\u003e\n"},"branch":"refs/heads/master"},"1421419c2d3731d8d840acd085375c77d0c3914a":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":2,"created":"2026-10-16 06:50:34.000000000","uploader":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"ref":"refs/changes/01/2001/2","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/01/2001/2","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/2 \u0026\u0026 git checkout -b change-2001 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/01/2001/2","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"50ac5998955c3931a2a241e75a0926bed5e2ebbb","subject":"repair const mismatch in siphash_openssl_available() prototype"}],"author":{"name":"Heiko Hund","email":"heiko@ist.eigentlich.net","date":"2026-10-15 16:49:00.000000000","tz":120},"committer":{"name":"Heiko Hund","email":"heiko@ist.eigentlich.net","date":"2026-10-16 06:13:59.000000000","tz":120},"subject":"openvpnserv: add automatic service again","message":"openvpnserv: add automatic service again\n\nThe automatic service, which starts all configs in the autostart config\ndirectory, has been provided by the .NET based openvpnserv2.exe since\nOpenVPN 2.4. Its original C implementation in openvpnserv.exe was removed\nfrom this repository in 2021. Add it back, implemented in C, so that both\nWindows services are maintained in this repository.\n\nSecurity related changes added:\n- before sending any data, verify that the named pipe is served by the\n  interactive service process\n- the exit event of each OpenVPN process has a random name and a DACL\n  that only grants access to its owner, so it cannot be pre-created or\n  signalled by other users\n- the service checks that it is run as the ovpn_service_user account in\n  the registry settings, so that it and openvpn in turn is guaranteed to\n  run with limited privileges\n\nRobustness:\n- starting a config is retried until the service stops, with a delay\n  that doubles from 10 seconds up to 5 minutes for configs that keep\n  failing, and is reset once a process ran for a minute\n- an OpenVPN process that may have been started by a failed attempt is\n  signalled to exit, so it does not run unmonitored\n- configs in subdirectories use their own directory as working\n  directory; configs with the same file name as one found before are\n  ignored, like in the GUI\n\nBoth services now run in their own process, selected by the new\n\u0027-automatic\u0027 and \u0027-interactive\u0027 options. This is needed since they need\nto run with different accounts. \u0027-install\u0027 takes an optional service\nname again. \u0027-instance automatic\u0027 is not supported, since the service\ncannot check the named pipe owner for instances.\n\nAlso add a few unit tests and some documentation.\n\nChange-Id: I089e5b79600c535e3c0c5d1bb14319ac03f4144b\nSigned-off-by: Heiko Hund \u003cheiko@ist.eigentlich.net\u003e\n"},"branch":"refs/heads/master"},"1896422807ad9616e71c8e8e99c921312cd21b25":{"kind":"REWORK","_number":3,"created":"2026-10-17 08:46:51.000000000","uploader":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"ref":"refs/changes/01/2001/3","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/01/2001/3","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/3 \u0026\u0026 git checkout -b change-2001 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/01/2001/3","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/01/2001/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"50ac5998955c3931a2a241e75a0926bed5e2ebbb","subject":"repair const mismatch in siphash_openssl_available() prototype"}],"author":{"name":"Heiko Hund","email":"heiko@ist.eigentlich.net","date":"2026-10-15 16:49:00.000000000","tz":120},"committer":{"name":"Heiko Hund","email":"heiko@ist.eigentlich.net","date":"2026-10-17 08:24:32.000000000","tz":120},"subject":"openvpnserv: add automatic service again","message":"openvpnserv: add automatic service again\n\nThe automatic service, which starts all configs in the autostart config\ndirectory, has been provided by the .NET based openvpnserv2.exe since\nOpenVPN 2.4. Its original C implementation in openvpnserv.exe was removed\nfrom this repository in 2021. Add it back, implemented in C, so that both\nWindows services are maintained in this repository.\n\nSecurity related changes added:\n- before sending any data, verify that the named pipe is served by the\n  interactive service process\n- the exit event of each OpenVPN process has a random name and a DACL\n  that only grants access to its owner, so it cannot be pre-created or\n  signalled by other users\n- the service checks that it is run as the ovpn_service_user account in\n  the registry settings, so that it and openvpn in turn is guaranteed to\n  run with limited privileges\n\nRobustness:\n- starting a config is retried until the service stops, with a delay\n  that doubles from 10 seconds up to 5 minutes for configs that keep\n  failing, and is reset once a process ran for a minute\n- an OpenVPN process that may have been started by a failed attempt is\n  signalled to exit, so it does not run unmonitored\n- configs in subdirectories use their own directory as working\n  directory; configs with the same file name as one found before are\n  ignored, like in the GUI\n\nBoth services now run in their own process, selected by the new\n\u0027-automatic\u0027 and \u0027-interactive\u0027 options. This is needed since they need\nto run with different accounts. \u0027-install\u0027 takes an optional service\nname again. \u0027-instance automatic\u0027 is not supported, since the service\ncannot check the named pipe owner for instances.\n\nAlso add a few unit tests and some documentation.\n\nChange-Id: I089e5b79600c535e3c0c5d1bb14319ac03f4144b\nSigned-off-by: Heiko Hund \u003cheiko@ist.eigentlich.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"}]}]}
