)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"4896cbf66af606a2cc323d19879a6864ced837d5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d0225809_fb83a912","updated":"2026-04-14 11:08:52.000000000","message":"Please also update the usage section in options.c","commit_id":"d8da02985d6a7e66a1dd78f0cc219f5424cadfaa"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e9271f000c4d54dda1a9d17391d23b18f1ce459d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b5f52753_3ba15bbd","in_reply_to":"d0225809_fb83a912","updated":"2026-04-15 15:33:01.000000000","message":"Done","commit_id":"d8da02985d6a7e66a1dd78f0cc219f5424cadfaa"}],"doc/man-sections/link-options.rst":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"24b6c4f5c5226594d12690f68431dbef3860ea4b","unresolved":true,"context_lines":[{"line_number":111,"context_line":"  Valid syntax:"},{"line_number":112,"context_line":"  ::"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"     local host|* [port] [protocol] [bind device]"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"  Local host name or IP address and port for bind. If specified, OpenVPN will bind"},{"line_number":117,"context_line":"  to this address. If unspecified, OpenVPN will bind to all interfaces."}],"source_content_type":"text/x-rst","patch_set":1,"id":"15733805_d4bc2521","line":114,"updated":"2026-04-13 11:20:44.000000000","message":"Should also add a reference to `--bind-dev` somewhere in the documentation below. I realize we do not have corresponding references for `port` and `protocol` either, but maybe we can also fix that?","commit_id":"260343d4560461eb3abb850b94610e4bfe33a721"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"ea6c3dfbb384d0f30274a74564625d67e9a30bfd","unresolved":true,"context_lines":[{"line_number":111,"context_line":"  Valid syntax:"},{"line_number":112,"context_line":"  ::"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"     local host|* [port] [protocol] [bind device]"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"  Local host name or IP address and port for bind. If specified, OpenVPN will bind"},{"line_number":117,"context_line":"  to this address. If unspecified, OpenVPN will bind to all interfaces."}],"source_content_type":"text/x-rst","patch_set":1,"id":"deef9428_ebae9b5d","line":114,"in_reply_to":"15733805_d4bc2521","updated":"2026-04-13 15:20:05.000000000","message":"I did it only for --bind-dev at the moment, if you\u0027re fine with that will do the same way for --port and --proto in a different patch.","commit_id":"260343d4560461eb3abb850b94610e4bfe33a721"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"4896cbf66af606a2cc323d19879a6864ced837d5","unresolved":true,"context_lines":[{"line_number":111,"context_line":"  Valid syntax:"},{"line_number":112,"context_line":"  ::"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"     local host|* [port] [protocol] [bind device]"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"  Local host name or IP address and port for bind. If specified, OpenVPN will bind"},{"line_number":117,"context_line":"  to this address. If unspecified, OpenVPN will bind to all interfaces."}],"source_content_type":"text/x-rst","patch_set":1,"id":"e7ea6dc8_91ee5751","line":114,"in_reply_to":"deef9428_ebae9b5d","updated":"2026-04-14 11:08:52.000000000","message":"That mention under `--bind-dev` is okay, but I actually meant to add a pointer to `--bind-dev` here at `--local` 😊","commit_id":"260343d4560461eb3abb850b94610e4bfe33a721"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e9271f000c4d54dda1a9d17391d23b18f1ce459d","unresolved":false,"context_lines":[{"line_number":111,"context_line":"  Valid syntax:"},{"line_number":112,"context_line":"  ::"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"     local host|* [port] [protocol] [bind device]"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"  Local host name or IP address and port for bind. If specified, OpenVPN will bind"},{"line_number":117,"context_line":"  to this address. If unspecified, OpenVPN will bind to all interfaces."}],"source_content_type":"text/x-rst","patch_set":1,"id":"f9bbece1_e8584586","line":114,"in_reply_to":"e7ea6dc8_91ee5751","updated":"2026-04-15 15:33:01.000000000","message":"Done","commit_id":"260343d4560461eb3abb850b94610e4bfe33a721"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"8653032900102522943fde2795546c285bd8b462","unresolved":true,"context_lines":[{"line_number":118,"context_line":"  \u0027*\u0027 can be used as hostname and means \u0027any host\u0027 (OpenVPN will listen on what"},{"line_number":119,"context_line":"  is returned by the OS)."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"  The optional arguments correspond to existing options: ``port`` to"},{"line_number":122,"context_line":"  ``--lport``, ``protocol`` to ``--proto``, and ``bind device`` to"},{"line_number":123,"context_line":"  ``--bind-dev``."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ae0af796_9da7928a","line":121,"updated":"2026-04-15 15:41:47.000000000","message":"Maybe better:\n\nThe optional arguments override defaults set by the following options:\n* ``port`` overrides ``--lport``\n* ``protocol`` overrides ``--proto``\n* ``bind device`` overrides ``--bind-dev``\n\n(To explicitly say that these options set defaults which we can then override)","commit_id":"825b0f5ef46cc1613e1fc28703a812643e25b829"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"0bbc0c235ea03c180c892240fbeb593112a6e36b","unresolved":false,"context_lines":[{"line_number":118,"context_line":"  \u0027*\u0027 can be used as hostname and means \u0027any host\u0027 (OpenVPN will listen on what"},{"line_number":119,"context_line":"  is returned by the OS)."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"  The optional arguments correspond to existing options: ``port`` to"},{"line_number":122,"context_line":"  ``--lport``, ``protocol`` to ``--proto``, and ``bind device`` to"},{"line_number":123,"context_line":"  ``--bind-dev``."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"782b9dcc_8604ebab","line":121,"in_reply_to":"ae0af796_9da7928a","updated":"2026-04-15 16:14:51.000000000","message":"Done","commit_id":"825b0f5ef46cc1613e1fc28703a812643e25b829"}],"doc/man-sections/vpn-network-options.rst":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"8653032900102522943fde2795546c285bd8b462","unresolved":true,"context_lines":[{"line_number":8,"context_line":"--bind-dev device"},{"line_number":9,"context_line":"  (Linux only) Set ``device`` to bind all the server sockets to a"},{"line_number":10,"context_line":"  `Virtual Routing and Forwarding`_ device"},{"line_number":11,"context_line":"  This option can also be used inside a ``--local`` statement"},{"line_number":12,"context_line":"  allowing to bind a single socket to specific device."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"--block-ipv6"}],"source_content_type":"text/x-rst","patch_set":3,"id":"182e6971_7f4b5f87","line":11,"updated":"2026-04-15 15:41:47.000000000","message":"Maybe better:\n\nThe default defined by this option can be overridden on a per-socket basis by specifying a ``bind device`` argument to ``--local``.\n\nThe current text sounds like you can use ``--bind-dev`` in a different context which is not correct.","commit_id":"825b0f5ef46cc1613e1fc28703a812643e25b829"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"0bbc0c235ea03c180c892240fbeb593112a6e36b","unresolved":false,"context_lines":[{"line_number":8,"context_line":"--bind-dev device"},{"line_number":9,"context_line":"  (Linux only) Set ``device`` to bind all the server sockets to a"},{"line_number":10,"context_line":"  `Virtual Routing and Forwarding`_ device"},{"line_number":11,"context_line":"  This option can also be used inside a ``--local`` statement"},{"line_number":12,"context_line":"  allowing to bind a single socket to specific device."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"--block-ipv6"}],"source_content_type":"text/x-rst","patch_set":3,"id":"80bef053_6637ac96","line":11,"in_reply_to":"182e6971_7f4b5f87","updated":"2026-04-15 16:14:51.000000000","message":"Well, what I meant was: \"If you use this option, then all sockets will be bound to this specific device.\". But I see your point.","commit_id":"825b0f5ef46cc1613e1fc28703a812643e25b829"}],"src/openvpn/options.c":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"24b6c4f5c5226594d12690f68431dbef3860ea4b","unresolved":true,"context_lines":[{"line_number":6007,"context_line":"#else"},{"line_number":6008,"context_line":"        if (p[4])"},{"line_number":6009,"context_line":"        {"},{"line_number":6010,"context_line":"            msg(M_WARN | M_ERRNO, \"Note: bind_dev is ignored on non-Linux systems\");"},{"line_number":6011,"context_line":"        }"},{"line_number":6012,"context_line":"#endif"},{"line_number":6013,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"d6b4199e_963ab8ae","line":6010,"updated":"2026-04-13 11:20:44.000000000","message":"No syscalls involved here, so M_ERRNO makes no sense","commit_id":"260343d4560461eb3abb850b94610e4bfe33a721"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"ea6c3dfbb384d0f30274a74564625d67e9a30bfd","unresolved":false,"context_lines":[{"line_number":6007,"context_line":"#else"},{"line_number":6008,"context_line":"        if (p[4])"},{"line_number":6009,"context_line":"        {"},{"line_number":6010,"context_line":"            msg(M_WARN | M_ERRNO, \"Note: bind_dev is ignored on non-Linux systems\");"},{"line_number":6011,"context_line":"        }"},{"line_number":6012,"context_line":"#endif"},{"line_number":6013,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"63bf8009_24bcad5f","line":6010,"in_reply_to":"d6b4199e_963ab8ae","updated":"2026-04-13 15:20:05.000000000","message":"Done","commit_id":"260343d4560461eb3abb850b94610e4bfe33a721"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"24b6c4f5c5226594d12690f68431dbef3860ea4b","unresolved":true,"context_lines":[{"line_number":6538,"context_line":"            }"},{"line_number":6539,"context_line":"        }"},{"line_number":6540,"context_line":"    }"},{"line_number":6541,"context_line":"#if defined(TARGET_LINUX)"},{"line_number":6542,"context_line":"    else if (streq(p[0], \"bind-dev\") \u0026\u0026 p[1])"},{"line_number":6543,"context_line":"    {"},{"line_number":6544,"context_line":"        VERIFY_PERMISSION(OPT_P_SOCKFLAGS);"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"b13fa4de_a8359f50","line":6541,"updated":"2026-04-13 11:20:44.000000000","message":"Why this random change?","commit_id":"260343d4560461eb3abb850b94610e4bfe33a721"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"ea6c3dfbb384d0f30274a74564625d67e9a30bfd","unresolved":false,"context_lines":[{"line_number":6538,"context_line":"            }"},{"line_number":6539,"context_line":"        }"},{"line_number":6540,"context_line":"    }"},{"line_number":6541,"context_line":"#if defined(TARGET_LINUX)"},{"line_number":6542,"context_line":"    else if (streq(p[0], \"bind-dev\") \u0026\u0026 p[1])"},{"line_number":6543,"context_line":"    {"},{"line_number":6544,"context_line":"        VERIFY_PERMISSION(OPT_P_SOCKFLAGS);"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"d7b038f0_ac763769","line":6541,"in_reply_to":"b13fa4de_a8359f50","updated":"2026-04-13 15:20:05.000000000","message":"Just a leftover, initially this patch also aimed to enable bind-dev for freebsd, then I decided to do that in a different patch.","commit_id":"260343d4560461eb3abb850b94610e4bfe33a721"}],"src/openvpn/socket.c":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"24b6c4f5c5226594d12690f68431dbef3860ea4b","unresolved":true,"context_lines":[{"line_number":1410,"context_line":"#endif"},{"line_number":1411,"context_line":""},{"line_number":1412,"context_line":"    sock-\u003emark \u003d o-\u003emark;"},{"line_number":1413,"context_line":"    /* bind_dev from local_list will trump on the global option. */"},{"line_number":1414,"context_line":"    sock-\u003ebind_dev \u003d bind_dev ? bind_dev : o-\u003ebind_dev;"},{"line_number":1415,"context_line":"    sock-\u003einfo.proto \u003d proto;"},{"line_number":1416,"context_line":"    sock-\u003einfo.af \u003d o-\u003ece.af;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"90dda228_fbf9b24f","line":1413,"updated":"2026-04-13 11:20:44.000000000","message":"Remove \"on\", remove the trailing full stop","commit_id":"260343d4560461eb3abb850b94610e4bfe33a721"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"ea6c3dfbb384d0f30274a74564625d67e9a30bfd","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"#endif"},{"line_number":1411,"context_line":""},{"line_number":1412,"context_line":"    sock-\u003emark \u003d o-\u003emark;"},{"line_number":1413,"context_line":"    /* bind_dev from local_list will trump on the global option. */"},{"line_number":1414,"context_line":"    sock-\u003ebind_dev \u003d bind_dev ? bind_dev : o-\u003ebind_dev;"},{"line_number":1415,"context_line":"    sock-\u003einfo.proto \u003d proto;"},{"line_number":1416,"context_line":"    sock-\u003einfo.af \u003d o-\u003ece.af;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"cf628b0d_3b3678c2","line":1413,"in_reply_to":"90dda228_fbf9b24f","updated":"2026-04-13 15:20:05.000000000","message":"Done","commit_id":"260343d4560461eb3abb850b94610e4bfe33a721"}]}
