)]}'
{"id":"openvpn~1350","triplet_id":"openvpn~master~I38a040a9bdcb44933d4ca538f746af5c61011d7c","project":"openvpn","branch":"master","attention_set":{},"removed_from_attention_set":{"1000003":{"account":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"last_update":"2025-11-09 11:00:24.000000000","reason":"Change was submitted"},"1000002":{"account":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"last_update":"2025-11-09 11:00:24.000000000","reason":"Change was submitted"},"1000001":{"account":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"last_update":"2025-11-09 11:00:24.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I38a040a9bdcb44933d4ca538f746af5c61011d7c","subject":"dco_freebsd: implement dco_get_peer_stats()","status":"MERGED","created":"2025-11-04 21:44:14.000000000","updated":"2025-11-09 11:00:24.000000000","submitted":"2025-11-09 11:00:24.000000000","submitter":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"1350","meta_rev_id":"dc81d63abe9dd2e1e23d68ac10a5a87e48c752c7","_number":1350,"virtual_id_number":1350,"owner":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"actions":{},"labels":{"Code-Review":{"all":[{"value":0,"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},{"value":0,"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"}],"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"},"default_value":0}},"removable_reviewers":[{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."}],"reviewers":{"REVIEWER":[{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},{"_account_id":1000003,"name":"plaisthos","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":"2025-11-04 21:44:15.000000000","updated_by":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"reviewer":{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"},"state":"CC"},{"updated":"2025-11-04 21:44:15.000000000","updated_by":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"reviewer":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"state":"REVIEWER"},{"updated":"2025-11-04 21:44:15.000000000","updated_by":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"reviewer":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"state":"REVIEWER"},{"updated":"2025-11-09 08:02:20.000000000","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":"0f1e4b4238e4319129b7d5b88b078557eb1ff624","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-11-04 21:44:14.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"7cd3699dc7588d0955a14c736575fb5a8fddc5f9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-11-06 16:39:14.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"1ce826cc77fd4f20311e32b4c9ec944c4aecd98b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-11-07 17:23:02.000000000","message":"Uploaded patch set 3: Patch Set 2 was rebased.","accounts_in_message":[],"_revision_number":3},{"id":"13897990fc246a15744c21472454200dd5fda932","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-09 08:02:20.000000000","message":"Patch Set 3: Code-Review+2","accounts_in_message":[],"_revision_number":3},{"id":"dc81d63abe9dd2e1e23d68ac10a5a87e48c752c7","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-11-09 11:00:24.000000000","message":"Change has been successfully pushed.","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"ce99cd6cfc091e17701b471a88644cb45ab21681","revisions":{"a2edccc3eb54e78eb784f5c3e1c558a37337ddf6":{"kind":"REWORK","_number":1,"created":"2025-11-04 21:44:14.000000000","uploader":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"ref":"refs/changes/50/1350/1","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/50/1350/1","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/1 \u0026\u0026 git checkout -b change-1350 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/50/1350/1","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"7661dea75f2af7a38c8aae02383868b6d684a416","subject":"dco_freebsd.c: add D_DCO_DEBUG messages for counters and notifications"}],"author":{"name":"Gert Doering","email":"gert@greenie.muc.de","date":"2025-11-04 21:36:25.000000000","tz":60},"committer":{"name":"Gert Doering","email":"gert@greenie.muc.de","date":"2025-11-04 21:36:25.000000000","tz":60},"subject":"dco_freebsd: implement dco_get_peer_stats()","message":"dco_freebsd: implement dco_get_peer_stats()\n\nThis is \"fetch read/write statistics for a single peer\", complementing\ndco_get_peer_stats_multi() \"... for all peers\", and it is called in\n--client mode, and (!) in p2mp mode to check if --inactive thresholds\nare reached.\n\nThe FreeBSD DCO module has no \"give me stats for a single peer\" call, so\nwe just call dco_get_peer_stats_multi() to get all of them - and that\nfunction is modified to handle p2p or p2mp mode by checking mode \u003d\u003d CM_TOP.\n\n(dco_linux does about the same in dco_get_peer*() -\u003e ovpn_handle_peer(),\nafter a few iterations, except that it can query for \"just one peer\")\n\n\"--inactive\" still does not work on FreeBSD, because the code in forward.c\nlooks at counters that are not set by FreeBSD DCO.\n\nGithub: OpenVPN/openvpn#898\n\nChange-Id: I38a040a9bdcb44933d4ca538f746af5c61011d7c\nSigned-off-by: Gert Doering \u003cgert@greenie.muc.de\u003e\n"},"branch":"refs/heads/master"},"03973c13a2a78c746474228fa34b6d5ce94e51a9":{"kind":"REWORK","_number":2,"created":"2025-11-06 16:39:14.000000000","uploader":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"ref":"refs/changes/50/1350/2","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/50/1350/2","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/2 \u0026\u0026 git checkout -b change-1350 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/50/1350/2","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"c51f568fc2a3cb99c2938514e012dae2d32ecf27","subject":"dco_freebsd.c: add D_DCO_DEBUG messages for counters and notifications"}],"author":{"name":"Gert Doering","email":"gert@greenie.muc.de","date":"2025-11-04 21:36:25.000000000","tz":60},"committer":{"name":"Gert Doering","email":"gert@greenie.muc.de","date":"2025-11-06 16:26:38.000000000","tz":60},"subject":"dco_freebsd: implement dco_get_peer_stats()","message":"dco_freebsd: implement dco_get_peer_stats()\n\nThis is \"fetch read/write statistics for a single peer\", complementing\ndco_get_peer_stats_multi() \"... for all peers\", and it is called in\n--client mode, and (!) in p2mp mode to check if --inactive thresholds\nare reached.\n\nThe FreeBSD DCO module has no \"give me stats for a single peer\" call, so\nwe just call dco_get_peer_stats_multi() to get all of them - and that\nfunction is modified to handle p2p or p2mp mode by checking mode \u003d\u003d CM_TOP.\n\n(dco_linux does about the same in dco_get_peer*() -\u003e ovpn_handle_peer(),\nafter a few iterations, except that it can query for \"just one peer\")\n\n\"--inactive\" still does not work on FreeBSD, because the code in forward.c\nlooks at counters that are not set by FreeBSD DCO.\n\nv2:\n  on AUTH_FAIL, \u0027dco\u0027 struct is not initialized yet -\u003e SIGSEGV crash,\n  verify that dco_peer_id is \u003e\u003d 0 before calling dco_get_peer_stats_multi()\n\nGithub: OpenVPN/openvpn#898\n\nChange-Id: I38a040a9bdcb44933d4ca538f746af5c61011d7c\nSigned-off-by: Gert Doering \u003cgert@greenie.muc.de\u003e\n"},"branch":"refs/heads/master"},"27b8494d9f96379752794bd577775b1498b9dcbe":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2025-11-07 17:23:02.000000000","uploader":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"ref":"refs/changes/50/1350/3","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/50/1350/3","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/3 \u0026\u0026 git checkout -b change-1350 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/50/1350/3","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"6711ffa9990d027f566fea4dcf005a8a0be71f13","subject":"dco_freebsd.c: add D_DCO_DEBUG messages for counters and notifications"}],"author":{"name":"Gert Doering","email":"gert@greenie.muc.de","date":"2025-11-04 21:36:25.000000000","tz":60},"committer":{"name":"Gert Doering","email":"gert@greenie.muc.de","date":"2025-11-07 17:07:54.000000000","tz":60},"subject":"dco_freebsd: implement dco_get_peer_stats()","message":"dco_freebsd: implement dco_get_peer_stats()\n\nThis is \"fetch read/write statistics for a single peer\", complementing\ndco_get_peer_stats_multi() \"... for all peers\", and it is called in\n--client mode, and (!) in p2mp mode to check if --inactive thresholds\nare reached.\n\nThe FreeBSD DCO module has no \"give me stats for a single peer\" call, so\nwe just call dco_get_peer_stats_multi() to get all of them - and that\nfunction is modified to handle p2p or p2mp mode by checking mode \u003d\u003d CM_TOP.\n\n(dco_linux does about the same in dco_get_peer*() -\u003e ovpn_handle_peer(),\nafter a few iterations, except that it can query for \"just one peer\")\n\n\"--inactive\" still does not work on FreeBSD, because the code in forward.c\nlooks at counters that are not set by FreeBSD DCO.\n\nv2:\n  on AUTH_FAIL, \u0027dco\u0027 struct is not initialized yet -\u003e SIGSEGV crash,\n  verify that dco_peer_id is \u003e\u003d 0 before calling dco_get_peer_stats_multi()\n\nGithub: OpenVPN/openvpn#898\n\nChange-Id: I38a040a9bdcb44933d4ca538f746af5c61011d7c\nSigned-off-by: Gert Doering \u003cgert@greenie.muc.de\u003e\n"},"branch":"refs/heads/master"},"ce99cd6cfc091e17701b471a88644cb45ab21681":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":4,"created":"2025-11-09 11:00:24.000000000","uploader":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"ref":"refs/changes/50/1350/4","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/50/1350/4","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/4 \u0026\u0026 git checkout -b change-1350 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/50/1350/4","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/50/1350/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4e9a10adb6eb938409dcdf6a1dfae44f12b29efc","subject":"pkcs11_openssl: Silence a conversion warning"}],"author":{"name":"Gert Doering","email":"gert@greenie.muc.de","date":"2025-11-09 08:41:23.000000000","tz":60},"committer":{"name":"Gert Doering","email":"gert@greenie.muc.de","date":"2025-11-09 10:51:51.000000000","tz":60},"subject":"dco_freebsd: implement dco_get_peer_stats()","message":"dco_freebsd: implement dco_get_peer_stats()\n\nThis is \"fetch read/write statistics for a single peer\", complementing\ndco_get_peer_stats_multi() \"... for all peers\", and it is called in\n--client mode, and (!) in p2mp mode to check if --inactive thresholds\nare reached.\n\nThe FreeBSD DCO module has no \"give me stats for a single peer\" call, so\nwe just call dco_get_peer_stats_multi() to get all of them - and that\nfunction is modified to handle p2p or p2mp mode by checking mode \u003d\u003d CM_TOP.\n\n(dco_linux does about the same in dco_get_peer*() -\u003e ovpn_handle_peer(),\nafter a few iterations, except that it can query for \"just one peer\")\n\n\"--inactive\" still does not work on FreeBSD, because the code in forward.c\nlooks at counters that are not set by FreeBSD DCO.\n\nv2:\n  on AUTH_FAIL, \u0027dco\u0027 struct is not initialized yet -\u003e SIGSEGV crash,\n  verify that dco_peer_id is \u003e\u003d 0 before calling dco_get_peer_stats_multi()\n\nGithub: OpenVPN/openvpn#898\n\nChange-Id: I38a040a9bdcb44933d4ca538f746af5c61011d7c\nSigned-off-by: Gert Doering \u003cgert@greenie.muc.de\u003e\nAcked-by: Ralf Lici \u003cralf@mandelbit.com\u003e\nGerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1350\nMessage-Id: \u003c20251109084130.11463-1-gert@greenie.muc.de\u003e\nURL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg34273.html\nSigned-off-by: Gert Doering \u003cgert@greenie.muc.de\u003e\n"},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
