)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"85bd7fad14a74192166758fdfe8998227545e22b","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Always use a 0.0.0.0/0 default on Android instead of def1"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Certain handset manufactures (like Samsung iirc)  are handling"},{"line_number":10,"context_line":"0.0.0.0/0 different from the split /1 routes, so push the 0.0.0.0/0"},{"line_number":11,"context_line":"route to the OS."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"6387bb4f_95487c56","line":9,"updated":"2026-09-17 14:12:32.000000000","message":"Typo: \"manufacturers\".","commit_id":"50992348f44b4ee58ee0d9bbd7b21cdceed20a47"},{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"0a1c535e92372d0427eda6bc732b0753900a486f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Always use a 0.0.0.0/0 default on Android instead of def1"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Certain handset manufactures (like Samsung iirc)  are handling"},{"line_number":10,"context_line":"0.0.0.0/0 different from the split /1 routes, so push the 0.0.0.0/0"},{"line_number":11,"context_line":"route to the OS."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"4b648b11_3a552b9c","line":9,"in_reply_to":"6387bb4f_95487c56","updated":"2026-09-22 12:38:34.000000000","message":"Done","commit_id":"50992348f44b4ee58ee0d9bbd7b21cdceed20a47"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"3f251aca50f74b923ac289acdbcebea86a56211e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"81a47e68_564a4d64","updated":"2026-09-23 19:07:28.000000000","message":"I\u0027ve tried to follow what this does for a while, and I\u0027m not convinced the change doesn\u0027t have unintended secondary effects on Android.\n\nIn route.c, `undo_redirect_default_route_to_vpn()` used to just `del_route3()` on the `RG_DEF1` `if` branch.\n\nNow, if `RGI_ADDR_DEFINED`, it will also `add_route3()`. On Android, `get_default_gateway()` sets `RGI_ADDR_DEFINED` (and `gateway.addr` to `127 \u003c\u003c 24 | \u0027d\u0027 \u003c\u003c 16 | \u0027g\u0027 \u003c\u003c 8 | \u0027w\u0027` for some reason).\n\nWe probably don\u0027t want that.\n\nMaybe I\u0027m misunderstanding something?","commit_id":"e064870a823d64266e703fb724cb088f366f593f"},{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"66948821efa2c2bf508fb8c44105394fa760f196","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e91b37da_ec33a3f6","in_reply_to":"806b32ca_7346259b","updated":"2026-09-23 20:53:03.000000000","message":"Fair enough, I will withdraw my -1 and you guys can +2 and merge as you see fit.","commit_id":"e064870a823d64266e703fb724cb088f366f593f"},{"author":{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"e67ca2a256f70985c17ad08b5cea2c09650c3ef5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c3b99303_2ee623d9","in_reply_to":"81a47e68_564a4d64","updated":"2026-09-23 20:42:18.000000000","message":"Android doesn\u0027t actually install routes, and remove routes.  It passes the route list to the VPN API which then does magic stuff with \"ip rule\" policies.  The default gateway address is a magic marker (\"\\x7f dgw\").\n\nThis is one of the patches that is used in plaisthos\u0027 VPN App, so \"it is known that it works\" and the question is more \"do we want it in the upstream code base\" (and I didn\u0027t move on it because there was discussion on whether we wanted to restructure the whole redirect-gateway thing anyway, on all platforms, making `def1` the only available approach)","commit_id":"e064870a823d64266e703fb724cb088f366f593f"},{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"79e8e71fd39a8a181734eaa2d3066cfc349f84c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"806b32ca_7346259b","in_reply_to":"c3b99303_2ee623d9","updated":"2026-09-23 20:48:24.000000000","message":"Yeah, my client has shipped with this patch or a variation of that (the older version used to ignore the DEF1 flag in a different area and used more code) for almost ever.\n\nIt would be good to finally have a tree in my app that does not carry local patches anymore.","commit_id":"e064870a823d64266e703fb724cb088f366f593f"}],"src/openvpn/options.c":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"626c7d355c4ccde293c8c478655ced2d47651c7c","unresolved":true,"context_lines":[{"line_number":7321,"context_line":"            else if (streq(p[j], \"def1\"))"},{"line_number":7322,"context_line":"            {"},{"line_number":7323,"context_line":"#ifndef TARGET_ANDROID"},{"line_number":7324,"context_line":"                /* Android always uses 0.0.0.0/0, so silently ignore the flag */"},{"line_number":7325,"context_line":"                options-\u003eroutes-\u003eflags |\u003d RG_DEF1;"},{"line_number":7326,"context_line":"#endif"},{"line_number":7327,"context_line":"            }"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"13775cb7_2cfb8fd9","line":7324,"updated":"2026-09-17 14:15:56.000000000","message":"Do we want to ignore it silently, since this is a behavior change?","commit_id":"50992348f44b4ee58ee0d9bbd7b21cdceed20a47"},{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"0a1c535e92372d0427eda6bc732b0753900a486f","unresolved":false,"context_lines":[{"line_number":7321,"context_line":"            else if (streq(p[j], \"def1\"))"},{"line_number":7322,"context_line":"            {"},{"line_number":7323,"context_line":"#ifndef TARGET_ANDROID"},{"line_number":7324,"context_line":"                /* Android always uses 0.0.0.0/0, so silently ignore the flag */"},{"line_number":7325,"context_line":"                options-\u003eroutes-\u003eflags |\u003d RG_DEF1;"},{"line_number":7326,"context_line":"#endif"},{"line_number":7327,"context_line":"            }"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"2f7981b4_b03abb67","line":7324,"in_reply_to":"13775cb7_2cfb8fd9","updated":"2026-09-22 12:38:34.000000000","message":"I expanded the comment to say why we are doing that.","commit_id":"50992348f44b4ee58ee0d9bbd7b21cdceed20a47"},{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"85bd7fad14a74192166758fdfe8998227545e22b","unresolved":true,"context_lines":[{"line_number":7322,"context_line":"            {"},{"line_number":7323,"context_line":"#ifndef TARGET_ANDROID"},{"line_number":7324,"context_line":"                /* Android always uses 0.0.0.0/0, so silently ignore the flag */"},{"line_number":7325,"context_line":"                options-\u003eroutes-\u003eflags |\u003d RG_DEF1;"},{"line_number":7326,"context_line":"#endif"},{"line_number":7327,"context_line":"            }"},{"line_number":7328,"context_line":"            else if (streq(p[j], \"bypass-dhcp\"))"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"0fa6af79_24687b35","line":7325,"updated":"2026-09-17 14:12:32.000000000","message":"I hope I\u0027ve followed the core correctly, but `do_init_route_ipv6_list()` still seems to unconditionally install specific routes. Do we not care about IPv6, or is that intended?","commit_id":"50992348f44b4ee58ee0d9bbd7b21cdceed20a47"},{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"0a1c535e92372d0427eda6bc732b0753900a486f","unresolved":false,"context_lines":[{"line_number":7322,"context_line":"            {"},{"line_number":7323,"context_line":"#ifndef TARGET_ANDROID"},{"line_number":7324,"context_line":"                /* Android always uses 0.0.0.0/0, so silently ignore the flag */"},{"line_number":7325,"context_line":"                options-\u003eroutes-\u003eflags |\u003d RG_DEF1;"},{"line_number":7326,"context_line":"#endif"},{"line_number":7327,"context_line":"            }"},{"line_number":7328,"context_line":"            else if (streq(p[j], \"bypass-dhcp\"))"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"bb440912_483ac534","line":7325,"in_reply_to":"0fa6af79_24687b35","updated":"2026-09-22 12:38:34.000000000","message":"I haven\u0027t noticed the bad behaviour in IPv6 so far.","commit_id":"50992348f44b4ee58ee0d9bbd7b21cdceed20a47"}]}
