)]}'
{"id":"openvpn~1100","triplet_id":"openvpn~master~I23ad79e14844aefde9ece34dadef0b75ff267201","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-07-25 18:06:22.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-07-25 17:04:49.000000000","reason":"\u003cGERRIT_ACCOUNT_1000002\u003e replied on the change","reason_account":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"}},"1000001":{"account":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"last_update":"2025-07-25 18:06:22.000000000","reason":"Change was submitted"},"1000007":{"account":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"last_update":"2025-07-25 18:06:22.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I23ad79e14844aefde9ece34dadef0b75ff267201","subject":"dco_linux: fix async message reception","status":"MERGED","created":"2025-07-22 20:22:05.000000000","updated":"2025-07-25 18:06:22.000000000","submitted":"2025-07-25 18:06:22.000000000","submitter":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"total_comment_count":16,"unresolved_comment_count":1,"has_review_started":true,"submission_id":"1100","meta_rev_id":"fd2a5587d23a2ff7d10434b2d5e6ed617b0efc82","_number":1100,"virtual_id_number":1100,"owner":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"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"},{"_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":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-07-22 20:22:09.000000000","updated_by":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"reviewer":{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"},"state":"CC"},{"updated":"2025-07-22 20:22:09.000000000","updated_by":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"reviewer":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"state":"REVIEWER"},{"updated":"2025-07-22 20:22:09.000000000","updated_by":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"reviewer":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"state":"REVIEWER"},{"updated":"2025-07-23 18:02:13.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":"CC"},{"updated":"2025-07-23 18:13:35.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":"79bebf3bd705997eee7b36d292de813eefa90324","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2025-07-22 20:22:05.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"9bb17e6a09c642ca1f934f963ae666e43928187f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2025-07-22 20:26:46.000000000","message":"Uploaded patch set 2: New patch set was added with same tree, parent tree, and commit message as Patch Set 1.","accounts_in_message":[],"_revision_number":2},{"id":"ee8aa7a5a9aecac60468ba67cbe2c987e4796f40","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2025-07-23 09:59:41.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"3c0afee97d7622c1836c470869788016a1ee83fc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2025-07-23 12:48:52.000000000","message":"Uploaded patch set 4: Patch Set 3 was rebased.","accounts_in_message":[],"_revision_number":4},{"id":"557c7a34924b904da9ad7b7c928f192bc7c43e99","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-07-23 18:02:13.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"f58f5435b57f16431986ed8537bec76e83d394ac","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-07-23 18:13:35.000000000","message":"Patch Set 4: Code-Review-1\n\n(7 comments)","accounts_in_message":[],"_revision_number":4},{"id":"bec2f9433a9bb3ccbc100b8f0178fc33aa5db0dd","author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2025-07-23 21:55:04.000000000","message":"Patch Set 4:\n\n(6 comments)","accounts_in_message":[],"_revision_number":4},{"id":"8e01e99c68a9192bf8f0467c4d8015146bd29827","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"date":"2025-07-23 22:00:13.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":5},{"id":"46cd4dd4aacec241045b3a594744b7f072451326","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-07-25 17:04:49.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"a6e2b356f0ce8086f38ebe2954d7d7c9c8565df5","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-07-25 17:20:30.000000000","message":"Patch Set 5: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"fd2a5587d23a2ff7d10434b2d5e6ed617b0efc82","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-07-25 18:06:22.000000000","message":"Change has been successfully pushed.","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"f353b7100c859a02e70723c998594c3efd83c419","revisions":{"193f25f7684cc1905c5cfdd3e5268e47b9da74a4":{"kind":"REWORK","_number":1,"created":"2025-07-22 20:22:05.000000000","uploader":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"ref":"refs/changes/00/1100/1","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/00/1100/1","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/1 \u0026\u0026 git checkout -b change-1100 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/00/1100/1","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4bde9d33de060b95f6964660f1a35c7e64c28032","subject":"dco_linux: factor out netlink notification code"}],"author":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2025-07-22 19:54:34.000000000","tz":120},"committer":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2025-07-22 20:22:01.000000000","tz":120},"subject":"dco_linux: fix async message reception","message":"dco_linux: fix async message reception\n\nCurrently whenever we send a PEER_GET request to ovpn, we also\nset the CB that is supposed to parse the reply.\n\nHowever, due to the async nature of netlink messages, we could\nget an unrelated notification, sent by ovpn upon some event,\nafter having set the CB, but before parsing the awaited reply.\n\nWhen this happens, the notification is then parsed with the\nconfigured CB instead of the notification parser, thus effectively\nrejecting the notification and losing the event.\n\nTo fix this inconsistency, make ovpn_handle_msg() the default and\nonly netlink parser CB. It is configured upon DCO initialization\nand is never removed.\n\novpn_handle_msg() will check the message type and will call the\naccording parser. This way, no matter what message we get at\nwhat time, but we\u0027ll always parse it correctly.\n\nAs a bonus we can also simplify the nl_sendmsg() API as we\ndon\u0027t need to pass the cb and its argument anymore.\n\nThe ID of the NLCTRL family is now also stored in the DCO\ncontext as we need it to check when we receive a mcast ID\nlookup message.\n\nChange-Id: I23ad79e14844aefde9ece34dadef0b75ff267201\nSigned-off-by: Antonio Quartulli \u003cantonio@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"9ee90e6fe8263fa61dcc0c591bcd2a54dc981991":{"kind":"NO_CHANGE","_number":2,"created":"2025-07-22 20:26:46.000000000","uploader":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"ref":"refs/changes/00/1100/2","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/00/1100/2","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/2 \u0026\u0026 git checkout -b change-1100 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/00/1100/2","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"2dc04bcc59d5a54d8da6361b839efa0b2c58ddb2","subject":"dco_linux: factor out netlink notification code"}],"author":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2025-07-22 19:54:34.000000000","tz":120},"committer":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2025-07-22 20:26:41.000000000","tz":120},"subject":"dco_linux: fix async message reception","message":"dco_linux: fix async message reception\n\nCurrently whenever we send a PEER_GET request to ovpn, we also\nset the CB that is supposed to parse the reply.\n\nHowever, due to the async nature of netlink messages, we could\nget an unrelated notification, sent by ovpn upon some event,\nafter having set the CB, but before parsing the awaited reply.\n\nWhen this happens, the notification is then parsed with the\nconfigured CB instead of the notification parser, thus effectively\nrejecting the notification and losing the event.\n\nTo fix this inconsistency, make ovpn_handle_msg() the default and\nonly netlink parser CB. It is configured upon DCO initialization\nand is never removed.\n\novpn_handle_msg() will check the message type and will call the\naccording parser. This way, no matter what message we get at\nwhat time, but we\u0027ll always parse it correctly.\n\nAs a bonus we can also simplify the nl_sendmsg() API as we\ndon\u0027t need to pass the cb and its argument anymore.\n\nThe ID of the NLCTRL family is now also stored in the DCO\ncontext as we need it to check when we receive a mcast ID\nlookup message.\n\nChange-Id: I23ad79e14844aefde9ece34dadef0b75ff267201\nSigned-off-by: Antonio Quartulli \u003cantonio@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"9be18c911804d661aae1beeceb473a6d94d708a4":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":3,"created":"2025-07-23 09:59:41.000000000","uploader":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"ref":"refs/changes/00/1100/3","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/00/1100/3","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/3 \u0026\u0026 git checkout -b change-1100 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/00/1100/3","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"9c33b0c4389bf272ca32cb6467b7b72941f78928","subject":"dco_linux: factor out netlink notification code"}],"author":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2025-07-22 19:54:34.000000000","tz":120},"committer":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2025-07-23 09:58:12.000000000","tz":120},"subject":"dco_linux: fix async message reception","message":"dco_linux: fix async message reception\n\nCurrently whenever we send a PEER_GET request to ovpn, we also\nset the CB that is supposed to parse the reply.\n\nHowever, due to the async nature of netlink messages, we could\nget an unrelated notification, sent by ovpn upon some event,\nafter having set the CB, but before parsing the awaited reply.\n\nWhen this happens, the notification is then parsed with the\nconfigured CB instead of the notification parser, thus effectively\nrejecting the notification and losing the event.\n\nTo fix this inconsistency, make ovpn_handle_msg() the default and\nonly netlink parser CB. It is configured upon DCO initialization\nand is never removed.\n\novpn_handle_msg() will check the message type and will call the\naccording parser. This way, no matter what message we get at\nwhat time, but we\u0027ll always parse it correctly.\n\nAs a bonus we can also simplify the nl_sendmsg() API as we\ndon\u0027t need to pass the cb and its argument anymore.\n\nThe ID of the NLCTRL family is now also stored in the DCO\ncontext as we need it to check when we receive a mcast ID\nlookup message.\n\nChange-Id: I23ad79e14844aefde9ece34dadef0b75ff267201\nGithub: OpenVPN/openvpn#793\nSigned-off-by: Antonio Quartulli \u003cantonio@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"5a3b755f23f963d8b3c0892a799668f4bb7484dc":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2025-07-23 12:48:52.000000000","uploader":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"ref":"refs/changes/00/1100/4","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/00/1100/4","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/4 \u0026\u0026 git checkout -b change-1100 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/00/1100/4","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"684fdd6a0606513cd15d99cea9066d2309650d1c","subject":"dco_linux: factor out netlink notification code"}],"author":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2025-07-22 19:54:34.000000000","tz":120},"committer":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2025-07-23 12:28:37.000000000","tz":120},"subject":"dco_linux: fix async message reception","message":"dco_linux: fix async message reception\n\nCurrently whenever we send a PEER_GET request to ovpn, we also\nset the CB that is supposed to parse the reply.\n\nHowever, due to the async nature of netlink messages, we could\nget an unrelated notification, sent by ovpn upon some event,\nafter having set the CB, but before parsing the awaited reply.\n\nWhen this happens, the notification is then parsed with the\nconfigured CB instead of the notification parser, thus effectively\nrejecting the notification and losing the event.\n\nTo fix this inconsistency, make ovpn_handle_msg() the default and\nonly netlink parser CB. It is configured upon DCO initialization\nand is never removed.\n\novpn_handle_msg() will check the message type and will call the\naccording parser. This way, no matter what message we get at\nwhat time, but we\u0027ll always parse it correctly.\n\nAs a bonus we can also simplify the nl_sendmsg() API as we\ndon\u0027t need to pass the cb and its argument anymore.\n\nThe ID of the NLCTRL family is now also stored in the DCO\ncontext as we need it to check when we receive a mcast ID\nlookup message.\n\nChange-Id: I23ad79e14844aefde9ece34dadef0b75ff267201\nGithub: OpenVPN/openvpn#793\nSigned-off-by: Antonio Quartulli \u003cantonio@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"7c22c9285686c519deed1f036d708070bbd139df":{"kind":"REWORK","_number":5,"created":"2025-07-23 22:00:13.000000000","uploader":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"ref":"refs/changes/00/1100/5","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/00/1100/5","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/5 \u0026\u0026 git checkout -b change-1100 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/00/1100/5","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/5 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"0e0023fe48357150ef1c35b99451f6d3054e2c0b","subject":"dco_linux: factor out netlink notification code"}],"author":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2025-07-22 19:54:34.000000000","tz":120},"committer":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2025-07-23 21:55:26.000000000","tz":120},"subject":"dco_linux: fix async message reception","message":"dco_linux: fix async message reception\n\nCurrently whenever we send a PEER_GET request to ovpn, we also\nset the CB that is supposed to parse the reply.\n\nHowever, due to the async nature of netlink messages, we could\nget an unrelated notification, sent by ovpn upon some event,\nafter having set the CB, but before parsing the awaited reply.\n\nWhen this happens, the notification is then parsed with the\nconfigured CB instead of the notification parser, thus effectively\nrejecting the notification and losing the event.\n\nTo fix this inconsistency, make ovpn_handle_msg() the default and\nonly netlink parser CB. It is configured upon DCO initialization\nand is never removed.\n\novpn_handle_msg() will check the message type and will call the\naccording parser. This way, no matter what message we get at\nwhat time, but we\u0027ll always parse it correctly.\n\nAs a bonus we can also simplify the nl_sendmsg() API as we\ndon\u0027t need to pass the cb and its argument anymore.\n\nThe ID of the NLCTRL family is now also stored in the DCO\ncontext as we need it to check when we receive a mcast ID\nlookup message.\n\nChange-Id: I23ad79e14844aefde9ece34dadef0b75ff267201\nGithub: OpenVPN/openvpn#793\nSigned-off-by: Antonio Quartulli \u003cantonio@mandelbit.com\u003e\n"},"branch":"refs/heads/master"},"f353b7100c859a02e70723c998594c3efd83c419":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":6,"created":"2025-07-25 18:06:22.000000000","uploader":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"ref":"refs/changes/00/1100/6","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/00/1100/6","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/6 \u0026\u0026 git checkout -b change-1100 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/00/1100/6","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/00/1100/6 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"df3ac551259865a0826d4571a3ae48bb1bdf38e3","subject":"plugins: Clean up -Wconversion warnings"}],"author":{"name":"Antonio Quartulli","email":"antonio@mandelbit.com","date":"2025-07-25 17:27:02.000000000","tz":120},"committer":{"name":"Gert Doering","email":"gert@greenie.muc.de","date":"2025-07-25 18:04:04.000000000","tz":120},"subject":"dco_linux: fix async message reception","message":"dco_linux: fix async message reception\n\nCurrently whenever we send a PEER_GET request to ovpn, we also\nset the CB that is supposed to parse the reply.\n\nHowever, due to the async nature of netlink messages, we could\nget an unrelated notification, sent by ovpn (kernel) upon some event,\nafter userland has set the CB, but before parsing the awaited reply.\n\nWhen this happens, the notification is then parsed with the\nconfigured CB instead of the notification parser, thus effectively\nrejecting the notification and losing the event.\n\nTo fix this inconsistency, make ovpn_handle_msg() the default and\nonly netlink parser CB. It is configured upon DCO initialization\nand is never removed.\n\novpn_handle_msg() will check the message type and will call the\ncorresponding handler. This way, no matter what message we get at\nwhat time, we\u0027ll always parse it correctly.\n\nAs a bonus we can also simplify the nl_sendmsg() API as we\ndon\u0027t need to pass the cb and its argument anymore.\n\nThe ID of the NLCTRL family is now also stored in the DCO\ncontext as we need it to check when we receive a mcast ID\nlookup message.\n\nChange-Id: I23ad79e14844aefde9ece34dadef0b75ff267201\nGithub: closes OpenVPN/openvpn#793\nSigned-off-by: Antonio Quartulli \u003cantonio@mandelbit.com\u003e\nAcked-by: Gert Doering \u003cgert@greenie.muc.de\u003e\nMessage-Id: \u003c20250725172708.19456-1-gert@greenie.muc.de\u003e\nURL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg32339.html\nSigned-off-by: Gert Doering \u003cgert@greenie.muc.de\u003e\n"},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
