)]}'
{"id":"openvpn~815","triplet_id":"openvpn~master~Ia267276d61fa1425ba205f54ba6eb89021f32dba","project":"openvpn","branch":"master","full_branch":"refs/heads/master","attention_set":{"1000002":{"account":{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"last_update":"2025-02-20 06:12:29.000000000","reason":"\u003cGERRIT_ACCOUNT_1000008\u003e replied on the change","reason_account":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"}}},"removed_from_attention_set":{"1000008":{"account":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"last_update":"2025-02-20 06:12:29.000000000","reason":"\u003cGERRIT_ACCOUNT_1000008\u003e replied on the change","reason_account":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"}},"1000003":{"account":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"last_update":"2025-02-20 07:12:17.000000000","reason":"Change was submitted"},"1000001":{"account":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"last_update":"2025-02-20 07:12:17.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Ia267276d61fa1425ba205f54ba6eb89021f32dba","subject":"dco-win: multipeer support","status":"MERGED","created":"2024-11-21 18:07:39.000000000","updated":"2025-02-20 07:12:17.000000000","submitted":"2025-02-20 07:12:17.000000000","submitter":{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"total_comment_count":37,"unresolved_comment_count":1,"has_review_started":true,"submission_id":"815","meta_rev_id":"1909539636712158ea9aa77ab8f60375dc304aed","_number":815,"virtual_id_number":815,"owner":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"actions":{},"labels":{"Code-Review":{"all":[{"value":0,"_account_id":1000002,"name":"Gert Doering","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"},"description":"","default_value":0}},"removable_reviewers":[{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."}],"reviewers":{"REVIEWER":[{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},{"_account_id":1000003,"name":"Arne Schwabe","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":"2024-11-21 18:07:42.000000000","updated_by":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"real_updated_by":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"reviewer":{"_account_id":1000026,"name":"openvpn-devel","email":"openvpn-devel@lists.sourceforge.net","username":"openvpn-devel"},"state":"CC"},{"updated":"2024-11-21 18:07:42.000000000","updated_by":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"real_updated_by":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"reviewer":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"state":"REVIEWER"},{"updated":"2024-11-21 18:07:42.000000000","updated_by":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"real_updated_by":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"reviewer":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"state":"REVIEWER"},{"updated":"2025-02-04 20:11:19.000000000","updated_by":{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"real_updated_by":{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"reviewer":{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"state":"REVIEWER"}],"messages":[{"id":"015d6ac21eaf94ada1ce93eb38e4bcf6e969c408","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2024-11-21 18:07:39.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"8a53a7292b1f18aa0530332e10f242278fdfeee0","author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"date":"2024-11-22 14:59:46.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"838db771faad28ee58b4291d721557b2ead18e11","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2024-11-22 15:36:03.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.","accounts_in_message":[],"_revision_number":2},{"id":"50cae42f8fe3e13289a86e98446408a02dd258d9","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2024-11-22 15:37:56.000000000","message":"Patch Set 2:\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"272ea0a64151ec8bd409f5c98e67a6517b03bfba","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2024-11-22 15:38:32.000000000","message":"Uploaded patch set 3: Commit message was updated.","accounts_in_message":[],"_revision_number":3},{"id":"7611f61f25e569cfec7f9bdf0198636fcc80fe94","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2024-11-22 15:44:25.000000000","message":"Uploaded patch set 4: Patch Set 3 was rebased.","accounts_in_message":[],"_revision_number":4},{"id":"618a2f86c880ab3603085a040d2506e3fb6c5e25","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2024-11-27 12:27:54.000000000","message":"Uploaded patch set 5: Patch Set 4 was rebased.","accounts_in_message":[],"_revision_number":5},{"id":"a9d3b9d29a125f33aad31735c9122da6a5c81876","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2024-12-20 13:22:57.000000000","message":"Uploaded patch set 6: Patch Set 5 was rebased.","accounts_in_message":[],"_revision_number":6},{"id":"48dc3824d19d25d96911fbff32a87028368c5580","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2024-12-30 09:53:24.000000000","message":"Uploaded patch set 7: Patch Set 6 was rebased.","accounts_in_message":[],"_revision_number":7},{"id":"cde2961677cf75ebeba976abfaac574375b73348","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2024-12-31 10:54:07.000000000","message":"Uploaded patch set 8: Patch Set 7 was rebased.","accounts_in_message":[],"_revision_number":8},{"id":"3b28e1b7dad49717aafee19e301a6f882fe42016","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-01-13 09:19:58.000000000","message":"Uploaded patch set 9: Patch Set 8 was rebased.","accounts_in_message":[],"_revision_number":9},{"id":"e23b8e6f0ae03744d0e7573cf445ba37780f1bfd","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-01-14 12:54:20.000000000","message":"Uploaded patch set 10: Patch Set 9 was rebased.","accounts_in_message":[],"_revision_number":10},{"id":"9cf29268e3c1ae859fd0fa8ca066c5051668eb47","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-01-17 12:45:47.000000000","message":"Uploaded patch set 11: Patch Set 10 was rebased.","accounts_in_message":[],"_revision_number":11},{"id":"1135ef73c6017fc2a3a472d39a1c22ef51f04521","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-01-23 09:34:53.000000000","message":"Uploaded patch set 12.","accounts_in_message":[],"_revision_number":12},{"id":"6358eede936db905620caa5bfc709207bcd84e1d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-01-27 09:58:05.000000000","message":"Uploaded patch set 13: Patch Set 12 was rebased.","accounts_in_message":[],"_revision_number":13},{"id":"ca22f243ff44cdcd9422d28e6d251171bbf4e04d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-01-30 08:38:40.000000000","message":"Uploaded patch set 14: Patch Set 13 was rebased.","accounts_in_message":[],"_revision_number":14},{"id":"5d6cd3937ff01e52987661ccd8b90f061435c3ca","author":{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-02-04 20:11:19.000000000","message":"Patch Set 14: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":14},{"id":"5838b16bf30762e7ab6bdbcc540dc61722d1267c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-02-05 09:11:44.000000000","message":"Uploaded patch set 15: Patch Set 14 was rebased.\n\nCopied Votes:\n* Code-Review+1 (copy condition: \"changekind:NO_CHANGE OR **changekind:TRIVIAL_REBASE** OR is:MIN\")\n","accounts_in_message":[],"_revision_number":15},{"id":"844dca56dae35a3e9d5b69e022cca1e242952d7f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-02-05 10:22:13.000000000","message":"Uploaded patch set 16: Patch Set 15 was rebased.\n\nCopied Votes:\n* Code-Review+1 (copy condition: \"changekind:NO_CHANGE OR **changekind:TRIVIAL_REBASE** OR is:MIN\")\n","accounts_in_message":[],"_revision_number":16},{"id":"e1c6a28e7e419b6f9832723e69884a668453bd47","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-02-05 11:12:09.000000000","message":"Uploaded patch set 17: Patch Set 16 was rebased.\n\nCopied Votes:\n* Code-Review+1 (copy condition: \"changekind:NO_CHANGE OR **changekind:TRIVIAL_REBASE** OR is:MIN\")\n","accounts_in_message":[],"_revision_number":17},{"id":"7b70568b0854f3e0b65c4c9aa8f68ef36e7181ed","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-02-05 13:21:30.000000000","message":"Uploaded patch set 18: New patch set was added with same tree, parent tree, and commit message as Patch Set 17.\n\nCopied Votes:\n* Code-Review+1 (copy condition: \"**changekind:NO_CHANGE** OR **changekind:TRIVIAL_REBASE** OR is:MIN\")\n","accounts_in_message":[],"_revision_number":18},{"id":"fbbaeff35db272492b24595751b861586d36896b","author":{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-02-05 19:11:20.000000000","message":"Patch Set 18: Code-Review-1\n\n(13 comments)","accounts_in_message":[],"_revision_number":18},{"id":"3cea519426811f20b4d7309304ce100e62b18de1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-02-06 18:44:40.000000000","message":"Uploaded patch set 19.\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":19},{"id":"06d34c764f05cf97aeae1b401f49e0c66284b349","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-02-06 18:45:33.000000000","message":"Patch Set 19:\n\n(12 comments)","accounts_in_message":[],"_revision_number":19},{"id":"1560972bb58e9d08b863b414092a8b897f870037","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-02-06 18:46:54.000000000","message":"Patch Set 19:\n\n(5 comments)","accounts_in_message":[],"_revision_number":19},{"id":"fdccdfc1dd3ffc4b31bfa96c3b7f861277d4e72a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-02-13 09:06:58.000000000","message":"Uploaded patch set 20.","accounts_in_message":[],"_revision_number":20},{"id":"c0790c5c09f2919802f9d20b279663ca37fcbcef","author":{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-02-19 21:53:56.000000000","message":"Patch Set 20: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":20},{"id":"7a81d840906dedbcca54f5c4660bb3779c3b2fb2","author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"date":"2025-02-20 06:12:29.000000000","message":"Patch Set 20:\n\n(1 comment)","accounts_in_message":[],"_revision_number":20},{"id":"1909539636712158ea9aa77ab8f60375dc304aed","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"date":"2025-02-20 07:12:17.000000000","message":"Change has been successfully pushed.","accounts_in_message":[],"_revision_number":21}],"current_revision_number":21,"current_revision":"1625d927fc79e2926015ded06a01fd8e460a4bc7","revisions":{"d6c680f030929677ba0c11f5b26c1e456662a81b":{"kind":"REWORK","_number":1,"created":"2024-11-21 18:07:39.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/1","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/1","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/1 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/1","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"52c62f1af3a272dfc396a99c315ce98b93f576b6","subject":"mudp.c: keep offset value when reset buffer"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-21 17:51:05.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depends on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"4bbacab14ff7b63248ea1456d791c16c17da6c1d":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2024-11-22 15:36:03.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/2","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/2","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/2 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/2","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"327b4ef0f1a8d58fd14d810e7ebf2e5aed15e9e9","subject":"mudp.c: keep offset value when resetting buffer"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-22 15:35:18.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depends on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"c82eaaff9f8bd24a6494395456815a657cb02bb0":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2024-11-22 15:38:32.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/3","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/3","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/3 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/3","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"327b4ef0f1a8d58fd14d810e7ebf2e5aed15e9e9","subject":"mudp.c: keep offset value when resetting buffer"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-22 15:37:16.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"81114a9ff83ab549eb51ef51b70bd738dd44cff9":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2024-11-22 15:44:25.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/4","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/4","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/4 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/4","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4fa712129a6c02ee9effa5adf36cf0e289a1c986","subject":"mudp.c: keep offset value when resetting buffer"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-22 15:44:17.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"9e54b38d67bc02375477cfcdbd1778ba9eb3519e":{"kind":"TRIVIAL_REBASE","_number":5,"created":"2024-11-27 12:27:54.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/5","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/5","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/5 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/5","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/5 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"7c30aad3587b0e0bb04d1c6fb3ab6c1cf162fffe","subject":"mudp.c: keep offset value when resetting buffer"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-27 12:20:30.000000000","tz":60},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"74bc5f81ff0cc22ef694070a83aec1f938def805":{"kind":"TRIVIAL_REBASE","_number":6,"created":"2024-12-20 13:22:57.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/6","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/6","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/6 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/6","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/6 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"3833865f4cb43ba3df818e1b924901d8c9419081","subject":"mudp.c: keep offset value when resetting buffer"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-12-20 13:22:15.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"ad29cb7e98bb0cf2e8d81a4e12ec10cfc2b27eac":{"kind":"TRIVIAL_REBASE","_number":7,"created":"2024-12-30 09:53:24.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/7","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/7","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/7 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/7","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/7 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"acc9411f4445efccb6e9d90eae9a6cfaddc2a0b4","subject":"mudp.c: keep offset value when resetting buffer"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-12-30 09:52:33.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"940f2bea1f27d0157da8f31c4ecd50d8435a7644":{"kind":"TRIVIAL_REBASE","_number":8,"created":"2024-12-31 10:54:07.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/8","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/8","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/8 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/8","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/8 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"e4439d903e6dc4b6d3b4da48ef75b8123e2571b7","subject":"mudp.c: keep offset value when resetting buffer"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-12-31 10:39:22.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"8277587c81694885dd6b649d033df459a9c3ece8":{"kind":"TRIVIAL_REBASE","_number":9,"created":"2025-01-13 09:19:58.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/9","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/9","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/9 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/9","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/9 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"7312d4ab9450d5207fe39ae30a44b8e14eb24db9","subject":"mudp.c: keep offset value when resetting buffer"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2025-01-13 08:45:16.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"81109ab4ce6c2060f7ef431a741b55aa105f2bba":{"kind":"TRIVIAL_REBASE","_number":10,"created":"2025-01-14 12:54:20.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/10","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/10","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/10 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/10","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/10 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"489237ac6fb7ad6531da052739d6c62ec5c135f0","subject":"mudp.c: keep offset value when resetting buffer"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2025-01-14 12:54:06.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"5ae1395410b186743e55ef0c8920bf00cb2a5aed":{"kind":"TRIVIAL_REBASE","_number":11,"created":"2025-01-17 12:45:47.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/11","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/11","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/11 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/11","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/11 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"744a7a823f56913ed734eebec48673f761f6a6b1","subject":"mudp.c: keep offset value when resetting buffer"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2025-01-17 12:42:04.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"d1d331ac86b9406852856430b2d3bba75cb8b81b":{"kind":"REWORK","_number":12,"created":"2025-01-23 09:34:53.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/12","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/12","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/12 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/12","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/12 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"744a7a823f56913ed734eebec48673f761f6a6b1","subject":"mudp.c: keep offset value when resetting buffer"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2025-01-23 09:33:58.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"fdd9185f733390d005874c8562c276eb61adb51f":{"kind":"TRIVIAL_REBASE","_number":13,"created":"2025-01-27 09:58:05.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/13","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/13","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/13 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/13","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/13 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"ee2aa562d5ffa8bcb2515ed5112cf77d3a7d6dad","subject":"mudp.c: keep offset value when resetting buffer"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2025-01-27 09:57:45.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"d49d6e7c26cc4ce0270eef15b7186ab0d9762826":{"kind":"TRIVIAL_REBASE","_number":14,"created":"2025-01-30 08:38:40.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/14","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/14","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/14 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/14","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/14 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"a41fd8dabf8c5d233c43724d8bf82792d42e3d57","subject":"mudp.c: keep offset value when resetting buffer"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2025-01-30 08:38:03.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"6cff2492b86f3bc22b58d4f02c83e7bdb3985a6d":{"kind":"TRIVIAL_REBASE","_number":15,"created":"2025-02-05 09:11:44.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/15","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/15","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/15 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/15 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/15 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/15 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/15","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/15 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"060ead650450553214dad3e9856c500deb672bba","subject":"Adding AWS-LC to the OpenVPN CI"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2025-02-05 08:27:34.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"bd5f06f423fff87bdc556f46874105fcb7faab60":{"kind":"TRIVIAL_REBASE","_number":16,"created":"2025-02-05 10:22:13.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/16","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/16","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/16 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/16 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/16 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/16 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/16","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/16 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"0ff839ad512f547fee339a344cf2752aabbefc60","subject":"dco-win: disable dco in server mode if multiple --local options defined"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2025-02-05 10:19:09.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"7517aa0464d726c466222e9863c5b91835d0f80a":{"kind":"TRIVIAL_REBASE","_number":17,"created":"2025-02-05 11:12:09.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/17","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/17","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/17 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/17 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/17 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/17 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/17","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/17 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4c4cb0d79b74acd18dd31603863e0c37393da914","subject":"dco-win: disable dco in server mode if multiple --local options defined"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2025-02-05 11:11:49.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"53fceaab0377b8f8fea9da9d8c36ef4694b36467":{"kind":"NO_CHANGE","_number":18,"created":"2025-02-05 13:21:30.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/18","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/18","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/18 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/18 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/18 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/18 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/18","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/18 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4719687ef3ec8acefcdde584df0e7fa86ddcf333","subject":"dco-win: disable dco in server mode if multiple --local options defined"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2025-02-05 13:21:10.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"89ecdeb9729f5babc8ddb488b5d508791fe5d72a":{"kind":"REWORK","_number":19,"created":"2025-02-06 18:44:40.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/19","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/19","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/19 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/19 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/19 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/19 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/19","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/19 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4719687ef3ec8acefcdde584df0e7fa86ddcf333","subject":"dco-win: disable dco in server mode if multiple --local options defined"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2025-02-06 18:13:38.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"33a95351b3218766635351c69e25cf34394bfe7e":{"kind":"REWORK","_number":20,"created":"2025-02-13 09:06:58.000000000","uploader":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"ref":"refs/changes/15/815/20","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/20","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/20 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/20 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/20 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/20 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/20","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/20 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"4719687ef3ec8acefcdde584df0e7fa86ddcf333","subject":"dco-win: disable dco in server mode if multiple --local options defined"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2024-11-19 14:06:26.000000000","tz":120},"committer":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2025-02-13 09:03:30.000000000","tz":120},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\n"},"branch":"refs/heads/master"},"1625d927fc79e2926015ded06a01fd8e460a4bc7":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":21,"created":"2025-02-20 07:12:17.000000000","uploader":{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"ref":"refs/changes/15/815/21","fetch":{"anonymous http":{"url":"https://gerrit.openvpn.net/openvpn","ref":"refs/changes/15/815/21","commands":{"Branch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/21 \u0026\u0026 git checkout -b change-815 FETCH_HEAD","Checkout":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/21 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/21 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/21 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.openvpn.net/openvpn refs/changes/15/815/21","Reset To":"git fetch https://gerrit.openvpn.net/openvpn refs/changes/15/815/21 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"8720bc8e2e4fbccd16ca4bffd27c416575b1bfee","subject":"add more (void) to windows specific function prototypes and declarations"}],"author":{"name":"Lev Stipakov","email":"lev@openvpn.net","date":"2025-02-19 21:54:17.000000000","tz":60},"committer":{"name":"Gert Doering","email":"gert@greenie.muc.de","date":"2025-02-20 07:04:33.000000000","tz":60},"subject":"dco-win: multipeer support","message":"dco-win: multipeer support\n\nThis is the main commit for dco-win multipeer\nimplementation.\n\nThis adds concept of \"mode\" to DCO implementation,\nwhich is peer-to-peer or multipeer. Depending on mode,\nsome functions use MP-specific IOCTL commands, which\ninclude peer-id as a part of input.\n\nThe driver initialization accomodates server mode,\nin which tun device is created before transport.\n\nSince on Windows the socket is visible to the kernel only,\ncontrol channel packets have to be prepended with remote\nsockaddr of the peer - this allows userspace to distinguish\namong peers. Sadly there is no reliable way to get peer local\naddress, such as on Linux/FreeBSD, so we have to do a bit of\nguesswork to figure out IP address based on remote IP and local\nrouting table, which may backfire if there are multiple IPs\nassigned to the same network adapter. However, as for now\npeer-specific local IP is not used by the driver. We use\ninstead the result of bind() to the listening address.\n\nExisting sockethandle_finalize() function has been refactored\nto accomodate packets with possibly prepended sockaddr.\n\nChange-Id: Ia267276d61fa1425ba205f54ba6eb89021f32dba\nSigned-off-by: Lev Stipakov \u003clev@openvpn.net\u003e\nAcked-by: Gert Doering \u003cgert@greenie.muc.de\u003e\nMessage-Id: \u003c20250219215417.18260-1-gert@greenie.muc.de\u003e\nURL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg30935.html\nSigned-off-by: Gert Doering \u003cgert@greenie.muc.de\u003e\n"},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[]}
