)]}'
{"id":"openvpn~1403","triplet_id":"openvpn~master~Iefc251cb4483c0b9fb9d6a5207db4445cd884d52","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-28 12:32:47.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-28 11:26:53.000000000","reason":"removed on reply"},"1000041":{"account":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"last_update":"2025-11-28 12:32:47.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Iefc251cb4483c0b9fb9d6a5207db4445cd884d52","subject":"dco: process messages immediately after read","status":"MERGED","created":"2025-11-25 09:14:54.000000000","updated":"2025-11-28 12:32:47.000000000","submitted":"2025-11-28 12:32:47.000000000","submitter":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"total_comment_count":5,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"1403","meta_rev_id":"c21f1e640614169a44da1bb4031d2a3a1b4309f5","_number":1403,"virtual_id_number":1403,"owner":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"actions":{},"labels":{"Code-Review":{"all":[{"value":0,"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"}],"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"}],"reviewers":{"REVIEWER":[{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},{"_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":"2025-11-25 09:14:55.000000000","updated_by":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"reviewer":{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"},"state":"CC"},{"updated":"2025-11-25 09:14:55.000000000","updated_by":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"reviewer":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"state":"REVIEWER"},{"updated":"2025-11-27 17:35:27.000000000","updated_by":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"reviewer":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"state":"REVIEWER"}],"messages":[{"id":"e4bb833a00eb2cd18a25adac5659198fce1a96dd","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-25 09:14:54.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c04dc341bdbf8cfff3f1e31d3728bd1c6e50a63d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-25 09:22:07.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"94a19bd8b1b06e84678aa488ee88e7bfc389292d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-25 10:06:19.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"85393e8163b4f82fd38819bc793f2f1e33ed846a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-25 11:23:28.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"00d75dfd911613da2a22b5a1ddd8d232f823f36a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-27 15:05:39.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"11a666aa0ebff338f2d6beb56eb4a57ab9936f39","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-27 15:34:46.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"1742edfa9d319b4ba38c5e6f98e281afe82e896f","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-11-27 17:35:27.000000000","message":"Patch Set 6: Code-Review+2","accounts_in_message":[],"_revision_number":6},{"id":"107eccb1d270a8eadcb6e26b5bf9d6fdb7b650b4","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-11-27 21:49:58.000000000","message":"Patch Set 6: Code-Review-2\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"a67d80c9c6bd426f6dd9e9c689c5cb861cdd1c37","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-28 08:21:02.000000000","message":"Uploaded patch set 7.\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":7},{"id":"df7f88dde7394b5e2eaad4a404d29e6c4ddaba0e","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-28 08:23:44.000000000","message":"Patch Set 7:\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"155e514e04dadfa49b539ab4c8512f833bab1dbe","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-28 08:58:43.000000000","message":"Uploaded patch set 8.\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":"c58f8263dcfb5a94ad19c7e69d56e31c67f8cf2c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-28 09:01:31.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","accounts_in_message":[],"_revision_number":9},{"id":"1aa30df962aa97edb4f709b2b61f8b05efaf9a79","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-28 09:10:26.000000000","message":"Uploaded patch set 10.\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":"21b6b976e350370d5d1436bdeb50c6a3ed93bdf6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-28 09:26:56.000000000","message":"Uploaded patch set 11.\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":"81cdec72cf9a0f7de66778e0b8c47ff2026f08b0","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-11-28 09:38:13.000000000","message":"Patch Set 11: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":11},{"id":"bbc1df956bfd5dccad45de589b53b8659dd320c6","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-11-28 10:37:34.000000000","message":"Patch Set 11: Code-Review-2\n\n(1 comment)","accounts_in_message":[],"_revision_number":11},{"id":"701f7c370741a67886806c507203195a521a7c49","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-28 10:56:29.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":"10a108333aebd47bff426d452486b50db7f65c52","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-28 10:56:55.000000000","message":"Patch Set 12:\n\n(1 comment)","accounts_in_message":[],"_revision_number":12},{"id":"cd28b61fc9f7c71e8dd4a00cdb69a89a19cac4cd","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-11-28 10:57:53.000000000","message":"Patch Set 12: Code-Review+2","accounts_in_message":[],"_revision_number":12},{"id":"21f7b873e8013d56e9ea9935c4dc284183ebcb25","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"date":"2025-11-28 11:25:53.000000000","message":"Uploaded patch set 13.\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":13},{"id":"f5dcdf45b4a82c070c95348fd07b2ce4fff617ff","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-11-28 11:26:53.000000000","message":"Patch Set 13: Code-Review+2","accounts_in_message":[],"_revision_number":13},{"id":"c21f1e640614169a44da1bb4031d2a3a1b4309f5","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-11-28 12:32:47.000000000","message":"Change has been successfully pushed.","accounts_in_message":[],"_revision_number":14}],"current_revision_number":14,"current_revision":"7791f5358a5574d4ef1bd27e2d52300c9d98bd72","revisions":{"6ff19b6f18d6f469230653c1879f553e1b07bf08":{"kind":"REWORK","_number":1,"created":"2025-11-25 09:14:54.000000000","uploader":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"ref":"refs/changes/03/1403/1","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/03/1403/1","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/1 \u0026\u0026 git checkout -b change-1403 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/03/1403/1","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"9807719077b5c9886fa0e1e4f47f9669b04d09f9","subject":"GHA: Add macos-26 and remove OpenSSL 1.1 builds on macOS"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 07:56:29.000000000","tz":60},"committer":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 08:55:08.000000000","tz":60},"subject":"dco: process messages immediately after read","message":"dco: process messages immediately after read\n\nCurrently, reading and processing of incoming DCO messages are\ndecoupled: notifications are read, parsed, and the relevant information\nis stored in fields of dco_context_t for later processing (with the only\nexception being stats). This approach is problematic on Linux, since\nlibnl does not allow reading a single netlink message at a time, which\ncan result in loss of information when multiple notifications are\navailable.\n\nThis change adopts a read -\u003e parse -\u003e process paradigm. On Linux,\nprocessing is now invoked directly from within the parsing callback,\nwhich libnl calls for each received netlink packet. The other interfaces\nare adapted accordingly to unify the processing model across all\nplatforms.\n\nReported-by: Stefan Baranoff\nChange-Id: Iefc251cb4483c0b9fb9d6a5207db4445cd884d52\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"f1fce331d91b666b7667cefab962efb824a96f96":{"kind":"REWORK","_number":2,"created":"2025-11-25 09:22:07.000000000","uploader":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"ref":"refs/changes/03/1403/2","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/03/1403/2","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/2 \u0026\u0026 git checkout -b change-1403 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/03/1403/2","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"6244e466217a367dd4d858f5e930e3aab415fc42","subject":"multi-socket: do not return tuntap flags on server-side"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 07:56:29.000000000","tz":60},"committer":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 09:20:18.000000000","tz":60},"subject":"dco: process messages immediately after read","message":"dco: process messages immediately after read\n\nCurrently, reading and processing of incoming DCO messages are\ndecoupled: notifications are read, parsed, and the relevant information\nis stored in fields of dco_context_t for later processing (with the only\nexception being stats). This approach is problematic on Linux, since\nlibnl does not allow reading a single netlink message at a time, which\ncan result in loss of information when multiple notifications are\navailable.\n\nThis change adopts a read -\u003e parse -\u003e process paradigm. On Linux,\nprocessing is now invoked directly from within the parsing callback,\nwhich libnl calls for each received netlink packet. The other interfaces\nare adapted accordingly to unify the processing model across all\nplatforms.\n\nReported-by: Stefan Baranoff\nChange-Id: Iefc251cb4483c0b9fb9d6a5207db4445cd884d52\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"e3201ad46f336f4ea0d85274ff58f6c431a16ec4":{"kind":"REWORK","_number":3,"created":"2025-11-25 10:06:19.000000000","uploader":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"ref":"refs/changes/03/1403/3","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/03/1403/3","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/3 \u0026\u0026 git checkout -b change-1403 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/03/1403/3","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"6244e466217a367dd4d858f5e930e3aab415fc42","subject":"multi-socket: do not return tuntap flags on server-side"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 07:56:29.000000000","tz":60},"committer":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 10:06:07.000000000","tz":60},"subject":"dco: process messages immediately after read","message":"dco: process messages immediately after read\n\nCurrently, reading and processing of incoming DCO messages are\ndecoupled: notifications are read, parsed, and the relevant information\nis stored in fields of dco_context_t for later processing (with the only\nexception being stats). This approach is problematic on Linux, since\nlibnl does not allow reading a single netlink message at a time, which\ncan result in loss of information when multiple notifications are\navailable.\n\nThis change adopts a read -\u003e parse -\u003e process paradigm. On Linux,\nprocessing is now invoked directly from within the parsing callback,\nwhich libnl calls for each received netlink packet. The other interfaces\nare adapted accordingly to unify the processing model across all\nplatforms.\n\nReported-by: Stefan Baranoff\nChange-Id: Iefc251cb4483c0b9fb9d6a5207db4445cd884d52\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"952cd3c0e36c01a3e7bb4a5d39b546cd6b9cfbde":{"kind":"REWORK","_number":4,"created":"2025-11-25 11:23:28.000000000","uploader":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"ref":"refs/changes/03/1403/4","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/03/1403/4","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/4 \u0026\u0026 git checkout -b change-1403 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/03/1403/4","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"6244e466217a367dd4d858f5e930e3aab415fc42","subject":"multi-socket: do not return tuntap flags on server-side"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 07:56:29.000000000","tz":60},"committer":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 11:17:55.000000000","tz":60},"subject":"dco: process messages immediately after read","message":"dco: process messages immediately after read\n\nCurrently, reading and processing of incoming DCO messages are\ndecoupled: notifications are read, parsed, and the relevant information\nis stored in fields of dco_context_t for later processing (with the only\nexception being stats). This approach is problematic on Linux, since\nlibnl does not allow reading a single netlink message at a time, which\ncan result in loss of information when multiple notifications are\navailable.\n\nThis change adopts a read -\u003e parse -\u003e process paradigm. On Linux,\nprocessing is now invoked directly from within the parsing callback,\nwhich libnl calls for each received netlink packet. The other interfaces\nare adapted accordingly to unify the processing model across all\nplatforms.\n\nReported-by: Stefan Baranoff\nChange-Id: Iefc251cb4483c0b9fb9d6a5207db4445cd884d52\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"2607cdc5240472ecd7707611fd49a659c08ca1a8":{"kind":"REWORK","_number":5,"created":"2025-11-27 15:05:39.000000000","uploader":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"ref":"refs/changes/03/1403/5","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/03/1403/5","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/5 \u0026\u0026 git checkout -b change-1403 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/03/1403/5","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/5 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"6244e466217a367dd4d858f5e930e3aab415fc42","subject":"multi-socket: do not return tuntap flags on server-side"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 07:56:29.000000000","tz":60},"committer":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-27 15:04:11.000000000","tz":60},"subject":"dco: process messages immediately after read","message":"dco: process messages immediately after read\n\nCurrently, reading and processing of incoming DCO messages are\ndecoupled: notifications are read, parsed, and the relevant information\nis stored in fields of dco_context_t for later processing (with the only\nexception being stats). This approach is problematic on Linux, since\nlibnl does not allow reading a single netlink message at a time, which\ncan result in loss of information when multiple notifications are\navailable.\n\nThis change adopts a read -\u003e parse -\u003e process paradigm. On Linux,\nprocessing is now invoked directly from within the parsing callback,\nwhich libnl calls for each received netlink packet. The other interfaces\nare adapted accordingly to unify the processing model across all\nplatforms.\n\nReported-by: Stefan Baranoff \u003cstefan.baranoff@trinitycyber.com\u003e\nChange-Id: Iefc251cb4483c0b9fb9d6a5207db4445cd884d52\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"8f5e4eb1564e0d6d1bd713170a97c6bba374662b":{"kind":"REWORK","_number":6,"created":"2025-11-27 15:34:46.000000000","uploader":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"ref":"refs/changes/03/1403/6","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/03/1403/6","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/6 \u0026\u0026 git checkout -b change-1403 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/03/1403/6","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/6 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"6244e466217a367dd4d858f5e930e3aab415fc42","subject":"multi-socket: do not return tuntap flags on server-side"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 07:56:29.000000000","tz":60},"committer":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-27 15:34:39.000000000","tz":60},"subject":"dco: process messages immediately after read","message":"dco: process messages immediately after read\n\nCurrently, reading and processing of incoming DCO messages are\ndecoupled: notifications are read, parsed, and the relevant information\nis stored in fields of dco_context_t for later processing (with the only\nexception being stats). This approach is problematic on Linux, since\nlibnl does not allow reading a single netlink message at a time, which\ncan result in loss of information when multiple notifications are\navailable.\n\nThis change adopts a read -\u003e parse -\u003e process paradigm. On Linux,\nprocessing is now invoked directly from within the parsing callback,\nwhich libnl calls for each received netlink packet. The other interfaces\nare adapted accordingly to unify the processing model across all\nplatforms.\n\nReported-by: Stefan Baranoff \u003cstefan.baranoff@trinitycyber.com\u003e\nChange-Id: Iefc251cb4483c0b9fb9d6a5207db4445cd884d52\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"8c5741f8d7e0c3eda53ac692e20210f1befbaffb":{"kind":"REWORK","_number":7,"created":"2025-11-28 08:21:02.000000000","uploader":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"ref":"refs/changes/03/1403/7","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/03/1403/7","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/7 \u0026\u0026 git checkout -b change-1403 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/03/1403/7","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/7 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"6244e466217a367dd4d858f5e930e3aab415fc42","subject":"multi-socket: do not return tuntap flags on server-side"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 07:56:29.000000000","tz":60},"committer":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-28 08:14:33.000000000","tz":60},"subject":"dco: process messages immediately after read","message":"dco: process messages immediately after read\n\nCurrently, reading and processing of incoming DCO messages are\ndecoupled: notifications are read, parsed, and the relevant information\nis stored in fields of dco_context_t for later processing (with the only\nexception being stats). This approach is problematic on Linux, since\nlibnl does not allow reading a single netlink message at a time, which\ncan result in loss of information when multiple notifications are\navailable.\n\nThis change adopts a read -\u003e parse -\u003e process paradigm. On Linux,\nprocessing is now invoked directly from within the parsing callback,\nwhich libnl calls for each received netlink packet. The other interfaces\nare adapted accordingly to unify the processing model across all\nplatforms.\n\nOn Linux, however, a DEL_PEER notification from the kernel triggers a\nGET_PEER request from userspace, which clutters the netlink\ncommunication logic and can lead to errors or even process exit when\nmultiple simultaneous DEL_PEER notifications are received. To avoid\nthis, introduce a lock that prevents requesting stats while we are still\nbusy parsing other messages.\n\nReported-by: Stefan Baranoff \u003cstefan.baranoff@trinitycyber.com\u003e\nChange-Id: Iefc251cb4483c0b9fb9d6a5207db4445cd884d52\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"12738d12a351302fcd7fca9c997629ede0aec1d5":{"kind":"REWORK","_number":8,"created":"2025-11-28 08:58:43.000000000","uploader":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"ref":"refs/changes/03/1403/8","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/03/1403/8","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/8 \u0026\u0026 git checkout -b change-1403 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/03/1403/8","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/8 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"6244e466217a367dd4d858f5e930e3aab415fc42","subject":"multi-socket: do not return tuntap flags on server-side"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 07:56:29.000000000","tz":60},"committer":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-28 08:58:38.000000000","tz":60},"subject":"dco: process messages immediately after read","message":"dco: process messages immediately after read\n\nCurrently, reading and processing of incoming DCO messages are\ndecoupled: notifications are read, parsed, and the relevant information\nis stored in fields of dco_context_t for later processing (with the only\nexception being stats). This approach is problematic on Linux, since\nlibnl does not allow reading a single netlink message at a time, which\ncan result in loss of information when multiple notifications are\navailable.\n\nThis change adopts a read -\u003e parse -\u003e process paradigm. On Linux,\nprocessing is now invoked directly from within the parsing callback,\nwhich libnl calls for each received netlink packet. The other interfaces\nare adapted accordingly to unify the processing model across all\nplatforms.\n\nOn Linux, however, a DEL_PEER notification from the kernel triggers a\nGET_PEER request from userspace, which clutters the netlink\ncommunication logic and can lead to errors or even process exit when\nmultiple simultaneous DEL_PEER notifications are received. To avoid\nthis, introduce a lock that prevents requesting stats while we are still\nbusy parsing other messages.\n\nReported-by: Stefan Baranoff \u003cstefan.baranoff@trinitycyber.com\u003e\nChange-Id: Iefc251cb4483c0b9fb9d6a5207db4445cd884d52\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"42f2e86c7c9d5bf11045a51f73b438cd68e6d6a0":{"kind":"REWORK","_number":9,"created":"2025-11-28 09:01:31.000000000","uploader":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"ref":"refs/changes/03/1403/9","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/03/1403/9","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/9 \u0026\u0026 git checkout -b change-1403 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/03/1403/9","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/9 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"6244e466217a367dd4d858f5e930e3aab415fc42","subject":"multi-socket: do not return tuntap flags on server-side"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 07:56:29.000000000","tz":60},"committer":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-28 09:01:26.000000000","tz":60},"subject":"dco: process messages immediately after read","message":"dco: process messages immediately after read\n\nCurrently, reading and processing of incoming DCO messages are\ndecoupled: notifications are read, parsed, and the relevant information\nis stored in fields of dco_context_t for later processing (with the only\nexception being stats). This approach is problematic on Linux, since\nlibnl does not allow reading a single netlink message at a time, which\ncan result in loss of information when multiple notifications are\navailable.\n\nThis change adopts a read -\u003e parse -\u003e process paradigm. On Linux,\nprocessing is now invoked directly from within the parsing callback,\nwhich libnl calls for each received netlink packet. The other interfaces\nare adapted accordingly to unify the processing model across all\nplatforms.\n\nOn Linux, however, a DEL_PEER notification from the kernel triggers a\nGET_PEER request from userspace, which clutters the netlink\ncommunication logic and can lead to errors or even process exit when\nmultiple simultaneous DEL_PEER notifications are received. To avoid\nthis, introduce a lock that prevents requesting stats while we are still\nbusy parsing other messages.\n\nReported-by: Stefan Baranoff \u003cstefan.baranoff@trinitycyber.com\u003e\nChange-Id: Iefc251cb4483c0b9fb9d6a5207db4445cd884d52\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"b1f01d95f3ca08a8197292210d8d8185895857d4":{"kind":"REWORK","_number":10,"created":"2025-11-28 09:10:26.000000000","uploader":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"ref":"refs/changes/03/1403/10","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/03/1403/10","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/10 \u0026\u0026 git checkout -b change-1403 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/03/1403/10","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/10 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"6244e466217a367dd4d858f5e930e3aab415fc42","subject":"multi-socket: do not return tuntap flags on server-side"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 07:56:29.000000000","tz":60},"committer":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-28 09:10:13.000000000","tz":60},"subject":"dco: process messages immediately after read","message":"dco: process messages immediately after read\n\nCurrently, reading and processing of incoming DCO messages are\ndecoupled: notifications are read, parsed, and the relevant information\nis stored in fields of dco_context_t for later processing (with the only\nexception being stats). This approach is problematic on Linux, since\nlibnl does not allow reading a single netlink message at a time, which\ncan result in loss of information when multiple notifications are\navailable.\n\nThis change adopts a read -\u003e parse -\u003e process paradigm. On Linux,\nprocessing is now invoked directly from within the parsing callback,\nwhich libnl calls for each received netlink packet. The other interfaces\nare adapted accordingly to unify the processing model across all\nplatforms.\n\nOn Linux, however, a DEL_PEER notification from the kernel triggers a\nGET_PEER request from userspace, which clutters the netlink\ncommunication logic and can lead to errors or even process exit when\nmultiple simultaneous DEL_PEER notifications are received. To avoid\nthis, introduce a lock that prevents requesting stats while we are still\nbusy parsing other messages.\n\nReported-by: Stefan Baranoff \u003cstefan.baranoff@trinitycyber.com\u003e\nChange-Id: Iefc251cb4483c0b9fb9d6a5207db4445cd884d52\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"19a4024f0a9636d459c4aabe780b2d80fb1d3ba1":{"kind":"REWORK","_number":11,"created":"2025-11-28 09:26:56.000000000","uploader":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"ref":"refs/changes/03/1403/11","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/03/1403/11","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/11 \u0026\u0026 git checkout -b change-1403 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/03/1403/11","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/11 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"6244e466217a367dd4d858f5e930e3aab415fc42","subject":"multi-socket: do not return tuntap flags on server-side"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 07:56:29.000000000","tz":60},"committer":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-28 09:26:49.000000000","tz":60},"subject":"dco: process messages immediately after read","message":"dco: process messages immediately after read\n\nCurrently, reading and processing of incoming DCO messages are\ndecoupled: notifications are read, parsed, and the relevant information\nis stored in fields of dco_context_t for later processing (with the only\nexception being stats). This approach is problematic on Linux, since\nlibnl does not allow reading a single netlink message at a time, which\ncan result in loss of information when multiple notifications are\navailable.\n\nThis change adopts a read -\u003e parse -\u003e process paradigm. On Linux,\nprocessing is now invoked directly from within the parsing callback,\nwhich libnl calls for each received netlink packet. The other interfaces\nare adapted accordingly to unify the processing model across all\nplatforms.\n\nOn Linux, however, a DEL_PEER notification from the kernel triggers a\nGET_PEER request from userspace, which clutters the netlink\ncommunication logic and can lead to errors or even process exit when\nmultiple simultaneous DEL_PEER notifications are received. To avoid\nthis, introduce a lock that prevents requesting stats while we are still\nbusy parsing other messages.\n\nReported-by: Stefan Baranoff \u003cstefan.baranoff@trinitycyber.com\u003e\nChange-Id: Iefc251cb4483c0b9fb9d6a5207db4445cd884d52\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"e287a60c39930f6d7665791a73a98f00fe1454b5":{"kind":"REWORK","_number":12,"created":"2025-11-28 10:56:29.000000000","uploader":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"ref":"refs/changes/03/1403/12","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/03/1403/12","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/12 \u0026\u0026 git checkout -b change-1403 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/03/1403/12","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/12 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"6244e466217a367dd4d858f5e930e3aab415fc42","subject":"multi-socket: do not return tuntap flags on server-side"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 07:56:29.000000000","tz":60},"committer":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-28 10:56:23.000000000","tz":60},"subject":"dco: process messages immediately after read","message":"dco: process messages immediately after read\n\nCurrently, reading and processing of incoming DCO messages are\ndecoupled: notifications are read, parsed, and the relevant information\nis stored in fields of dco_context_t for later processing (with the only\nexception being stats). This approach is problematic on Linux, since\nlibnl does not allow reading a single netlink message at a time, which\ncan result in loss of information when multiple notifications are\navailable.\n\nThis change adopts a read -\u003e parse -\u003e process paradigm. On Linux,\nprocessing is now invoked directly from within the parsing callback,\nwhich libnl calls for each received netlink packet. The other interfaces\nare adapted accordingly to unify the processing model across all\nplatforms.\n\nOn Linux, however, a DEL_PEER notification from the kernel triggers a\nGET_PEER request from userspace, which clutters the netlink\ncommunication logic and can lead to errors or even process exit when\nmultiple simultaneous DEL_PEER notifications are received. To avoid\nthis, introduce a lock that prevents requesting stats while we are still\nbusy parsing other messages.\n\nReported-by: Stefan Baranoff \u003cstefan.baranoff@trinitycyber.com\u003e\nChange-Id: Iefc251cb4483c0b9fb9d6a5207db4445cd884d52\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"d495c5ae896ed02d74024037cfd62f993e7a05ef":{"kind":"REWORK","_number":13,"created":"2025-11-28 11:25:53.000000000","uploader":{"_account_id":1000041,"name":"ralf_lici","display_name":"Ralf Lici","email":"ralf@mandelbit.com","username":"ralf_lici"},"ref":"refs/changes/03/1403/13","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/03/1403/13","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/13 \u0026\u0026 git checkout -b change-1403 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/03/1403/13","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/13 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"6244e466217a367dd4d858f5e930e3aab415fc42","subject":"multi-socket: do not return tuntap flags on server-side"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-25 07:56:29.000000000","tz":60},"committer":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-28 11:25:48.000000000","tz":60},"subject":"dco: process messages immediately after read","message":"dco: process messages immediately after read\n\nCurrently, reading and processing of incoming DCO messages are\ndecoupled: notifications are read, parsed, and the relevant information\nis stored in fields of dco_context_t for later processing (with the only\nexception being stats). This approach is problematic on Linux, since\nlibnl does not allow reading a single netlink message at a time, which\ncan result in loss of information when multiple notifications are\navailable.\n\nThis change adopts a read -\u003e parse -\u003e process paradigm. On Linux,\nprocessing is now invoked directly from within the parsing callback,\nwhich libnl calls for each received netlink packet. The other interfaces\nare adapted accordingly to unify the processing model across all\nplatforms.\n\nOn Linux, however, a DEL_PEER notification from the kernel triggers a\nGET_PEER request from userspace, which clutters the netlink\ncommunication logic and can lead to errors or even process exit when\nmultiple simultaneous DEL_PEER notifications are received. To avoid\nthis, introduce a lock that prevents requesting stats while we are still\nbusy parsing other messages.\n\nReported-by: Stefan Baranoff \u003cstefan.baranoff@trinitycyber.com\u003e\nChange-Id: Iefc251cb4483c0b9fb9d6a5207db4445cd884d52\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"7791f5358a5574d4ef1bd27e2d52300c9d98bd72":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":14,"created":"2025-11-28 12:32:47.000000000","uploader":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"ref":"refs/changes/03/1403/14","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/03/1403/14","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/14 \u0026\u0026 git checkout -b change-1403 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/03/1403/14","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/03/1403/14 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"0effd6cae392bc42bb5106170661ba520e344fbe","subject":"Remove remainders of --no-name-remapping option"}],"author":{"name":"Ralf Lici","email":"ralf@mandelbit.com","date":"2025-11-28 11:26:59.000000000","tz":60},"committer":{"name":"Gert Doering","email":"gert@greenie.muc.de","date":"2025-11-28 12:22:19.000000000","tz":60},"subject":"dco: process messages immediately after read","message":"dco: process messages immediately after read\n\nCurrently, reading and processing of incoming DCO messages are\ndecoupled: notifications are read, parsed, and the relevant information\nis stored in fields of dco_context_t for later processing (with the only\nexception being stats). This approach is problematic on Linux, since\nlibnl does not allow reading a single netlink message at a time, which\ncan result in loss of information when multiple notifications are\navailable.\n\nThis change adopts a read -\u003e parse -\u003e process paradigm. On Linux,\nprocessing is now invoked directly from within the parsing callback,\nwhich libnl calls for each received netlink packet. The other interfaces\nare adapted accordingly to unify the processing model across all\nplatforms.\n\nOn Linux, however, a DEL_PEER notification from the kernel triggers a\nGET_PEER request from userspace, which clutters the netlink\ncommunication logic and can lead to errors or even process exit when\nmultiple simultaneous DEL_PEER notifications are received. To avoid\nthis, introduce a lock that prevents requesting stats while we are still\nbusy parsing other messages.\n\nReported-by: Stefan Baranoff \u003cstefan.baranoff@trinitycyber.com\u003e\nGithub: OpenVPN/openvpn#900\nGithub: OpenVPN/openvpn#918\nGithub: fixes OpenVPN/openvpn#919\n\nChange-Id: Iefc251cb4483c0b9fb9d6a5207db4445cd884d52\nSigned-off-by: Ralf Lici \u003cralf@mandelbit.com\u003e\nAcked-by: Gert Doering \u003cgert@greenie.muc.de\u003e\nGerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1403\nMessage-Id: \u003c20251128112705.12613-1-gert@greenie.muc.de\u003e\nURL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg34785.html\nSigned-off-by: Gert Doering \u003cgert@greenie.muc.de\u003e\n"},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
