)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"488f9fd008f8e8eb960628fb7308c6ed976889a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"528a9852_afeb58b4","updated":"2024-01-12 16:25:11.000000000","message":"Generally looks fine to me","commit_id":"fd33090b98525468179b1ab75dc941fa38e1d8d8"},{"author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"a2ef9659807e2de2651fad14f8b32e6fd585c58d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6375d4cb_f9e07597","updated":"2024-01-17 09:05:02.000000000","message":"Looks good to me. I have compiled it with MSVC and tested following scenarios (with server pushing block-local)\n\n - access to LAN is blocked (got \"general failure\" when pinging local gateway)\n \n - traffic to VPN gateway is blocked expect from VPN process (got \"general failure\" when pinging VPN gateway via its public IP)","commit_id":"fd33090b98525468179b1ab75dc941fa38e1d8d8"},{"author":{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"1aecf0843ff77721b92164dc606fb1cb57ee43ea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"06d3c7dc_169b44c5","updated":"2024-05-18 16:08:30.000000000","message":"Overall the patch does what it says, but it is not -Werror clean.\n\nPlease fix, rebase (copyright dates have changed for the files renamed and commit 989b22cb6e0 moved around \"pipe_message_t\" + changed indentation).  Thanks.","commit_id":"fd33090b98525468179b1ab75dc941fa38e1d8d8"}],"doc/man-sections/vpn-network-options.rst":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"e58f778f5fbbb8e6f1e295960788f2447765193a","unresolved":true,"context_lines":[{"line_number":354,"context_line":"      LAN (except for the LAN gateway address) into the tunnel."},{"line_number":355,"context_line":"      On Windows WFP filters are added in addition to the routes which"},{"line_number":356,"context_line":"      block access to resources not routed through the VPN adapter."},{"line_number":357,"context_line":"      Push this flag to defend against the TunnelCrack attacks."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"  :code:`ipv6`"},{"line_number":360,"context_line":"      Redirect IPv6 routing into the tunnel. This works similar to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fae460bf_083f3462","line":357,"updated":"2024-01-09 09:15:29.000000000","message":"Should explain a bit more what this protects against. A reference to TunnelCrack is fine but the documentation should be understandable without looking it up.","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"31a7e3d1d3b5651bc34a7f6c57bcec0f772e37ff","unresolved":true,"context_lines":[{"line_number":354,"context_line":"      LAN (except for the LAN gateway address) into the tunnel."},{"line_number":355,"context_line":"      On Windows WFP filters are added in addition to the routes which"},{"line_number":356,"context_line":"      block access to resources not routed through the VPN adapter."},{"line_number":357,"context_line":"      Push this flag to defend against the TunnelCrack attacks."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"  :code:`ipv6`"},{"line_number":360,"context_line":"      Redirect IPv6 routing into the tunnel. This works similar to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9ab5407d_5fbd4418","line":357,"in_reply_to":"616966e3_6506d21f","updated":"2024-01-09 13:42:47.000000000","message":"Most terminals handle links sensibly these days. Also we publish this as HTML documentation. We already have existing http links in the document. So adding a link would probably not be a bad idea. How about:\n\n\"Push this flag to protect against attacks where the attacker tries to tricks the client into accessing services through a public network instead of the VPN (See e.g. https://tunnelcrack.mathyvanhoef.com/).\"","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"ae0f8ce5c59266399e17e84bf9f6ed078961ee88","unresolved":false,"context_lines":[{"line_number":354,"context_line":"      LAN (except for the LAN gateway address) into the tunnel."},{"line_number":355,"context_line":"      On Windows WFP filters are added in addition to the routes which"},{"line_number":356,"context_line":"      block access to resources not routed through the VPN adapter."},{"line_number":357,"context_line":"      Push this flag to defend against the TunnelCrack attacks."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"  :code:`ipv6`"},{"line_number":360,"context_line":"      Redirect IPv6 routing into the tunnel. This works similar to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b1bfa846_8997b555","line":357,"in_reply_to":"9ab5407d_5fbd4418","updated":"2024-01-09 14:53:24.000000000","message":"Done","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"9d5bc3f56a72e05ec857190a04354375b8700fa1","unresolved":true,"context_lines":[{"line_number":354,"context_line":"      LAN (except for the LAN gateway address) into the tunnel."},{"line_number":355,"context_line":"      On Windows WFP filters are added in addition to the routes which"},{"line_number":356,"context_line":"      block access to resources not routed through the VPN adapter."},{"line_number":357,"context_line":"      Push this flag to defend against the TunnelCrack attacks."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"  :code:`ipv6`"},{"line_number":360,"context_line":"      Redirect IPv6 routing into the tunnel. This works similar to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"616966e3_6506d21f","line":357,"in_reply_to":"fae460bf_083f3462","updated":"2024-01-09 13:16:20.000000000","message":"Agree not to explain TunnelCrack in the openvpn man page, but then references are not much of a thing in roff either. Could you elaborate what you have in mind? The technicalities are explained before the concluding sentence, so if you have a clue about TunnnelCrack things should be clear enough.","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"}],"include/openvpn-msg.h":[{"author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"f81aed46b5f903cd63126192367e665e8601c8b5","unresolved":true,"context_lines":[{"line_number":24,"context_line":"#ifndef OPENVPN_MSG_H_"},{"line_number":25,"context_line":"#define OPENVPN_MSG_H_"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"#include \u003cwindef.h\u003e"},{"line_number":28,"context_line":"#include \u003cws2tcpip.h\u003e"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"typedef enum {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"b79b7779_628d912d","line":27,"updated":"2024-01-10 10:16:58.000000000","message":"why those are needed here?","commit_id":"1ae2f25ea2c85d10993602ac2c828513e5a3f88a"},{"author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"3ca22bbd0ddcc7ce19937b3775d0223f4efd363d","unresolved":false,"context_lines":[{"line_number":24,"context_line":"#ifndef OPENVPN_MSG_H_"},{"line_number":25,"context_line":"#define OPENVPN_MSG_H_"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"#include \u003cwindef.h\u003e"},{"line_number":28,"context_line":"#include \u003cws2tcpip.h\u003e"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"typedef enum {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"d1fb891c_bb0bba56","line":27,"in_reply_to":"8bc08e9f_7c28e168","updated":"2024-01-17 08:56:03.000000000","message":"Acknowledged","commit_id":"1ae2f25ea2c85d10993602ac2c828513e5a3f88a"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"4888ec5b746a2b580b41b3860bf2e01097f46b27","unresolved":true,"context_lines":[{"line_number":24,"context_line":"#ifndef OPENVPN_MSG_H_"},{"line_number":25,"context_line":"#define OPENVPN_MSG_H_"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"#include \u003cwindef.h\u003e"},{"line_number":28,"context_line":"#include \u003cws2tcpip.h\u003e"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"typedef enum {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"8bc08e9f_7c28e168","line":27,"in_reply_to":"b79b7779_628d912d","updated":"2024-01-10 15:47:32.000000000","message":"They define some types used in the header. Not that all wouldn\u0027t compile without them, but when looking at the single file (like clangd does) these undefinedness.","commit_id":"1ae2f25ea2c85d10993602ac2c828513e5a3f88a"}],"src/openvpn/init.c":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"e58f778f5fbbb8e6f1e295960788f2447765193a","unresolved":true,"context_lines":[{"line_number":1968,"context_line":"                        c-\u003ec2.es);"},{"line_number":1969,"context_line":"        }"},{"line_number":1970,"context_line":"#if defined(_WIN32)"},{"line_number":1971,"context_line":"        /* Fortify \u0027redirect-gateway block-local\u0027 with firewall rules? */"},{"line_number":1972,"context_line":"        bool block_local \u003d do_block_local(c-\u003ec1.route_list);"},{"line_number":1973,"context_line":""},{"line_number":1974,"context_line":"        if (c-\u003eoptions.block_outside_dns || block_local)"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"c60f4d43_2e7f9790","line":1971,"updated":"2024-01-09 09:15:29.000000000","message":"Since this hunk and the previous are completely identical I would move them to a separate function. 12 lines are definitely worth it IMHO.","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"ae0f8ce5c59266399e17e84bf9f6ed078961ee88","unresolved":false,"context_lines":[{"line_number":1968,"context_line":"                        c-\u003ec2.es);"},{"line_number":1969,"context_line":"        }"},{"line_number":1970,"context_line":"#if defined(_WIN32)"},{"line_number":1971,"context_line":"        /* Fortify \u0027redirect-gateway block-local\u0027 with firewall rules? */"},{"line_number":1972,"context_line":"        bool block_local \u003d do_block_local(c-\u003ec1.route_list);"},{"line_number":1973,"context_line":""},{"line_number":1974,"context_line":"        if (c-\u003eoptions.block_outside_dns || block_local)"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"2586766b_9e2183fd","line":1971,"in_reply_to":"536482e0_0434a02b","updated":"2024-01-09 14:53:24.000000000","message":"Done","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"d3320cc6721d3a895f6ee0446cea7547ac5ea8d8","unresolved":true,"context_lines":[{"line_number":1968,"context_line":"                        c-\u003ec2.es);"},{"line_number":1969,"context_line":"        }"},{"line_number":1970,"context_line":"#if defined(_WIN32)"},{"line_number":1971,"context_line":"        /* Fortify \u0027redirect-gateway block-local\u0027 with firewall rules? */"},{"line_number":1972,"context_line":"        bool block_local \u003d do_block_local(c-\u003ec1.route_list);"},{"line_number":1973,"context_line":""},{"line_number":1974,"context_line":"        if (c-\u003eoptions.block_outside_dns || block_local)"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"536482e0_0434a02b","line":1971,"in_reply_to":"b47799d4_dca0b2c0","updated":"2024-01-09 14:39:14.000000000","message":"Okay there\u0027s not much to gain with respect to breaking out run_up_down, as that one requires too much special handling between the up and down cases.","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"9d5bc3f56a72e05ec857190a04354375b8700fa1","unresolved":true,"context_lines":[{"line_number":1968,"context_line":"                        c-\u003ec2.es);"},{"line_number":1969,"context_line":"        }"},{"line_number":1970,"context_line":"#if defined(_WIN32)"},{"line_number":1971,"context_line":"        /* Fortify \u0027redirect-gateway block-local\u0027 with firewall rules? */"},{"line_number":1972,"context_line":"        bool block_local \u003d do_block_local(c-\u003ec1.route_list);"},{"line_number":1973,"context_line":""},{"line_number":1974,"context_line":"        if (c-\u003eoptions.block_outside_dns || block_local)"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"b47799d4_dca0b2c0","line":1971,"in_reply_to":"c60f4d43_2e7f9790","updated":"2024-01-09 13:16:20.000000000","message":"I think there\u0027s even more duplicate code before. I\u0027ll take a look and submit a separate commit if it is not tightly related to wfp only.","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"1aecf0843ff77721b92164dc606fb1cb57ee43ea","unresolved":true,"context_lines":[{"line_number":2055,"context_line":"    const char *tuntap_actual \u003d string_alloc(c-\u003ec1.tuntap-\u003eactual_name, \u0026gc);"},{"line_number":2056,"context_line":"    const in_addr_t local \u003d c-\u003ec1.tuntap-\u003elocal;"},{"line_number":2057,"context_line":"    const in_addr_t remote_netmask \u003d c-\u003ec1.tuntap-\u003eremote_netmask;"},{"line_number":2058,"context_line":"    unsigned long adapter_index;"},{"line_number":2059,"context_line":"#ifdef _WIN32"},{"line_number":2060,"context_line":"    adapter_index \u003d c-\u003ec1.tuntap-\u003eadapter_index;"},{"line_number":2061,"context_line":"#endif"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"a60e11c6_446166ef","line":2058,"updated":"2024-05-18 16:08:30.000000000","message":"This is not `-Werror` clean.  GH builds complain\n\n```\ninit.c:2115:26: error: variable \u0027adapter_index\u0027 is uninitialized when used here [-Werror,-Wuninitialized]\n68\n        del_wfp_block(c, adapter_index);\n69\n                         ^~~~~~~~~~~~~\n70\ninit.c:2047:32: note: initialize the variable \u0027adapter_index\u0027 to silence this warning\n71\n    unsigned long adapter_index;\n72\n                               ^\n73\n                                \u003d 0\n74\n1 error generated.\n```\n\nThis is trivially adjusted (`\u003d0`) but according to project rules I can\u0027t do that.","commit_id":"fd33090b98525468179b1ab75dc941fa38e1d8d8"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"c2a6de6ab628818bba4ba5a844f5d20069e5be15","unresolved":false,"context_lines":[{"line_number":2055,"context_line":"    const char *tuntap_actual \u003d string_alloc(c-\u003ec1.tuntap-\u003eactual_name, \u0026gc);"},{"line_number":2056,"context_line":"    const in_addr_t local \u003d c-\u003ec1.tuntap-\u003elocal;"},{"line_number":2057,"context_line":"    const in_addr_t remote_netmask \u003d c-\u003ec1.tuntap-\u003eremote_netmask;"},{"line_number":2058,"context_line":"    unsigned long adapter_index;"},{"line_number":2059,"context_line":"#ifdef _WIN32"},{"line_number":2060,"context_line":"    adapter_index \u003d c-\u003ec1.tuntap-\u003eadapter_index;"},{"line_number":2061,"context_line":"#endif"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"ded84325_5a2a76b6","line":2058,"in_reply_to":"a60e11c6_446166ef","updated":"2024-06-03 23:57:42.000000000","message":"Done","commit_id":"fd33090b98525468179b1ab75dc941fa38e1d8d8"}],"src/openvpn/route.c":[{"author":{"_account_id":1000002,"name":"Gert Doering","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"9e3d062d3c0369a59a9cd19178c67a4753505c9d","unresolved":true,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"#endif"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"static bool add_route(struct route_ipv4 *r, const struct tuntap *tt, unsigned int flags,"},{"line_number":79,"context_line":"                      const struct route_gateway_info *rgi, const struct env_set *es,"},{"line_number":80,"context_line":"                      openvpn_net_ctx_t *ctx);"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"5b55e13a_2a09a8aa","line":78,"updated":"2024-01-09 07:03:33.000000000","message":"this breaks compilation on a zillion of platforms that want to call add_route() from tun.c - please do not mix \"cleanup of unrelated code\" and \"new features\"","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"9d5bc3f56a72e05ec857190a04354375b8700fa1","unresolved":true,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"#endif"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"static bool add_route(struct route_ipv4 *r, const struct tuntap *tt, unsigned int flags,"},{"line_number":79,"context_line":"                      const struct route_gateway_info *rgi, const struct env_set *es,"},{"line_number":80,"context_line":"                      openvpn_net_ctx_t *ctx);"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"eb7787ef_be0c1c5c","line":78,"in_reply_to":"5b55e13a_2a09a8aa","updated":"2024-01-09 13:16:20.000000000","message":"Right, failed to spot this. The build results speak for themselves. \u003d/","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"ae0f8ce5c59266399e17e84bf9f6ed078961ee88","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"#endif"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"static bool add_route(struct route_ipv4 *r, const struct tuntap *tt, unsigned int flags,"},{"line_number":79,"context_line":"                      const struct route_gateway_info *rgi, const struct env_set *es,"},{"line_number":80,"context_line":"                      openvpn_net_ctx_t *ctx);"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"2b4628b0_c3b07ee0","line":78,"in_reply_to":"eb7787ef_be0c1c5c","updated":"2024-01-09 14:53:24.000000000","message":"Done","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"e58f778f5fbbb8e6f1e295960788f2447765193a","unresolved":true,"context_lines":[{"line_number":609,"context_line":"    add_block_local_item(rl, \u0026rl-\u003ergi.gateway, rl-\u003espec.remote_endpoint);"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"    /* process additional subnets on gateway interface */"},{"line_number":612,"context_line":"    size_t i;"},{"line_number":613,"context_line":"    for (i \u003d 0; i \u003c rl-\u003ergi.n_addrs; ++i)"},{"line_number":614,"context_line":"    {"},{"line_number":615,"context_line":"        const struct route_gateway_address *gwa \u003d \u0026rl-\u003ergi.addrs[i];"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"39e95055_e284408d","line":612,"updated":"2024-01-09 09:15:29.000000000","message":"no reason to leave that on its own line","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"9d5bc3f56a72e05ec857190a04354375b8700fa1","unresolved":false,"context_lines":[{"line_number":609,"context_line":"    add_block_local_item(rl, \u0026rl-\u003ergi.gateway, rl-\u003espec.remote_endpoint);"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"    /* process additional subnets on gateway interface */"},{"line_number":612,"context_line":"    size_t i;"},{"line_number":613,"context_line":"    for (i \u003d 0; i \u003c rl-\u003ergi.n_addrs; ++i)"},{"line_number":614,"context_line":"    {"},{"line_number":615,"context_line":"        const struct route_gateway_address *gwa \u003d \u0026rl-\u003ergi.addrs[i];"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"0e347637_c3fa5a5a","line":612,"in_reply_to":"39e95055_e284408d","updated":"2024-01-09 13:16:20.000000000","message":"Done","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"f81aed46b5f903cd63126192367e665e8601c8b5","unresolved":true,"context_lines":[{"line_number":618,"context_line":"}"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"bool"},{"line_number":621,"context_line":"do_block_local(const struct route_list *rl)"},{"line_number":622,"context_line":"{"},{"line_number":623,"context_line":"    const int rgi_needed \u003d (RGI_ADDR_DEFINED|RGI_NETMASK_DEFINED);"},{"line_number":624,"context_line":"    return (rl-\u003eflags \u0026 RG_BLOCK_LOCAL)"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"e376b80f_a07c08de","line":621,"updated":"2024-01-10 10:16:58.000000000","message":"since this function doesn\u0027t really do any blocking and only check options, maybe rename to \"is_block_local_needed()\" ?","commit_id":"1ae2f25ea2c85d10993602ac2c828513e5a3f88a"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"4888ec5b746a2b580b41b3860bf2e01097f46b27","unresolved":false,"context_lines":[{"line_number":618,"context_line":"}"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"bool"},{"line_number":621,"context_line":"do_block_local(const struct route_list *rl)"},{"line_number":622,"context_line":"{"},{"line_number":623,"context_line":"    const int rgi_needed \u003d (RGI_ADDR_DEFINED|RGI_NETMASK_DEFINED);"},{"line_number":624,"context_line":"    return (rl-\u003eflags \u0026 RG_BLOCK_LOCAL)"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"25c045e0_c6d575fc","line":621,"in_reply_to":"e376b80f_a07c08de","updated":"2024-01-10 15:47:32.000000000","message":"Done","commit_id":"1ae2f25ea2c85d10993602ac2c828513e5a3f88a"}],"src/openvpn/route.h":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"e58f778f5fbbb8e6f1e295960788f2447765193a","unresolved":true,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"/**"},{"line_number":247,"context_line":" * Get the decision whether to block traffic to local networks while the VPN"},{"line_number":248,"context_line":" * is connected. This definatly returns false when not redirecting the gateway"},{"line_number":249,"context_line":" * or when the \u0027block-local\u0027 flag is not set. Also checks for other"},{"line_number":250,"context_line":" * prerequisites to redirect local networks into the tunnel."},{"line_number":251,"context_line":" *"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"703fcdb5_6ee704b9","line":248,"updated":"2024-01-09 09:15:29.000000000","message":"Typo \"definatly\"","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"9d5bc3f56a72e05ec857190a04354375b8700fa1","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"/**"},{"line_number":247,"context_line":" * Get the decision whether to block traffic to local networks while the VPN"},{"line_number":248,"context_line":" * is connected. This definatly returns false when not redirecting the gateway"},{"line_number":249,"context_line":" * or when the \u0027block-local\u0027 flag is not set. Also checks for other"},{"line_number":250,"context_line":" * prerequisites to redirect local networks into the tunnel."},{"line_number":251,"context_line":" *"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"0c835951_e7364760","line":248,"in_reply_to":"703fcdb5_6ee704b9","updated":"2024-01-09 13:16:20.000000000","message":"Done","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"}],"src/openvpn/wfp_block.c":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"e58f778f5fbbb8e6f1e295960788f2447765193a","unresolved":true,"context_lines":[{"line_number":164,"context_line":"}"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"/*"},{"line_number":167,"context_line":" * Block outgoing port 53 traffic except for"},{"line_number":168,"context_line":" * (i) adapter with the specified index"},{"line_number":169,"context_line":" * OR"},{"line_number":170,"context_line":" * (ii) processes with the specified executable path"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"d821e3e7_d0986f52","line":167,"updated":"2024-01-09 09:15:29.000000000","message":"\"port 53\" needs to be changed to reflect the new functionality","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"9d5bc3f56a72e05ec857190a04354375b8700fa1","unresolved":false,"context_lines":[{"line_number":164,"context_line":"}"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"/*"},{"line_number":167,"context_line":" * Block outgoing port 53 traffic except for"},{"line_number":168,"context_line":" * (i) adapter with the specified index"},{"line_number":169,"context_line":" * OR"},{"line_number":170,"context_line":" * (ii) processes with the specified executable path"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"97c5a316_ea67f28e","line":167,"in_reply_to":"d821e3e7_d0986f52","updated":"2024-01-09 13:16:20.000000000","message":"Done","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"e58f778f5fbbb8e6f1e295960788f2447765193a","unresolved":true,"context_lines":[{"line_number":194,"context_line":"    UINT64 filterid;"},{"line_number":195,"context_line":"    FWP_BYTE_BLOB *openvpnblob \u003d NULL;"},{"line_number":196,"context_line":"    FWPM_FILTER0 Filter \u003d {0};"},{"line_number":197,"context_line":"    FWPM_FILTER_CONDITION0 Condition[2];"},{"line_number":198,"context_line":"    FWPM_FILTER_CONDITION0 match_openvpn \u003d {0};"},{"line_number":199,"context_line":"    FWPM_FILTER_CONDITION0 match_port_53 \u003d {0};"},{"line_number":200,"context_line":"    FWPM_FILTER_CONDITION0 match_interface \u003d {0};"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"81797d0e_701d2e70","line":197,"updated":"2024-01-09 09:15:29.000000000","message":"Why remove the \"\u003d {0}\" here?","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"9d5bc3f56a72e05ec857190a04354375b8700fa1","unresolved":true,"context_lines":[{"line_number":194,"context_line":"    UINT64 filterid;"},{"line_number":195,"context_line":"    FWP_BYTE_BLOB *openvpnblob \u003d NULL;"},{"line_number":196,"context_line":"    FWPM_FILTER0 Filter \u003d {0};"},{"line_number":197,"context_line":"    FWPM_FILTER_CONDITION0 Condition[2];"},{"line_number":198,"context_line":"    FWPM_FILTER_CONDITION0 match_openvpn \u003d {0};"},{"line_number":199,"context_line":"    FWPM_FILTER_CONDITION0 match_port_53 \u003d {0};"},{"line_number":200,"context_line":"    FWPM_FILTER_CONDITION0 match_interface \u003d {0};"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"ff62cf3d_89d511ff","line":197,"in_reply_to":"81797d0e_701d2e70","updated":"2024-01-09 13:16:20.000000000","message":"because the filters are zeroed right below, and than copied into [0] and/or [1] below as needed, so there\u0027s no uninitialized memory.","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"ae0f8ce5c59266399e17e84bf9f6ed078961ee88","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    UINT64 filterid;"},{"line_number":195,"context_line":"    FWP_BYTE_BLOB *openvpnblob \u003d NULL;"},{"line_number":196,"context_line":"    FWPM_FILTER0 Filter \u003d {0};"},{"line_number":197,"context_line":"    FWPM_FILTER_CONDITION0 Condition[2];"},{"line_number":198,"context_line":"    FWPM_FILTER_CONDITION0 match_openvpn \u003d {0};"},{"line_number":199,"context_line":"    FWPM_FILTER_CONDITION0 match_port_53 \u003d {0};"},{"line_number":200,"context_line":"    FWPM_FILTER_CONDITION0 match_interface \u003d {0};"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"ed619643_4cbcafe1","line":197,"in_reply_to":"ff62cf3d_89d511ff","updated":"2024-01-09 14:53:24.000000000","message":"Done","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"e58f778f5fbbb8e6f1e295960788f2447765193a","unresolved":true,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    msg_handler(0, \"WFP Block: Added permit filters for exe_path\");"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    /* Third filter. Block IPv4 to port 53 or all besided loopback. */"},{"line_number":295,"context_line":"    Filter.layerKey \u003d FWPM_LAYER_ALE_AUTH_CONNECT_V4;"},{"line_number":296,"context_line":"    Filter.action.type \u003d FWP_ACTION_BLOCK;"},{"line_number":297,"context_line":"    Filter.weight.type \u003d FWP_EMPTY;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"d1a0883e_d9fb0c63","line":294,"updated":"2024-01-09 09:15:29.000000000","message":"\"besides\"? Or maybe \"except\"?","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"9d5bc3f56a72e05ec857190a04354375b8700fa1","unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    msg_handler(0, \"WFP Block: Added permit filters for exe_path\");"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    /* Third filter. Block IPv4 to port 53 or all besided loopback. */"},{"line_number":295,"context_line":"    Filter.layerKey \u003d FWPM_LAYER_ALE_AUTH_CONNECT_V4;"},{"line_number":296,"context_line":"    Filter.action.type \u003d FWP_ACTION_BLOCK;"},{"line_number":297,"context_line":"    Filter.weight.type \u003d FWP_EMPTY;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"662c3688_6dc87eea","line":294,"in_reply_to":"d1a0883e_d9fb0c63","updated":"2024-01-09 13:16:20.000000000","message":"Done","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"e58f778f5fbbb8e6f1e295960788f2447765193a","unresolved":true,"context_lines":[{"line_number":300,"context_line":"    err \u003d FwpmFilterAdd0(*engine_handle, \u0026Filter, NULL, \u0026filterid);"},{"line_number":301,"context_line":"    OUT_ON_ERROR(err, \"Add filter to block IPv4 traffic failed\");"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    /* Forth filter. Block IPv6 to port 53 or all besides loopback */"},{"line_number":304,"context_line":"    Filter.layerKey \u003d FWPM_LAYER_ALE_AUTH_CONNECT_V6;"},{"line_number":305,"context_line":"    err \u003d FwpmFilterAdd0(*engine_handle, \u0026Filter, NULL, \u0026filterid);"},{"line_number":306,"context_line":"    OUT_ON_ERROR(err, \"Add filter to block IPv6 traffic failed\");"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"919ec205_02180481","line":303,"updated":"2024-01-09 09:15:29.000000000","message":"\"Fourth\"","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"9d5bc3f56a72e05ec857190a04354375b8700fa1","unresolved":false,"context_lines":[{"line_number":300,"context_line":"    err \u003d FwpmFilterAdd0(*engine_handle, \u0026Filter, NULL, \u0026filterid);"},{"line_number":301,"context_line":"    OUT_ON_ERROR(err, \"Add filter to block IPv4 traffic failed\");"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    /* Forth filter. Block IPv6 to port 53 or all besides loopback */"},{"line_number":304,"context_line":"    Filter.layerKey \u003d FWPM_LAYER_ALE_AUTH_CONNECT_V6;"},{"line_number":305,"context_line":"    err \u003d FwpmFilterAdd0(*engine_handle, \u0026Filter, NULL, \u0026filterid);"},{"line_number":306,"context_line":"    OUT_ON_ERROR(err, \"Add filter to block IPv6 traffic failed\");"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"af60e388_d7cb7c20","line":303,"in_reply_to":"919ec205_02180481","updated":"2024-01-09 13:16:20.000000000","message":"Done","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"f81aed46b5f903cd63126192367e665e8601c8b5","unresolved":true,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    msg_handler(0, \"WFP Block: Added block filters for all interfaces\");"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    /* Fifth filter. Permit IPv4 for the VPN interface."},{"line_number":311,"context_line":"     * Use a non-zero weight so that the permit filters get higher priority"},{"line_number":312,"context_line":"     * over the block filter added with automatic weighting */"},{"line_number":313,"context_line":"    Filter.weight.type \u003d FWP_UINT8;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"98a45da8_a4f2c958","line":310,"updated":"2024-01-10 10:16:58.000000000","message":"Permit DNS or all IPv4 traffic for the VPN interface?","commit_id":"1ae2f25ea2c85d10993602ac2c828513e5a3f88a"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"4888ec5b746a2b580b41b3860bf2e01097f46b27","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    msg_handler(0, \"WFP Block: Added block filters for all interfaces\");"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    /* Fifth filter. Permit IPv4 for the VPN interface."},{"line_number":311,"context_line":"     * Use a non-zero weight so that the permit filters get higher priority"},{"line_number":312,"context_line":"     * over the block filter added with automatic weighting */"},{"line_number":313,"context_line":"    Filter.weight.type \u003d FWP_UINT8;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"50237516_00bec708","line":310,"in_reply_to":"98a45da8_a4f2c958","updated":"2024-01-10 15:47:32.000000000","message":"Done","commit_id":"1ae2f25ea2c85d10993602ac2c828513e5a3f88a"},{"author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"f81aed46b5f903cd63126192367e665e8601c8b5","unresolved":true,"context_lines":[{"line_number":324,"context_line":"    err \u003d FwpmFilterAdd0(*engine_handle, \u0026Filter, NULL, \u0026filterid);"},{"line_number":325,"context_line":"    OUT_ON_ERROR(err, \"Add filter to permit IPv4 traffic through VPN interface failed\");"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    /* Sixth filter. Permit IPv6 for the VPN interface."},{"line_number":328,"context_line":"     * Use same weight as IPv4 filter */"},{"line_number":329,"context_line":"    Filter.layerKey \u003d FWPM_LAYER_ALE_AUTH_CONNECT_V6;"},{"line_number":330,"context_line":"    err \u003d FwpmFilterAdd0(*engine_handle, \u0026Filter, NULL, \u0026filterid);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"d9207c40_fa180f47","line":327,"updated":"2024-01-10 10:16:58.000000000","message":"Same as above - Permit DNS or all IPv6 traffic for the VPN interface?","commit_id":"1ae2f25ea2c85d10993602ac2c828513e5a3f88a"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"4888ec5b746a2b580b41b3860bf2e01097f46b27","unresolved":false,"context_lines":[{"line_number":324,"context_line":"    err \u003d FwpmFilterAdd0(*engine_handle, \u0026Filter, NULL, \u0026filterid);"},{"line_number":325,"context_line":"    OUT_ON_ERROR(err, \"Add filter to permit IPv4 traffic through VPN interface failed\");"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    /* Sixth filter. Permit IPv6 for the VPN interface."},{"line_number":328,"context_line":"     * Use same weight as IPv4 filter */"},{"line_number":329,"context_line":"    Filter.layerKey \u003d FWPM_LAYER_ALE_AUTH_CONNECT_V6;"},{"line_number":330,"context_line":"    err \u003d FwpmFilterAdd0(*engine_handle, \u0026Filter, NULL, \u0026filterid);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"7e9bc610_f12f2c41","line":327,"in_reply_to":"d9207c40_fa180f47","updated":"2024-01-10 15:47:32.000000000","message":"Done","commit_id":"1ae2f25ea2c85d10993602ac2c828513e5a3f88a"}],"src/openvpn/win32.c":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"e58f778f5fbbb8e6f1e295960788f2447765193a","unresolved":true,"context_lines":[{"line_number":1222,"context_line":"    }"},{"line_number":1223,"context_line":""},{"line_number":1224,"context_line":"    ret \u003d win_get_exe_path(openvpnpath, _countof(openvpnpath));"},{"line_number":1225,"context_line":"    if (ret \u003d\u003d false)"},{"line_number":1226,"context_line":"    {"},{"line_number":1227,"context_line":"        goto out;"},{"line_number":1228,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"8c406c41_df81902d","line":1225,"updated":"2024-01-09 09:15:29.000000000","message":"Simplify to \"!win_get_exe_path(openvpnpath, _countof(openvpnpath))\"","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"ae0f8ce5c59266399e17e84bf9f6ed078961ee88","unresolved":true,"context_lines":[{"line_number":1222,"context_line":"    }"},{"line_number":1223,"context_line":""},{"line_number":1224,"context_line":"    ret \u003d win_get_exe_path(openvpnpath, _countof(openvpnpath));"},{"line_number":1225,"context_line":"    if (ret \u003d\u003d false)"},{"line_number":1226,"context_line":"    {"},{"line_number":1227,"context_line":"        goto out;"},{"line_number":1228,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"a0fa7528_684d91ad","line":1225,"in_reply_to":"70f36809_aae74546","updated":"2024-01-09 14:53:24.000000000","message":"Yes, but no. The function has a single point of return, let\u0027s keep it that way. There\u0027s not enough to gain by changing this.","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"9d5bc3f56a72e05ec857190a04354375b8700fa1","unresolved":true,"context_lines":[{"line_number":1222,"context_line":"    }"},{"line_number":1223,"context_line":""},{"line_number":1224,"context_line":"    ret \u003d win_get_exe_path(openvpnpath, _countof(openvpnpath));"},{"line_number":1225,"context_line":"    if (ret \u003d\u003d false)"},{"line_number":1226,"context_line":"    {"},{"line_number":1227,"context_line":"        goto out;"},{"line_number":1228,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"bdfe473f_2369c40d","line":1225,"in_reply_to":"8c406c41_df81902d","updated":"2024-01-09 13:16:20.000000000","message":"We need to set ret as return value anyway, so doing it before the if is more readable IMHO compared to cramming the function call between the parentheses.","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"488f9fd008f8e8eb960628fb7308c6ed976889a3","unresolved":false,"context_lines":[{"line_number":1222,"context_line":"    }"},{"line_number":1223,"context_line":""},{"line_number":1224,"context_line":"    ret \u003d win_get_exe_path(openvpnpath, _countof(openvpnpath));"},{"line_number":1225,"context_line":"    if (ret \u003d\u003d false)"},{"line_number":1226,"context_line":"    {"},{"line_number":1227,"context_line":"        goto out;"},{"line_number":1228,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"4f22baef_1cbaf8d1","line":1225,"in_reply_to":"a0fa7528_684d91ad","updated":"2024-01-12 16:25:11.000000000","message":"Acknowledged","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"31a7e3d1d3b5651bc34a7f6c57bcec0f772e37ff","unresolved":true,"context_lines":[{"line_number":1222,"context_line":"    }"},{"line_number":1223,"context_line":""},{"line_number":1224,"context_line":"    ret \u003d win_get_exe_path(openvpnpath, _countof(openvpnpath));"},{"line_number":1225,"context_line":"    if (ret \u003d\u003d false)"},{"line_number":1226,"context_line":"    {"},{"line_number":1227,"context_line":"        goto out;"},{"line_number":1228,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"70f36809_aae74546","line":1225,"in_reply_to":"bdfe473f_2369c40d","updated":"2024-01-09 13:42:47.000000000","message":"Right, but you could just replace the \"got out\" with \"return false\" anyway.","commit_id":"539ee8bccd943d7da756cfc4e499378b686b5407"}],"src/openvpn/win32.h":[{"author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"f81aed46b5f903cd63126192367e665e8601c8b5","unresolved":true,"context_lines":[{"line_number":25,"context_line":"#ifndef OPENVPN_WIN32_H"},{"line_number":26,"context_line":"#define OPENVPN_WIN32_H"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"#include \u003ciphlpapi.h\u003e"},{"line_number":29,"context_line":"#include \u003cws2tcpip.h\u003e"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"#include \"syshead.h\""}],"source_content_type":"text/x-csrc","patch_set":4,"id":"55c79df7_1e0f8209","line":28,"updated":"2024-01-10 10:16:58.000000000","message":"why those changes?","commit_id":"1ae2f25ea2c85d10993602ac2c828513e5a3f88a"},{"author":{"_account_id":1000006,"name":"Heiko Hund","display_name":"Heiko Hund","email":"heiko@openvpn.net","username":"d12fk"},"change_message_id":"4888ec5b746a2b580b41b3860bf2e01097f46b27","unresolved":true,"context_lines":[{"line_number":25,"context_line":"#ifndef OPENVPN_WIN32_H"},{"line_number":26,"context_line":"#define OPENVPN_WIN32_H"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"#include \u003ciphlpapi.h\u003e"},{"line_number":29,"context_line":"#include \u003cws2tcpip.h\u003e"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"#include \"syshead.h\""}],"source_content_type":"text/x-csrc","patch_set":4,"id":"fff56b45_305383c8","line":28,"in_reply_to":"55c79df7_1e0f8209","updated":"2024-01-10 15:47:32.000000000","message":"They define some types used in the header. Not that all wouldn\u0027t compile without them, but when looking at the single file (like clangd does) these undefinedness.","commit_id":"1ae2f25ea2c85d10993602ac2c828513e5a3f88a"},{"author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"3ca22bbd0ddcc7ce19937b3775d0223f4efd363d","unresolved":false,"context_lines":[{"line_number":25,"context_line":"#ifndef OPENVPN_WIN32_H"},{"line_number":26,"context_line":"#define OPENVPN_WIN32_H"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"#include \u003ciphlpapi.h\u003e"},{"line_number":29,"context_line":"#include \u003cws2tcpip.h\u003e"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"#include \"syshead.h\""}],"source_content_type":"text/x-csrc","patch_set":4,"id":"e3203291_cfd5bef9","line":28,"in_reply_to":"fff56b45_305383c8","updated":"2024-01-17 08:56:03.000000000","message":"Acknowledged","commit_id":"1ae2f25ea2c85d10993602ac2c828513e5a3f88a"}]}
