)]}'
{"id":"openvpn~1556","triplet_id":"openvpn~master~Ibf8865e451866e1fffc8dbc8ad5ecf6bc5577ce4","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":"2026-04-12 13:46: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":"2026-04-12 13:46:24.000000000","reason":"Change was submitted"}},"hashtags":["mailsubmitted"],"change_id":"Ibf8865e451866e1fffc8dbc8ad5ecf6bc5577ce4","subject":"Remove multi_context-\u003eiter","status":"MERGED","created":"2026-03-05 14:04:11.000000000","updated":"2026-04-12 13:46:24.000000000","submitted":"2026-04-12 13:46: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":"1556","meta_rev_id":"b918f2ddd8f08c0c06f469ed831ca80f6cbb7100","_number":1556,"virtual_id_number":1556,"owner":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"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":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."}],"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":[],"reviewers":{"REVIEWER":[{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."}],"CC":[{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-03-05 14:04:12.000000000","updated_by":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"reviewer":{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"},"state":"CC"},{"updated":"2026-03-06 11:06:34.000000000","updated_by":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"reviewer":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"state":"REVIEWER"}],"messages":[{"id":"5ff7634aff5af3314a304bd506dfc78eebb43a52","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-03-05 14:04:11.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"62e5ef05f6beeae9158c5e62e9ce0ce824f117c5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-03-05 14:36:22.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":"aa47566a4d2e1cbcee697398901e5552b1e1acf7","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-03-06 11:06:34.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"45ff8116cfe7ed4859ee8c37e46b1410b8c1f3b0","tag":"autogenerated:gerrit:setHashtag","author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2026-03-09 13:18:38.000000000","message":"Hashtag added: mailsubmitted","accounts_in_message":[],"_revision_number":2},{"id":"d455dc3c806c2189d9e656a1ee5f6e77a49d3afa","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-03-11 17:48:37.000000000","message":"Uploaded patch set 3: Patch Set 2 was rebased.\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":3},{"id":"9d9adc4b2fc87cadcd6dab306ca64495e7875ec9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-03-11 18:51:06.000000000","message":"Uploaded patch set 4: Patch Set 3 was rebased.\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":4},{"id":"438b84a2870e577c4460d5b4f0bb638068caffba","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-03-12 13:04:18.000000000","message":"Uploaded patch set 5: Patch Set 4 was rebased.\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":5},{"id":"17b2e78b6274ec2cd71829f6e3a7be2c85121ea3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"date":"2026-03-19 14:17:13.000000000","message":"Uploaded patch set 6: Patch Set 5 was rebased. Commit message was updated.\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":6},{"id":"b918f2ddd8f08c0c06f469ed831ca80f6cbb7100","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2026-04-12 13:46:24.000000000","message":"Change has been successfully pushed.","accounts_in_message":[],"_revision_number":7}],"current_revision_number":7,"current_revision":"930968086deeeaac6f5717067339537c467c10d0","revisions":{"1ce11d8955d82ab3d3c308803af969a548b1d920":{"kind":"REWORK","_number":1,"created":"2026-03-05 14:04:11.000000000","uploader":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"ref":"refs/changes/56/1556/1","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/56/1556/1","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/1 \u0026\u0026 git checkout -b change-1556 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/56/1556/1","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4523e506bd2978c78a29824ce471c0518e85cb6c","subject":"push: Improve check of vsnprintf return value"}],"author":{"name":"Arne Schwabe","email":"arne@rfc2549.org","date":"2026-03-05 13:44:20.000000000","tz":60},"committer":{"name":"Arne Schwabe","email":"arne@rfc2549.org","date":"2026-03-05 14:04:02.000000000","tz":60},"subject":"Remove multi_context-\u003eiter","message":"Remove multi_context-\u003eiter\n\nThe multi_context-\u003eiter is basically a hash with only one bucket. This makes\nm-\u003eiter a linear list. Instead of maintaining this extra list use\nm-\u003einstances instead. This is a fixed sized continuous array, so iterating\nover it should be very quick. When the number of connected clients\napproaches max_clients, iterating over a static array should be faster than\na linked list, especially when considering cache locality.\n\nOf the several places where m-\u003eiter is used only one is potentially on a\ncritical path: the usage of m-\u003eiter in multi_bcast.\n\nHowever this performance difference would be only visible with a lightly\nloaded server with very few clients. And even in this scenario I could\nnot manage to measure a difference.\n\nChange-Id: Ibf8865e451866e1fffc8dbc8ad5ecf6bc5577ce4\n"},"branch":"refs/heads/master"},"83ec881e4104c308f9903bc1eb0635801f8930b4":{"kind":"NO_CHANGE","_number":2,"created":"2026-03-05 14:36:22.000000000","uploader":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"ref":"refs/changes/56/1556/2","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/56/1556/2","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/2 \u0026\u0026 git checkout -b change-1556 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/56/1556/2","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4523e506bd2978c78a29824ce471c0518e85cb6c","subject":"push: Improve check of vsnprintf return value"}],"author":{"name":"Arne Schwabe","email":"arne@rfc2549.org","date":"2026-03-05 13:44:20.000000000","tz":60},"committer":{"name":"Arne Schwabe","email":"arne@rfc2549.org","date":"2026-03-05 14:20:33.000000000","tz":60},"subject":"Remove multi_context-\u003eiter","message":"Remove multi_context-\u003eiter\n\nThe multi_context-\u003eiter is basically a hash with only one bucket. This makes\nm-\u003eiter a linear list. Instead of maintaining this extra list use\nm-\u003einstances instead. This is a fixed sized continuous array, so iterating\nover it should be very quick. When the number of connected clients\napproaches max_clients, iterating over a static array should be faster than\na linked list, especially when considering cache locality.\n\nOf the several places where m-\u003eiter is used only one is potentially on a\ncritical path: the usage of m-\u003eiter in multi_bcast.\n\nHowever this performance difference would be only visible with a lightly\nloaded server with very few clients. And even in this scenario I could\nnot manage to measure a difference.\n\nChange-Id: Ibf8865e451866e1fffc8dbc8ad5ecf6bc5577ce4\n"},"branch":"refs/heads/master"},"816298baf5bafeb85c684be025a7e332854ab58e":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2026-03-11 17:48:37.000000000","uploader":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"ref":"refs/changes/56/1556/3","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/56/1556/3","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/3 \u0026\u0026 git checkout -b change-1556 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/56/1556/3","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4f98585e40ee370ace71cd6ef379d01b4c516460","subject":"tun: Avoid sign-compare issues in tun_read_queue"}],"author":{"name":"Arne Schwabe","email":"arne@rfc2549.org","date":"2026-03-05 13:44:20.000000000","tz":60},"committer":{"name":"Arne Schwabe","email":"arne@rfc2549.org","date":"2026-03-11 17:27:42.000000000","tz":60},"subject":"Remove multi_context-\u003eiter","message":"Remove multi_context-\u003eiter\n\nThe multi_context-\u003eiter is basically a hash with only one bucket. This makes\nm-\u003eiter a linear list. Instead of maintaining this extra list use\nm-\u003einstances instead. This is a fixed sized continuous array, so iterating\nover it should be very quick. When the number of connected clients\napproaches max_clients, iterating over a static array should be faster than\na linked list, especially when considering cache locality.\n\nOf the several places where m-\u003eiter is used only one is potentially on a\ncritical path: the usage of m-\u003eiter in multi_bcast.\n\nHowever this performance difference would be only visible with a lightly\nloaded server with very few clients. And even in this scenario I could\nnot manage to measure a difference.\n\nChange-Id: Ibf8865e451866e1fffc8dbc8ad5ecf6bc5577ce4\n"},"branch":"refs/heads/master"},"85cc1807c78ac7726f928fc3fb608b8bfdee68b2":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2026-03-11 18:51:06.000000000","uploader":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"ref":"refs/changes/56/1556/4","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/56/1556/4","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/4 \u0026\u0026 git checkout -b change-1556 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/56/1556/4","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"7afd3cf066bfc13b3b01c0845ccf1c35ea640b1d","subject":"Win32: Make interface index DWORD consistently"}],"author":{"name":"Arne Schwabe","email":"arne@rfc2549.org","date":"2026-03-05 13:44:20.000000000","tz":60},"committer":{"name":"Arne Schwabe","email":"arne@rfc2549.org","date":"2026-03-11 18:15:07.000000000","tz":60},"subject":"Remove multi_context-\u003eiter","message":"Remove multi_context-\u003eiter\n\nThe multi_context-\u003eiter is basically a hash with only one bucket. This makes\nm-\u003eiter a linear list. Instead of maintaining this extra list use\nm-\u003einstances instead. This is a fixed sized continuous array, so iterating\nover it should be very quick. When the number of connected clients\napproaches max_clients, iterating over a static array should be faster than\na linked list, especially when considering cache locality.\n\nOf the several places where m-\u003eiter is used only one is potentially on a\ncritical path: the usage of m-\u003eiter in multi_bcast.\n\nHowever this performance difference would be only visible with a lightly\nloaded server with very few clients. And even in this scenario I could\nnot manage to measure a difference.\n\nChange-Id: Ibf8865e451866e1fffc8dbc8ad5ecf6bc5577ce4\n"},"branch":"refs/heads/master"},"d4d8ddc02ca8e6dd1634cf3af854c66131e90ff0":{"kind":"TRIVIAL_REBASE","_number":5,"created":"2026-03-12 13:04:18.000000000","uploader":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"ref":"refs/changes/56/1556/5","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/56/1556/5","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/5 \u0026\u0026 git checkout -b change-1556 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/56/1556/5","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/5 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"660340e9be501a31ff4c7bd3fa2e1bea6026e48f","subject":"tls_crypt: Avoid a sign-compare warning"}],"author":{"name":"Arne Schwabe","email":"arne@rfc2549.org","date":"2026-03-05 13:44:20.000000000","tz":60},"committer":{"name":"Arne Schwabe","email":"arne@rfc2549.org","date":"2026-03-12 12:59:24.000000000","tz":60},"subject":"Remove multi_context-\u003eiter","message":"Remove multi_context-\u003eiter\n\nThe multi_context-\u003eiter is basically a hash with only one bucket. This makes\nm-\u003eiter a linear list. Instead of maintaining this extra list use\nm-\u003einstances instead. This is a fixed sized continuous array, so iterating\nover it should be very quick. When the number of connected clients\napproaches max_clients, iterating over a static array should be faster than\na linked list, especially when considering cache locality.\n\nOf the several places where m-\u003eiter is used only one is potentially on a\ncritical path: the usage of m-\u003eiter in multi_bcast.\n\nHowever this performance difference would be only visible with a lightly\nloaded server with very few clients. And even in this scenario I could\nnot manage to measure a difference.\n\nChange-Id: Ibf8865e451866e1fffc8dbc8ad5ecf6bc5577ce4\n"},"branch":"refs/heads/master"},"fd4f03a066cd7ef9f3aefc0dbcc050077311917f":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":6,"created":"2026-03-19 14:17:13.000000000","uploader":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"ref":"refs/changes/56/1556/6","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/56/1556/6","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/6 \u0026\u0026 git checkout -b change-1556 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/56/1556/6","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/6 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"be9d1d3c47532c70fd2c0209446d2999a1e82ffb","subject":"Increase default size of internal hash maps to 4 * --max-clients"}],"author":{"name":"Arne Schwabe","email":"arne@rfc2549.org","date":"2026-03-05 13:44:20.000000000","tz":60},"committer":{"name":"Arne Schwabe","email":"arne@rfc2549.org","date":"2026-03-19 11:18:53.000000000","tz":60},"subject":"Remove multi_context-\u003eiter","message":"Remove multi_context-\u003eiter\n\nThe multi_context-\u003eiter is basically a hash with only one bucket. This makes\nm-\u003eiter a linear list. Instead of maintaining this extra list use\nm-\u003einstances instead. This is a fixed sized continuous array, so iterating\nover it should be very quick. When the number of connected clients\napproaches max_clients, iterating over a static array should be faster than\na linked list, especially when considering cache locality.\n\nOf the several places where m-\u003eiter is used only one is potentially on a\ncritical path: the usage of m-\u003eiter in multi_bcast.\n\nHowever this performance difference would be only visible with a lightly\nloaded server with very few clients. And even in this scenario I could\nnot manage to measure a difference.\n\nChange-Id: Ibf8865e451866e1fffc8dbc8ad5ecf6bc5577ce4\nSigned-off-by: Arne Schwabe \u003carne@rfc2549.org\u003e\n"},"branch":"refs/heads/master"},"930968086deeeaac6f5717067339537c467c10d0":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":7,"created":"2026-04-12 13:46:24.000000000","uploader":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"ref":"refs/changes/56/1556/7","fetch":{"anonymous http":{"url":"http://gerrit.openvpn.net/openvpn","ref":"refs/changes/56/1556/7","commands":{"Branch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/7 \u0026\u0026 git checkout -b change-1556 FETCH_HEAD","Checkout":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull http://gerrit.openvpn.net/openvpn refs/changes/56/1556/7","Reset To":"git fetch http://gerrit.openvpn.net/openvpn refs/changes/56/1556/7 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"b4cb98b5bb51a3edd19aadee1c422e72a63a2326","subject":"Try to emphasise the transition from old ovpn-dco to new ovpn module"}],"author":{"name":"Arne Schwabe","email":"arne@rfc2549.org","date":"2026-03-13 10:49:55.000000000","tz":60},"committer":{"name":"Gert Doering","email":"gert@greenie.muc.de","date":"2026-04-12 12:50:34.000000000","tz":120},"subject":"Remove multi_context-\u003eiter","message":"Remove multi_context-\u003eiter\n\nThe multi_context-\u003eiter is basically a hash with only one bucket. This makes\nm-\u003eiter a linear list. Instead of maintaining this extra list use\nm-\u003einstances instead. This is a fixed sized continuous array, so iterating\nover it should be very quick. When the number of connected clients\napproaches max_clients, iterating over a static array should be faster than\na linked list, especially when considering cache locality.\n\nOf the several places where m-\u003eiter is used only one is potentially on a\ncritical path: the usage of m-\u003eiter in multi_bcast.\n\nHowever this performance difference would be only visible with a lightly\nloaded server with very few clients. And even in this scenario I could\nnot manage to measure a difference.\n\nChange-Id: Ibf8865e451866e1fffc8dbc8ad5ecf6bc5577ce4\nSigned-off-by: Arne Schwabe \u003carne-openvpn@rfc2549.org\u003e\nAcked-by: Frank Lichtenheld \u003cfrank@lichtenheld.com\u003e\nGerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1556\nMessage-Id: \u003c20260313104955.16748-1-frank@lichtenheld.com\u003e\nURL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg36087.html\nSigned-off-by: Gert Doering \u003cgert@greenie.muc.de\u003e\n"},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
