{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":59932020,"defaultBranch":"master","name":"vpn-slice","ownerLogin":"dlenski","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-05-29T07:41:01.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/128716?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1712941865.0","currentOid":""},"activityList":{"items":[{"before":"4de7bf20c05b249d967048f9e28f7d23264fba4b","after":"4e26adbfd14de2be5e77933e96d353ea7d200107","ref":"refs/heads/master","pushedAt":"2024-05-10T22:13:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"replace distutils for python 3.12\n\nPython 3.12 has removed distutils: https://docs.python.org/3.12/whatsnew/3.12.html#removed\n\nUpdated comments and minimum version to match Darwin kernel based on\n@branchvincent's explanation at\nhttps://github.com/dlenski/vpn-slice/pull/149#discussion_r1496830990\n\nSigned-off-by: Daniel Lenski ","shortMessageHtmlLink":"replace distutils for python 3.12"}},{"before":"8836aa6dc7b2480c58b192fe7378f02e5d992853","after":"4de7bf20c05b249d967048f9e28f7d23264fba4b","ref":"refs/heads/master","pushedAt":"2024-05-10T22:12:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"replace distutils for python 3.12\n\nPython 3.12 has removed distutils: https://docs.python.org/3.12/whatsnew/3.12.html#removed\n\nUpdated comments and minimum version to match Darwin kernel based on\n@branchevincent's explanation at\nhttps://github.com/dlenski/vpn-slice/pull/149#discussion_r1496830990\n\nSigned-off-by: Daniel Lenski ","shortMessageHtmlLink":"replace distutils for python 3.12"}},{"before":"cd40123a24e3cea7fe073e1b4a8520bb90176971","after":"c2a3699e91d4276e652fabfb82cfce3b97b5ab4e","ref":"refs/heads/check_if_MTU_too_small_for_IPv6","pushedAt":"2024-04-13T19:15:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Refuse to try configuring IPv6 if MTU is <1280\n\nIPv6 requires a minimum MTU of 1280.\n\nIf MTU is <1280, it appears that any-and-all IPv6-related configuration,\nincluding setting addresses and routes, will immediately fail on\nLinux, where iproute(8) gives very cryptic errors like:\n\n RTNETLINK answers: Invalid argument error\n\nThis will prevent vpn-slice from completing a working setup even for IPv4.\n\nRather than overlooking this problem or silently ignoring IPv6 configuration\nissues, we should *fail* when IPv6 configuration is requested but the MTU is\ntoo small, and request that the user add `--disable-ipv6` to the OpenConnect\ncommand line, which should prevent OpenConnect from requesting or providing\nany IPv6 configuration to vpn-slice.\n\nPing #148.","shortMessageHtmlLink":"Refuse to try configuring IPv6 if MTU is <1280"}},{"before":"bb05c0698c67985c06a0accba939fe070492f86a","after":"8836aa6dc7b2480c58b192fe7378f02e5d992853","ref":"refs/heads/master","pushedAt":"2024-04-13T19:13:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"f-string-ify\n\nMostly-ish automated with https://github.com/ikamensh/flynt\n\nUsing f-strings means we will no longer support Python 3.5, which seems okay\nsince it went EOL over 3 years ago:\nhttps://www.python.org/downloads/release/python-3510","shortMessageHtmlLink":"f-string-ify"}},{"before":"13d5f685f0b9c2ad733f1c684b31ed21f34f6c9c","after":"9b5c65d7b01015d98e5323c94ccb9eea24e07cef","ref":"refs/heads/flynt","pushedAt":"2024-04-13T19:13:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"f-string-ify\n\nMostly-ish automated with https://github.com/ikamensh/flynt\n\nUsing f-strings means we will no longer support Python 3.5, which seems okay\nsince it went EOL over 3 years ago:\nhttps://www.python.org/downloads/release/python-3510","shortMessageHtmlLink":"f-string-ify"}},{"before":"5a57c43043ab76a1a0246f2c0cdd7cc638fd9b03","after":"13d5f685f0b9c2ad733f1c684b31ed21f34f6c9c","ref":"refs/heads/flynt","pushedAt":"2024-04-13T19:04:07.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"f-string-ify\n\nMostly-ish automated with https://github.com/ikamensh/flynt","shortMessageHtmlLink":"f-string-ify"}},{"before":"b0140e9235895825ff7b11582d42fc8a5205623c","after":"bb05c0698c67985c06a0accba939fe070492f86a","ref":"refs/heads/master","pushedAt":"2024-04-13T19:00:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Bugfix handling of exceptions in parse_args_and_env","shortMessageHtmlLink":"Bugfix handling of exceptions in parse_args_and_env"}},{"before":"c77905fe1661aaac552cd448cd2e41f6437f13ad","after":"cd40123a24e3cea7fe073e1b4a8520bb90176971","ref":"refs/heads/check_if_MTU_too_small_for_IPv6","pushedAt":"2024-04-12T17:25:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Refuse to try configuring IPv6 if MTU is <1280\n\nIPv6 requires a minimum MTU of 1280.\n\nIf MTU is <1280, it appears that any-and-all IPv6-related configuration,\nincluding setting addresses and routes, will immediately fail on\nLinux, where iproute(8) gives very cryptic errors like:\n\n RTNETLINK answers: Invalid argument error\n\nThis will prevent vpn-slice from completing a working setup even for IPv4.\n\nRather than overlooking this problem or silently ignoring IPv6 configuration\nissues, we should *fail* when IPv6 configuration is requested but the MTU is\ntoo small, and request that the user add `--disable-ipv6` to the OpenConnect\ncommand line, which should prevent OpenConnect from requesting or providing\nany IPv6 configuration to vpn-slice.\n\nPing #148.","shortMessageHtmlLink":"Refuse to try configuring IPv6 if MTU is <1280"}},{"before":"c890c225fcdc11d336abd7afb6c3591132bece27","after":"c77905fe1661aaac552cd448cd2e41f6437f13ad","ref":"refs/heads/check_if_MTU_too_small_for_IPv6","pushedAt":"2024-04-12T17:12:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Refuse to try configuring IPv6 if MTU is <1280\n\nIPv6 requires a minimum MTU of 1280.\n\nIf MTU is <1280, it appears that any-and-all IPv6-related configuration,\nincluding setting addresses and routes, will immediately fail on\nLinux, where iproute(8) gives very cryptic errors like:\n\n RTNETLINK answers: Invalid argument error\n\nThis will prevent vpn-slice from completing a working setup even for IPv4.\n\nRather than overlooking this problem or silently ignoring IPv6 configuration\nissues, we should *fail* when IPv6 configuration is requested but the MTU is\ntoo small, and request that the user add `--disable-ipv6` to the OpenConnect\ncommand line, which should prevent OpenConnect from requesting or providing\nany IPv6 configuration to vpn-slice.\n\nPing #148.","shortMessageHtmlLink":"Refuse to try configuring IPv6 if MTU is <1280"}},{"before":null,"after":"c890c225fcdc11d336abd7afb6c3591132bece27","ref":"refs/heads/check_if_MTU_too_small_for_IPv6","pushedAt":"2024-04-12T17:11:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Refuse to try configuring IPv6 if MTU is <1280\n\nIPv6 requires a minimum MTU of 1280.\n\nIf MTU is <1280, it appears that any-and-all IPv6-related configuration,\nincluding setting addresses and routes, will immediately fail on\nLinux, where iproute(8) gives very cryptic errors like:\n\n RTNETLINK answers: Invalid argument error\n\nThis will prevent vpn-slice from completing a working setup even for IPv4.\n\nRather than overlooking this problem or silently ignoring IPv6 configuration\nissues, we should *fail* when IPv6 configuration is requested but the MTU is\ntoo small, and request that the user add `--disable-ipv6` to the OpenConnect\ncommand line, which should prevent OpenConnect from requesting or providing\nany IPv6 configuration to vpn-slice.\n\nPing #148.","shortMessageHtmlLink":"Refuse to try configuring IPv6 if MTU is <1280"}},{"before":"aa4016645671d7573edc09a83053f47fc26d6bda","after":"5a57c43043ab76a1a0246f2c0cdd7cc638fd9b03","ref":"refs/heads/flynt","pushedAt":"2024-04-12T17:05:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"f-string-ify\n\nMostly-ish automated with https://github.com/ikamensh/flynt","shortMessageHtmlLink":"f-string-ify"}},{"before":"36b706c479b71e37742efad340999caed2e168d0","after":"aa4016645671d7573edc09a83053f47fc26d6bda","ref":"refs/heads/flynt","pushedAt":"2024-04-12T17:05:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"f-string-ify\n\nMostly-ish automated with https://github.com/ikamensh/flynt","shortMessageHtmlLink":"f-string-ify"}},{"before":null,"after":"36b706c479b71e37742efad340999caed2e168d0","ref":"refs/heads/flynt","pushedAt":"2024-04-10T22:45:04.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"f-string-ify\n\nMostly-ish automated with https://github.com/ikamensh/flynt","shortMessageHtmlLink":"f-string-ify"}},{"before":"3ebb56244a963118602760c589847088dca93908","after":"b0140e9235895825ff7b11582d42fc8a5205623c","ref":"refs/heads/master","pushedAt":"2023-12-12T22:02:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Remove MANIFEST.in\n\nThis file is no longer relevant or useful for Python packaging.","shortMessageHtmlLink":"Remove MANIFEST.in"}},{"before":"d1a43935c552e35d2817825612e9feda09aaccca","after":"847e787c3345e9d0406508dde3f0d4f4c33cf6f5","ref":"refs/heads/Linux_split_DNS_PR118_rework","pushedAt":"2023-12-12T21:54:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"iterator → list\n\nSee https://github.com/dlenski/vpn-slice/commit/208c94706ccf160bd622dde6bdd057a6204fd35b#r123603893. where @madushan1000 mentioned this.","shortMessageHtmlLink":"iterator → list"}},{"before":"2dbb86dbe9c02d268de3b7b7f618f93b19934e15","after":null,"ref":"refs/heads/add_kerberos_dc_option","pushedAt":"2023-12-11T20:57:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"}},{"before":"28ace485075c0acb98650ffa3d599bde4d1563a5","after":"3ebb56244a963118602760c589847088dca93908","ref":"refs/heads/master","pushedAt":"2023-11-29T21:25:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Fix #144 (exception when using --dump with host-to-IP aliases)\n\nNow `vpn-slice --dump` output will show host-to-IP aliases in a sane form:\n\n $ vpn-slice --dump foo.host.com=bar.host.com=1.2.3.4 ipv6.host.com=f00f::1234\n ...\n Complete set of host aliases to add /etc/hosts entries for:\n 1.2.3.4 -> foo.host.com, bar.host.com\n f00f::1234 -> ipv6.host.com\n ...","shortMessageHtmlLink":"Fix #144 (exception when using --dump with host-to-IP aliases)"}},{"before":null,"after":"f4330b01f9d4f5f0e602250af7ed6fa395f1685f","ref":"refs/heads/dependabot/github_actions/actions/checkout-4","pushedAt":"2023-09-11T02:48:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump actions/checkout from 3 to 4\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump actions/checkout from 3 to 4"}},{"before":"2dbb86dbe9c02d268de3b7b7f618f93b19934e15","after":"28ace485075c0acb98650ffa3d599bde4d1563a5","ref":"refs/heads/master","pushedAt":"2023-07-20T20:28:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Delete all routes the routes we created on disconnect\n\nThis is a slightly more compact and cleaned-up version of\nhttps://github.com/dlenski/vpn-slice/pull/114 by @jmbaur.\n\nAfter some consideration, it is definitely prudentt to delete \"normal\"\nroutes (split-includes), even though most OSes will delete them when the\ntunnel interface is deleted:\n\n- Some OSes don't do this correctly (old MacOS, BSD?).\n\n- It's possible to create a tunnel interface as root, then\n use that interface with `openconnect -i IFACE`, possibly running as\n non-root (see https://www.infradead.org/openconnect/nonroot.html).\n\n If invoked in this way, OpenConnect WON'T delete the tunnel interface on\n disconnect, but will merely set it to \"down.\" However, the routes using\n this interface should still be deleted at this point.\n\n- Parity with what the default/standard `vpnc-script` does.","shortMessageHtmlLink":"Delete all routes the routes we created on disconnect"}},{"before":"c5012442987444c3aa3e4b7f263f9b240a64435a","after":"2dbb86dbe9c02d268de3b7b7f618f93b19934e15","ref":"refs/heads/master","pushedAt":"2023-07-20T20:26:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Add '--kerberos-dc REALM' option\n\nIn https://github.com/dlenski/vpn-slice/issues/135, I learned that it's\npossible to automatically lookup the Kerberos5 domain controller (DC) hosts\nfor a given Kerberos5 realm, by using the DNS SRV records.\n\nFor example:\n\n $ REALM=realm.bigcorp.com\n $ dig +short @dns0.vpn0 @dns1.vpn0 _kerberos._tcp.$REALM SRV\n 0 100 88 dc-01.realm.bigcorp.com.\n 0 100 88 dc-02.realm.bigcorp.com.\n\nThis makes it quite easy to automatically lookup and route the DC hosts in\nvpn-slice, using most of the existing machinery for looking up\nuser-specified hostnames.","shortMessageHtmlLink":"Add '--kerberos-dc REALM' option"}},{"before":"f1e2254c634965f9e458a627d64cf09d82068c82","after":"2dbb86dbe9c02d268de3b7b7f618f93b19934e15","ref":"refs/heads/add_kerberos_dc_option","pushedAt":"2023-07-20T20:25:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Add '--kerberos-dc REALM' option\n\nIn https://github.com/dlenski/vpn-slice/issues/135, I learned that it's\npossible to automatically lookup the Kerberos5 domain controller (DC) hosts\nfor a given Kerberos5 realm, by using the DNS SRV records.\n\nFor example:\n\n $ REALM=realm.bigcorp.com\n $ dig +short @dns0.vpn0 @dns1.vpn0 _kerberos._tcp.$REALM SRV\n 0 100 88 dc-01.realm.bigcorp.com.\n 0 100 88 dc-02.realm.bigcorp.com.\n\nThis makes it quite easy to automatically lookup and route the DC hosts in\nvpn-slice, using most of the existing machinery for looking up\nuser-specified hostnames.","shortMessageHtmlLink":"Add '--kerberos-dc REALM' option"}},{"before":null,"after":"41c1a5c1d51499ca7e22213b1aaf1a3ce278c126","ref":"refs/heads/disconnect-delete-routes","pushedAt":"2023-07-20T20:25:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Delete all routes the routes we created on disconnect\n\nThis is a slightly more compact and cleaned-up version of\nhttps://github.com/dlenski/vpn-slice/pull/114 by @jmbaur.\n\nAfter some consideration, it is definitely prudentt to delete \"normal\"\nroutes (split-includes), even though most OSes will delete them when the\ntunnel interface is deleted:\n\n- Some OSes don't do this correctly (old MacOS, BSD?).\n\n- It's possible to create a tunnel interface as root, then\n use that interface with `openconnect -i IFACE`, possibly running as\n non-root (see https://www.infradead.org/openconnect/nonroot.html).\n\n If invoked in this way, OpenConnect WON'T delete the tunnel interface on\n disconnect, but will merely set it to \"down.\" However, the routes using\n this interface should still be deleted at this point.\n\n- Parity with what the default/standard `vpnc-script` does.","shortMessageHtmlLink":"Delete all routes the routes we created on disconnect"}},{"before":"467c60e2819a695f1a79a7697169d9076a769740","after":"f1e2254c634965f9e458a627d64cf09d82068c82","ref":"refs/heads/add_kerberos_dc_option","pushedAt":"2023-07-20T20:16:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Add '--kerberos-dc REALM' option\n\nIn https://github.com/dlenski/vpn-slice/issues/135, I learned that it's\npossible to automatically lookup the Kerberos5 domain controller (DC) hosts\nfor a given Kerberos5 realm, by using the DNS SRV records.\n\nFor example:\n\n $ REALM=realm.bigcorp.com\n $ dig +short @dns0.vpn0 @dns1.vpn0 _kerberos._tcp.$REALM SRV\n 0 100 88 dc-01.realm.bigcorp.com.\n 0 100 88 dc-02.realm.bigcorp.com.\n\nThis makes it quite easy to automatically lookup and route the DC hosts in\nvpn-slice, using most of the existing machinery for looking up\nuser-specified hostnames.","shortMessageHtmlLink":"Add '--kerberos-dc REALM' option"}},{"before":"a000d68ce7c4fe8d9e5f00e165f233fa61fa497a","after":"c5012442987444c3aa3e4b7f263f9b240a64435a","ref":"refs/heads/master","pushedAt":"2023-07-19T19:52:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"No routing cache for IPv4, starting with Linux 3.6\n\nhttps://gitlab.com/openconnect/vpnc-scripts/-/merge_requests/30","shortMessageHtmlLink":"No routing cache for IPv4, starting with Linux 3.6"}},{"before":"aea87a6697ba1841580e1385a56da4b1013caf4f","after":"ca559077a7103b0fb1d0698dd43f2a7860feec53","ref":"refs/heads/typing_annotations","pushedAt":"2023-07-14T20:04:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Add typing annotations to all 'provider' class methods, and utility functions\n\nThis is long overdue. I (and other contributors) are constantly introducing\nbugs by forgetting to str()ingify IP address/route/interface objects, in\nparticular.\n\nTODO: Add some useful type-checking (static analyzer?) as part of CI.","shortMessageHtmlLink":"Add typing annotations to all 'provider' class methods, and utility f…"}},{"before":null,"after":"467c60e2819a695f1a79a7697169d9076a769740","ref":"refs/heads/add_kerberos_dc_option","pushedAt":"2023-07-14T20:03:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Add '--kerberos-dc REALM' option\n\nIn https://github.com/dlenski/vpn-slice/issues/135, I learned that it's\npossible to automatically lookup the Kerberos5 domain controller (DC) hosts\nfor a given Kerberos5 realm, by using the DNS SRV records.\n\nFor example:\n\n $ REALM=realm.bigcorp.com\n $ dig +short @dns0.vpn0 @dns1.vpn0 _kerberos._tcp.$REALM SRV\n 0 100 88 dc-01.realm.bigcorp.com.\n 0 100 88 dc-02.realm.bigcorp.com.\n\nThis makes it quite easy to automatically lookup and route the DC hosts in\nvpn-slice, using most of the existing machinery for looking up\nuser-specified hostnames.","shortMessageHtmlLink":"Add '--kerberos-dc REALM' option"}},{"before":"208c94706ccf160bd622dde6bdd057a6204fd35b","after":"d1a43935c552e35d2817825612e9feda09aaccca","ref":"refs/heads/Linux_split_DNS_PR118_rework","pushedAt":"2023-07-13T22:07:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Fix CI errors caused by obsolete Python versions\n\n* Obsolete versions of Python are not supported on all ubuntu runners,\n run them on older runners.\n* Add recent versions of Python.","shortMessageHtmlLink":"Fix CI errors caused by obsolete Python versions"}},{"before":null,"after":"aea87a6697ba1841580e1385a56da4b1013caf4f","ref":"refs/heads/typing_annotations","pushedAt":"2023-07-13T20:46:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Add typing annotations to all 'provider' class methods, and utility functions\n\nThis is long overdue. I (and other contributors) are constantly introducing\nbugs by forgetting to str()ingify IP address/route/interface objects, in\nparticular.\n\nTODO: Add some useful type-checking (static analyzer?) as part of CI.","shortMessageHtmlLink":"Add typing annotations to all 'provider' class methods, and utility f…"}},{"before":"94195b2914d9fa3d2177abf43f127df1cfc94fbf","after":"208c94706ccf160bd622dde6bdd057a6204fd35b","ref":"refs/heads/Linux_split_DNS_PR118_rework","pushedAt":"2023-07-13T19:36:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Unbork ResolvedSplitDNSProvider\n\nThanks @madushan1000 for pointing this out in https://github.com/dlenski/vpn-slice/pull/118#issuecomment-1628686774.\n\nKeeping track of when to `str()`ingify IP addresses, and when not to, is quite hard. We probably need to use type-checking here.","shortMessageHtmlLink":"Unbork ResolvedSplitDNSProvider"}},{"before":null,"after":"e5c547d04afc07ef7d11acc64bd3af57e4dc6658","ref":"refs/heads/fancier_get_executable","pushedAt":"2023-07-06T19:55:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dlenski","name":"Dan Lenski","path":"/dlenski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/128716?s=80&v=4"},"commit":{"message":"Fancier get_executable() which can take specific paths to prioritize","shortMessageHtmlLink":"Fancier get_executable() which can take specific paths to prioritize"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAERvcOiAA","startCursor":null,"endCursor":null}},"title":"Activity · dlenski/vpn-slice"}