)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Gianmarco De Gregori \u003cgianmarco@mandelbit.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-10-11 15:28:58 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"allow tcp/udp server to listen on multiple ports at the same time"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ia0a889e800f0b36aed770ee36e31afeec5df6084"},{"line_number":10,"context_line":"Signed-off-by: Antonio Quartulli \u003ca@unstable.cc\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"d86891df_56a16db7","line":7,"updated":"2024-10-11 16:45:43.000000000","message":"For a change this fundamental this commit message is not enough.\nAt least it should answer whether this actually changes any default behavior? Is there a way to use this functionality with only this patch?","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gianmarco De Gregori \u003cgianmarco@mandelbit.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-10-11 15:28:58 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"allow tcp/udp server to listen on multiple ports at the same time"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ia0a889e800f0b36aed770ee36e31afeec5df6084"},{"line_number":10,"context_line":"Signed-off-by: Antonio Quartulli \u003ca@unstable.cc\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1d41d2b6_a8f7ac05","line":7,"in_reply_to":"d86891df_56a16db7","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"56c4c02dd1409388c7cfecc05af0a35f4bd06b09","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c47fb349_c61eaffa","updated":"2024-10-09 10:21:03.000000000","message":"build broken","commit_id":"e48fcf18c03852ee0bf096213484af39a92bdde8"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3898b82c_0d029043","updated":"2024-10-11 16:45:43.000000000","message":"Could definitely use\n- a cleanup of old code styles\n- some more commit message\n- some more doxygen documentation\n- a discussion about alternatives to 25 parameters to a function","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"00f89d3a_2b6a47d4","updated":"2024-11-27 15:54:14.000000000","message":"Okay, this is a big one.\n\nThere is minor things - whitespace changes that should not be done, or wrapping changes that are not called for.  There are some parts that I just do not understand which would benefit from comments in the code *or* comments here in gerrit (\"will be resolved by the next patch in the series\").\n\nThere\u0027s ugliness (link_socket_init_phase1(), the patch looks excessive for what it intends to do).\n\nThere are at least 3 places that look like rebase accidents, and need to be very carefully checked for \"is this change intentional\".","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"4ad60095_38cc2fa7","updated":"2024-12-29 22:40:09.000000000","message":"Getting there, and except for the `bind_dev` these are minor nitpicks in the source (but worth fixing if we do another round anyway).\n\nIn the review, I seem to have overlooked something, though - applying this on top of current master breaks `--fragment` servers - on the first connecting client, *boom*\n\n```\n2024-12-29 23:34:56 us\u003d142019 Initialization Sequence Completed\n2024-12-29 23:35:05 us\u003d857683 Connection Attempt MULTI: multi_create_instance called\n2024-12-29 23:35:05 us\u003d857852 2001:608:0:814::f000:21 Re-using SSL/TLS context\n2024-12-29 23:35:05 us\u003d857903 2001:608:0:814::f000:21 WARNING: if you use --mssfix and --fragment, you should use the \"mtu\" flag for both or none of of them.\n2024-12-29 23:35:05 us\u003d858101 2001:608:0:814::f000:21 Control Channel MTU parms [ mss_fix:0 max_frag:0 tun_mtu:1250 tun_max_mtu:0 headroom:126 payload:1600 tailroom:126 ET:0 ]\n\nProgram received signal SIGSEGV, Segmentation fault.\n0x000055555558121e in get_link_socket_info (c\u003d0x5555556c6450)\n    at /home/gert/t_server.git/src/openvpn/forward.h:324\n324             return \u0026c-\u003ec2.link_sockets[0]-\u003einfo;\n(gdb) where\n#0  0x000055555558121e in get_link_socket_info (c\u003d0x5555556c6450)\n    at /home/gert/t_server.git/src/openvpn/forward.h:324\n#1  do_init_fragment (c\u003d0x5555556c6450) at init.c:3801\n#2  init_instance (c\u003dc@entry\u003d0x5555556c6450, env\u003d\u003coptimized out\u003e, \n    flags\u003dflags@entry\u003d10) at init.c:4736\n#3  0x0000555555581e91 in inherit_context_child (\n    dest\u003ddest@entry\u003d0x5555556c6450, src\u003dsrc@entry\u003d0x7fffffffc848, \n    ls\u003dls@entry\u003d0x55555569fb00) at init.c:4977\n#4  0x00005555555999e0 in multi_create_instance (m\u003dm@entry\u003d0x7fffffffc780, \n    real\u003dreal@entry\u003d0x7fffffffc3c0, ls\u003dls@entry\u003d0x55555569fb00) at multi.c:777\n#5  0x00005555555928b2 in multi_get_create_instance_udp (m\u003d0x7fffffffc780, \n    floated\u003dfloated@entry\u003d0x7fffffffc6cf, ls\u003dls@entry\u003d0x55555569fb00)\n    at mudp.c:260\n#6  0x000055555559a4dd in multi_process_incoming_link (\n    m\u003dm@entry\u003d0x7fffffffc780, instance\u003dinstance@entry\u003d0x0, \n    mpp_flags\u003dmpp_flags@entry\u003d5, ls\u003dls@entry\u003d0x55555569fb00) at multi.c:3356\n#7  0x00005555555935f2 in multi_process_io_udp (m\u003d0x7fffffffc780, \n    sock\u003d0x55555569fb00) at mudp.c:387\n#8  tunnel_server_udp (top\u003dtop@entry\u003d0x7fffffffda10) at mudp.c:523\n#9  0x000055555559b2c4 in tunnel_server (top\u003dtop@entry\u003d0x7fffffffda10)\n    at multi.c:4168\n(gdb) print \u0026c-\u003ec2.link_sockets[0]-\u003einfo\nCannot access memory at address 0x0\n(gdb) print \u0026c-\u003ec2.link_sockets[0]\n$1 \u003d (struct link_socket **) 0x0\n```\n\nso it definitely looks like \"socket not initialized\", though I have no idea why.","commit_id":"d79612b9365cf6bdeeb10b374d8cf5808348f4ce"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"15f92b7851aa777878cb815d847c1b0011c6a842","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"61eec570_da965bb7","updated":"2024-12-30 16:23:17.000000000","message":"Seems we\u0027re getting there - with the changed ordering of blocks in init.c, everything seems well-initialized now, and it passes all the server side tests...\n\n```\nmaster...\nTest sets succeeded: 1 1a 1b 1c 1d 1e 1x 2 2a 2b 2c 2g 2h 2d 2e 2f 2w 2x 2y 2z1 2z2 3 3m 4 4a 4b 5 5a 5b 5c 5d 5e 5m 5n 5u1 5u2 5v1 5v2 5v3 5w1 5w2 5w3 5w4 5x1 5x2 5x3 5x4 6 7 7b 7l 7x 7x2 7y 8 8a 9 9a 10 10a 10b 10u 10v 10w 10x 10z 11 11a 11z 11 11a.\nTest sets failed: none.\n```\n\nthis is a good achievement.  We need more testing when the rest of the series is in, but at this point, I think all that can be done with this patch on its own is done.","commit_id":"bf35c0d4c60f0ef124fdafabd1e0d590ec878610"}],"src/openvpn/forward.c":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":64,"context_line":"               tun_stat(c-\u003ec1.tuntap, EVENT_READ, gc),"},{"line_number":65,"context_line":"               tun_stat(c-\u003ec1.tuntap, EVENT_WRITE, gc),"},{"line_number":66,"context_line":"               tv_string(\u0026c-\u003ec2.timeval, gc));"},{"line_number":67,"context_line":"    for (i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":68,"context_line":"    {"},{"line_number":69,"context_line":"        buf_printf(\u0026out, \"\\n %s|%s\","},{"line_number":70,"context_line":"                   socket_stat(c-\u003ec2.link_sockets[i], EVENT_READ, gc),"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"3c2f7cf8_7db546e8","line":67,"updated":"2024-10-11 16:45:43.000000000","message":"move declaration here.","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":64,"context_line":"               tun_stat(c-\u003ec1.tuntap, EVENT_READ, gc),"},{"line_number":65,"context_line":"               tun_stat(c-\u003ec1.tuntap, EVENT_WRITE, gc),"},{"line_number":66,"context_line":"               tv_string(\u0026c-\u003ec2.timeval, gc));"},{"line_number":67,"context_line":"    for (i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":68,"context_line":"    {"},{"line_number":69,"context_line":"        buf_printf(\u0026out, \"\\n %s|%s\","},{"line_number":70,"context_line":"                   socket_stat(c-\u003ec2.link_sockets[i], EVENT_READ, gc),"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"25eddf8f_88da1d83","line":67,"in_reply_to":"3c2f7cf8_7db546e8","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":1497,"context_line":"        unsigned int flags \u003d PIPV4_PASSTOS | PIP_MSSFIX | PIPV4_CLIENT_NAT"},{"line_number":1498,"context_line":"                             | PIPV6_ICMP_NOHOST_CLIENT;"},{"line_number":1499,"context_line":"        process_ip_header(c, flags, \u0026c-\u003ec2.buf,"},{"line_number":1500,"context_line":"                          out_ls);"},{"line_number":1501,"context_line":""},{"line_number":1502,"context_line":"#ifdef PACKET_TRUNCATION_CHECK"},{"line_number":1503,"context_line":"        /* if (c-\u003ec2.buf.len \u003e 1) --c-\u003ec2.buf.len; */"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"83bc5910_ce7ee80d","line":1500,"updated":"2024-10-11 16:45:43.000000000","message":"this looks weird, why the additional line break?","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":1497,"context_line":"        unsigned int flags \u003d PIPV4_PASSTOS | PIP_MSSFIX | PIPV4_CLIENT_NAT"},{"line_number":1498,"context_line":"                             | PIPV6_ICMP_NOHOST_CLIENT;"},{"line_number":1499,"context_line":"        process_ip_header(c, flags, \u0026c-\u003ec2.buf,"},{"line_number":1500,"context_line":"                          out_ls);"},{"line_number":1501,"context_line":""},{"line_number":1502,"context_line":"#ifdef PACKET_TRUNCATION_CHECK"},{"line_number":1503,"context_line":"        /* if (c-\u003ec2.buf.len \u003e 1) --c-\u003ec2.buf.len; */"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"52741d0c_ed1cfbf5","line":1500,"in_reply_to":"83bc5910_ce7ee80d","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":2088,"context_line":"#if defined(TARGET_LINUX) || defined(TARGET_FREEBSD)"},{"line_number":2089,"context_line":"    static uintptr_t dco_shift \u003d DCO_SHIFT;    /* Event from DCO linux kernel module */"},{"line_number":2090,"context_line":"#endif"},{"line_number":2091,"context_line":"    int i;"},{"line_number":2092,"context_line":""},{"line_number":2093,"context_line":"    /*"},{"line_number":2094,"context_line":"     * Decide what kind of events we want to wait for."}],"source_content_type":"text/x-csrc","patch_set":5,"id":"d8921253_6d30716c","line":2091,"updated":"2024-10-11 16:45:43.000000000","message":"no","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":2088,"context_line":"#if defined(TARGET_LINUX) || defined(TARGET_FREEBSD)"},{"line_number":2089,"context_line":"    static uintptr_t dco_shift \u003d DCO_SHIFT;    /* Event from DCO linux kernel module */"},{"line_number":2090,"context_line":"#endif"},{"line_number":2091,"context_line":"    int i;"},{"line_number":2092,"context_line":""},{"line_number":2093,"context_line":"    /*"},{"line_number":2094,"context_line":"     * Decide what kind of events we want to wait for."}],"source_content_type":"text/x-csrc","patch_set":5,"id":"c9729dd8_c23a63b3","line":2091,"in_reply_to":"d8921253_6d30716c","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":1130,"context_line":"                                         co, \u0026c-\u003ec2.frame, ad_start);"},{"line_number":1131,"context_line":""},{"line_number":1132,"context_line":"        if (!decrypt_status"},{"line_number":1133,"context_line":"            /* all sockets are of the same type, so just check the first one */"},{"line_number":1134,"context_line":"            \u0026\u0026 link_socket_connection_oriented(c-\u003ec2.link_sockets[0]))"},{"line_number":1135,"context_line":"        {"},{"line_number":1136,"context_line":"            /* decryption errors are fatal in TCP mode */"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"af521d3c_72b59ce8","line":1133,"updated":"2024-11-27 15:54:14.000000000","message":"this confuses me.  We will have UDP and TCP sockets later on, so they are not expected to be \"all of the same type\".  Will this be addressed later in the patch series?","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":1130,"context_line":"                                         co, \u0026c-\u003ec2.frame, ad_start);"},{"line_number":1131,"context_line":""},{"line_number":1132,"context_line":"        if (!decrypt_status"},{"line_number":1133,"context_line":"            /* all sockets are of the same type, so just check the first one */"},{"line_number":1134,"context_line":"            \u0026\u0026 link_socket_connection_oriented(c-\u003ec2.link_sockets[0]))"},{"line_number":1135,"context_line":"        {"},{"line_number":1136,"context_line":"            /* decryption errors are fatal in TCP mode */"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"5c3d2260_ff08a995","line":1133,"in_reply_to":"af521d3c_72b59ce8","updated":"2024-12-10 13:10:35.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"}],"src/openvpn/forward.h":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":236,"context_line":" * @param out_ls  Socket that will be used to send out the packet."},{"line_number":237,"context_line":" *"},{"line_number":238,"context_line":" */"},{"line_number":239,"context_line":"void process_incoming_tun(struct context *c, struct link_socket *out_ls);"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"/**"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"43fc1b4c_0009fdae","line":239,"updated":"2024-10-11 16:45:43.000000000","message":"I think we have implicitly agreed to call those out_sock?","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":236,"context_line":" * @param out_ls  Socket that will be used to send out the packet."},{"line_number":237,"context_line":" *"},{"line_number":238,"context_line":" */"},{"line_number":239,"context_line":"void process_incoming_tun(struct context *c, struct link_socket *out_ls);"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"/**"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"777e4574_22f8383d","line":239,"in_reply_to":"43fc1b4c_0009fdae","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"void process_ip_header(struct context *c, unsigned int flags, struct buffer *buf,"},{"line_number":311,"context_line":"                       struct link_socket *ls);"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"bool schedule_exit(struct context *c);"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":5,"id":"e3e073d2_b0854f7c","line":311,"updated":"2024-10-11 16:45:43.000000000","message":"let\u0027s stick with sock to be consistent?","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"void process_ip_header(struct context *c, unsigned int flags, struct buffer *buf,"},{"line_number":311,"context_line":"                       struct link_socket *ls);"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"bool schedule_exit(struct context *c);"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":5,"id":"45aee7e6_1b3916da","line":311,"in_reply_to":"e3e073d2_b0854f7c","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"}],"src/openvpn/init.c":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":2709,"context_line":""},{"line_number":2710,"context_line":"    if (found \u0026 OPT_P_SOCKBUF)"},{"line_number":2711,"context_line":"    {"},{"line_number":2712,"context_line":"        int i;"},{"line_number":2713,"context_line":""},{"line_number":2714,"context_line":"        msg(D_PUSH, \"OPTIONS IMPORT: --sndbuf/--rcvbuf options modified\");"},{"line_number":2715,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":5,"id":"8bed9745_e6009f9c","line":2712,"updated":"2024-10-11 16:45:43.000000000","message":"no","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":2709,"context_line":""},{"line_number":2710,"context_line":"    if (found \u0026 OPT_P_SOCKBUF)"},{"line_number":2711,"context_line":"    {"},{"line_number":2712,"context_line":"        int i;"},{"line_number":2713,"context_line":""},{"line_number":2714,"context_line":"        msg(D_PUSH, \"OPTIONS IMPORT: --sndbuf/--rcvbuf options modified\");"},{"line_number":2715,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":5,"id":"5db88ca1_62001647","line":2712,"in_reply_to":"8bed9745_e6009f9c","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":2723,"context_line":""},{"line_number":2724,"context_line":"    if (found \u0026 OPT_P_SOCKFLAGS)"},{"line_number":2725,"context_line":"    {"},{"line_number":2726,"context_line":"        int i;"},{"line_number":2727,"context_line":""},{"line_number":2728,"context_line":"        msg(D_PUSH, \"OPTIONS IMPORT: --socket-flags option modified\");"},{"line_number":2729,"context_line":"        for (i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"1745f5ec_89e42cd1","line":2726,"updated":"2024-10-11 16:45:43.000000000","message":"no","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":2723,"context_line":""},{"line_number":2724,"context_line":"    if (found \u0026 OPT_P_SOCKFLAGS)"},{"line_number":2725,"context_line":"    {"},{"line_number":2726,"context_line":"        int i;"},{"line_number":2727,"context_line":""},{"line_number":2728,"context_line":"        msg(D_PUSH, \"OPTIONS IMPORT: --socket-flags option modified\");"},{"line_number":2729,"context_line":"        for (i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"c4b1d0a7_caefad40","line":2726,"in_reply_to":"1745f5ec_89e42cd1","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":3806,"context_line":"static void"},{"line_number":3807,"context_line":"do_link_socket_new(struct context *c)"},{"line_number":3808,"context_line":"{"},{"line_number":3809,"context_line":"    int i;"},{"line_number":3810,"context_line":""},{"line_number":3811,"context_line":"    ASSERT(!c-\u003ec2.link_sockets);"},{"line_number":3812,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":5,"id":"8933303c_7cb6783c","line":3809,"updated":"2024-10-11 16:45:43.000000000","message":"no","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":3806,"context_line":"static void"},{"line_number":3807,"context_line":"do_link_socket_new(struct context *c)"},{"line_number":3808,"context_line":"{"},{"line_number":3809,"context_line":"    int i;"},{"line_number":3810,"context_line":""},{"line_number":3811,"context_line":"    ASSERT(!c-\u003ec2.link_sockets);"},{"line_number":3812,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":5,"id":"d8bf560b_269e4c53","line":3809,"in_reply_to":"8933303c_7cb6783c","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":3827,"context_line":"do_init_socket_1(struct context *c)"},{"line_number":3828,"context_line":"{"},{"line_number":3829,"context_line":"    unsigned int sockflags \u003d c-\u003eoptions.sockflags;"},{"line_number":3830,"context_line":"    int i;"},{"line_number":3831,"context_line":""},{"line_number":3832,"context_line":"#if PORT_SHARE"},{"line_number":3833,"context_line":"    if (c-\u003eoptions.port_share_host \u0026\u0026 c-\u003eoptions.port_share_port)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"6a0a8d89_cbd88193","line":3830,"updated":"2024-10-11 16:45:43.000000000","message":"no","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":3827,"context_line":"do_init_socket_1(struct context *c)"},{"line_number":3828,"context_line":"{"},{"line_number":3829,"context_line":"    unsigned int sockflags \u003d c-\u003eoptions.sockflags;"},{"line_number":3830,"context_line":"    int i;"},{"line_number":3831,"context_line":""},{"line_number":3832,"context_line":"#if PORT_SHARE"},{"line_number":3833,"context_line":"    if (c-\u003eoptions.port_share_host \u0026\u0026 c-\u003eoptions.port_share_port)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"3fbce72a_bc8f27b6","line":3830,"in_reply_to":"6a0a8d89_cbd88193","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":3895,"context_line":"static void"},{"line_number":3896,"context_line":"do_init_socket_2(struct context *c)"},{"line_number":3897,"context_line":"{"},{"line_number":3898,"context_line":"    int i;"},{"line_number":3899,"context_line":"    for (i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":3900,"context_line":"    {"},{"line_number":3901,"context_line":"        link_socket_init_phase2(c, c-\u003ec2.link_sockets[i], \u0026c-\u003ec2.frame, c-\u003esig);"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"18ba15df_e611be9f","line":3898,"updated":"2024-10-11 16:45:43.000000000","message":"no","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":3895,"context_line":"static void"},{"line_number":3896,"context_line":"do_init_socket_2(struct context *c)"},{"line_number":3897,"context_line":"{"},{"line_number":3898,"context_line":"    int i;"},{"line_number":3899,"context_line":"    for (i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":3900,"context_line":"    {"},{"line_number":3901,"context_line":"        link_socket_init_phase2(c, c-\u003ec2.link_sockets[i], \u0026c-\u003ec2.frame, c-\u003esig);"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"96692862_fb70f0c5","line":3898,"in_reply_to":"18ba15df_e611be9f","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":4056,"context_line":"{"},{"line_number":4057,"context_line":"    if (c-\u003ec2.link_sockets \u0026\u0026 c-\u003ec2.link_socket_owned)"},{"line_number":4058,"context_line":"    {"},{"line_number":4059,"context_line":"        int i;"},{"line_number":4060,"context_line":""},{"line_number":4061,"context_line":"        for (i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":4062,"context_line":"        {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"586e53d7_2687f6bd","line":4059,"updated":"2024-10-11 16:45:43.000000000","message":"no","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":4056,"context_line":"{"},{"line_number":4057,"context_line":"    if (c-\u003ec2.link_sockets \u0026\u0026 c-\u003ec2.link_socket_owned)"},{"line_number":4058,"context_line":"    {"},{"line_number":4059,"context_line":"        int i;"},{"line_number":4060,"context_line":""},{"line_number":4061,"context_line":"        for (i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":4062,"context_line":"        {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"b06654d3_bd9889ea","line":4059,"in_reply_to":"586e53d7_2687f6bd","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":530,"context_line":"             * the current connection */"},{"line_number":531,"context_line":"            if (c-\u003ec1.link_socket_addrs[0].current_remote"},{"line_number":532,"context_line":"                \u0026\u0026 c-\u003ec1.link_socket_addrs[0].current_remote-\u003eai_next)"},{"line_number":533,"context_line":"            {"},{"line_number":534,"context_line":"                c-\u003ec1.link_socket_addrs[0].current_remote \u003d"},{"line_number":535,"context_line":"                    c-\u003ec1.link_socket_addrs[0].current_remote-\u003eai_next;"},{"line_number":536,"context_line":"            }"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"e3b56022_c021a1c0","line":533,"updated":"2024-11-27 15:54:14.000000000","message":"this is a behavioural change, not checking `advance_next_remote` anymore.  Is this intentional or a rebase artefact?","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":530,"context_line":"             * the current connection */"},{"line_number":531,"context_line":"            if (c-\u003ec1.link_socket_addrs[0].current_remote"},{"line_number":532,"context_line":"                \u0026\u0026 c-\u003ec1.link_socket_addrs[0].current_remote-\u003eai_next)"},{"line_number":533,"context_line":"            {"},{"line_number":534,"context_line":"                c-\u003ec1.link_socket_addrs[0].current_remote \u003d"},{"line_number":535,"context_line":"                    c-\u003ec1.link_socket_addrs[0].current_remote-\u003eai_next;"},{"line_number":536,"context_line":"            }"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"c8bba806_c5354795","line":533,"in_reply_to":"e3b56022_c021a1c0","updated":"2024-12-10 13:10:35.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":1956,"context_line":"        do_alloc_route_list(c);"},{"line_number":1957,"context_line":""},{"line_number":1958,"context_line":"        /* parse and resolve the route option list */"},{"line_number":1959,"context_line":"        ASSERT(c-\u003ec2.link_sockets);"},{"line_number":1960,"context_line":"        if (c-\u003eoptions.routes \u0026\u0026 c-\u003ec1.route_list)"},{"line_number":1961,"context_line":"        {"},{"line_number":1962,"context_line":"            do_init_route_list(\u0026c-\u003eoptions, c-\u003ec1.route_list,"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"d9600958_55933535","line":1959,"updated":"2024-11-27 15:54:14.000000000","message":"this is not doing the same thing as before... so we do not know if `link_sockets[0]` is actually well defined here.  No?","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":1956,"context_line":"        do_alloc_route_list(c);"},{"line_number":1957,"context_line":""},{"line_number":1958,"context_line":"        /* parse and resolve the route option list */"},{"line_number":1959,"context_line":"        ASSERT(c-\u003ec2.link_sockets);"},{"line_number":1960,"context_line":"        if (c-\u003eoptions.routes \u0026\u0026 c-\u003ec1.route_list)"},{"line_number":1961,"context_line":"        {"},{"line_number":1962,"context_line":"            do_init_route_list(\u0026c-\u003eoptions, c-\u003ec1.route_list,"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"0274c355_3b2e8c19","line":1959,"in_reply_to":"d9600958_55933535","updated":"2024-12-10 13:10:35.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":2012,"context_line":"        if (!ifconfig_noexec_enabled(c)"},{"line_number":2013,"context_line":"            \u0026\u0026 ifconfig_order(c-\u003ec1.tuntap) \u003d\u003d IFCONFIG_AFTER_TUN_OPEN)"},{"line_number":2014,"context_line":"        {"},{"line_number":2015,"context_line":"            do_ifconfig(c-\u003ec1.tuntap, c-\u003ec1.tuntap-\u003eactual_name, c-\u003ec2.frame.tun_mtu, c-\u003ec2.es, \u0026c-\u003enet_ctx);"},{"line_number":2016,"context_line":"        }"},{"line_number":2017,"context_line":""},{"line_number":2018,"context_line":"        /* run the up script */"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"f4f59153_2fd3ff1d","line":2015,"updated":"2024-11-27 15:54:14.000000000","message":"line length exceeded, and the old version wasn\u0027t that bad (the unwrapping above was reasonable, with just a few characters hanging in the next line, but this one should stay as it is).\n\nAlso, quite unrelated to the patch itself... just sayin.","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":2012,"context_line":"        if (!ifconfig_noexec_enabled(c)"},{"line_number":2013,"context_line":"            \u0026\u0026 ifconfig_order(c-\u003ec1.tuntap) \u003d\u003d IFCONFIG_AFTER_TUN_OPEN)"},{"line_number":2014,"context_line":"        {"},{"line_number":2015,"context_line":"            do_ifconfig(c-\u003ec1.tuntap, c-\u003ec1.tuntap-\u003eactual_name, c-\u003ec2.frame.tun_mtu, c-\u003ec2.es, \u0026c-\u003enet_ctx);"},{"line_number":2016,"context_line":"        }"},{"line_number":2017,"context_line":""},{"line_number":2018,"context_line":"        /* run the up script */"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"9e623ad9_318662fe","line":2015,"in_reply_to":"f4f59153_2fd3ff1d","updated":"2024-12-10 13:10:35.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":3816,"context_line":" * bind TCP/UDP sockets"},{"line_number":3817,"context_line":" */"},{"line_number":3818,"context_line":"static void"},{"line_number":3819,"context_line":"do_init_socket_1(struct context *c)"},{"line_number":3820,"context_line":"{"},{"line_number":3821,"context_line":"    for (int i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":3822,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"2d3860a3_9d493c40","line":3819,"updated":"2024-11-27 15:54:14.000000000","message":"I think we should stick to `phase1` as function name, otherwise it reads as if this is \"init socket 1\", and \"init socket 2\" for \"socket #1 and #2\".  No?","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":3816,"context_line":" * bind TCP/UDP sockets"},{"line_number":3817,"context_line":" */"},{"line_number":3818,"context_line":"static void"},{"line_number":3819,"context_line":"do_init_socket_1(struct context *c)"},{"line_number":3820,"context_line":"{"},{"line_number":3821,"context_line":"    for (int i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":3822,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"83e1f2b3_82aeffb6","line":3819,"in_reply_to":"2d3860a3_9d493c40","updated":"2024-12-10 13:10:35.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":4008,"context_line":"static void"},{"line_number":4009,"context_line":"do_close_link_socket(struct context *c)"},{"line_number":4010,"context_line":"{"},{"line_number":4011,"context_line":"    if (c-\u003ec2.link_sockets \u0026\u0026 c-\u003ec2.link_socket_owned)"},{"line_number":4012,"context_line":"    {"},{"line_number":4013,"context_line":"        for (int i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":4014,"context_line":"        {"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"f10b10f2_22a5be55","line":4011,"updated":"2024-11-27 15:54:14.000000000","message":"what happened to the `is_dco_win()` part here?  This looks like a rebase accident","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":4008,"context_line":"static void"},{"line_number":4009,"context_line":"do_close_link_socket(struct context *c)"},{"line_number":4010,"context_line":"{"},{"line_number":4011,"context_line":"    if (c-\u003ec2.link_sockets \u0026\u0026 c-\u003ec2.link_socket_owned)"},{"line_number":4012,"context_line":"    {"},{"line_number":4013,"context_line":"        for (int i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":4014,"context_line":"        {"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"983be341_eb72cb9c","line":4011,"in_reply_to":"f10b10f2_22a5be55","updated":"2024-12-10 13:10:35.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":4037,"context_line":"    /* Clear the remote actual address when persist_remote_ip is not in use */"},{"line_number":4038,"context_line":"    if (!(c-\u003esig-\u003esignal_received \u003d\u003d SIGUSR1 \u0026\u0026 c-\u003eoptions.persist_remote_ip))"},{"line_number":4039,"context_line":"    {"},{"line_number":4040,"context_line":"        CLEAR(c-\u003ec1.link_socket_addrs[0].actual);"},{"line_number":4041,"context_line":"    }"},{"line_number":4042,"context_line":""},{"line_number":4043,"context_line":"    for (int i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"72fd22c0_b99b4657","line":4040,"updated":"2024-11-27 15:54:14.000000000","message":"this looks inconsistent - freeaddrinfo() is called in the loop, while the CLEAR() is only called for [0].  Intentional?  If yes, a comment should say so.\n\n(I could see this as being intentional \"because this is client side only, and client only has 1 socket, ever\", but it looks weird)","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":4037,"context_line":"    /* Clear the remote actual address when persist_remote_ip is not in use */"},{"line_number":4038,"context_line":"    if (!(c-\u003esig-\u003esignal_received \u003d\u003d SIGUSR1 \u0026\u0026 c-\u003eoptions.persist_remote_ip))"},{"line_number":4039,"context_line":"    {"},{"line_number":4040,"context_line":"        CLEAR(c-\u003ec1.link_socket_addrs[0].actual);"},{"line_number":4041,"context_line":"    }"},{"line_number":4042,"context_line":""},{"line_number":4043,"context_line":"    for (int i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"0dd0c10f_cbddc037","line":4040,"in_reply_to":"72fd22c0_b99b4657","updated":"2024-12-10 13:10:35.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":4716,"context_line":"    /* bind the TCP/UDP socket */"},{"line_number":4717,"context_line":"    if (c-\u003emode \u003d\u003d CM_P2P || c-\u003emode \u003d\u003d CM_TOP || c-\u003emode \u003d\u003d CM_CHILD_TCP)"},{"line_number":4718,"context_line":"    {"},{"line_number":4719,"context_line":"        do_init_socket_1(c);"},{"line_number":4720,"context_line":"    }"},{"line_number":4721,"context_line":""},{"line_number":4722,"context_line":"    /* initialize tun/tap device object,"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"b96d510f_3ce9a525","line":4719,"updated":"2024-11-27 15:54:14.000000000","message":"mmmh, see comment above, maybe name this `do_init_link_sockets_phase1()`?\n\n`do_init_socket_1()` could be anything...","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":4716,"context_line":"    /* bind the TCP/UDP socket */"},{"line_number":4717,"context_line":"    if (c-\u003emode \u003d\u003d CM_P2P || c-\u003emode \u003d\u003d CM_TOP || c-\u003emode \u003d\u003d CM_CHILD_TCP)"},{"line_number":4718,"context_line":"    {"},{"line_number":4719,"context_line":"        do_init_socket_1(c);"},{"line_number":4720,"context_line":"    }"},{"line_number":4721,"context_line":""},{"line_number":4722,"context_line":"    /* initialize tun/tap device object,"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"8c4402d6_a5c9227d","line":4719,"in_reply_to":"b96d510f_3ce9a525","updated":"2024-12-10 13:10:35.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":4759,"context_line":"    /* finalize the TCP/UDP socket */"},{"line_number":4760,"context_line":"    if (c-\u003emode \u003d\u003d CM_P2P || c-\u003emode \u003d\u003d CM_TOP || c-\u003emode \u003d\u003d CM_CHILD_TCP)"},{"line_number":4761,"context_line":"    {"},{"line_number":4762,"context_line":"        do_init_socket_2(c);"},{"line_number":4763,"context_line":""},{"line_number":4764,"context_line":""},{"line_number":4765,"context_line":"        /* Update dynamic frame calculation as exact transport socket information"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"e0ffc177_bec7efd2","line":4762,"updated":"2024-11-27 15:54:14.000000000","message":"`_phase2()`","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":4759,"context_line":"    /* finalize the TCP/UDP socket */"},{"line_number":4760,"context_line":"    if (c-\u003emode \u003d\u003d CM_P2P || c-\u003emode \u003d\u003d CM_TOP || c-\u003emode \u003d\u003d CM_CHILD_TCP)"},{"line_number":4761,"context_line":"    {"},{"line_number":4762,"context_line":"        do_init_socket_2(c);"},{"line_number":4763,"context_line":""},{"line_number":4764,"context_line":""},{"line_number":4765,"context_line":"        /* Update dynamic frame calculation as exact transport socket information"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"90c989e7_e8b47bfa","line":4762,"in_reply_to":"e0ffc177_bec7efd2","updated":"2024-12-10 13:10:35.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":4965,"context_line":"        dest-\u003ec2.buffers \u003d src-\u003ec2.buffers;"},{"line_number":4966,"context_line":""},{"line_number":4967,"context_line":"        ALLOC_ARRAY_GC(dest-\u003ec2.link_sockets, struct link_socket *, 1,"},{"line_number":4968,"context_line":"                       \u0026dest-\u003egc);"},{"line_number":4969,"context_line":""},{"line_number":4970,"context_line":"        /* inherit parent link_socket and tuntap */"},{"line_number":4971,"context_line":"        dest-\u003ec2.link_sockets[0] \u003d ls;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"1785554f_4c253f1b","line":4968,"updated":"2024-11-27 15:54:14.000000000","message":"is this wrapping necessary?  Comparing to the lines below it does not seem like it","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":4965,"context_line":"        dest-\u003ec2.buffers \u003d src-\u003ec2.buffers;"},{"line_number":4966,"context_line":""},{"line_number":4967,"context_line":"        ALLOC_ARRAY_GC(dest-\u003ec2.link_sockets, struct link_socket *, 1,"},{"line_number":4968,"context_line":"                       \u0026dest-\u003egc);"},{"line_number":4969,"context_line":""},{"line_number":4970,"context_line":"        /* inherit parent link_socket and tuntap */"},{"line_number":4971,"context_line":"        dest-\u003ec2.link_sockets[0] \u003d ls;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"da819cb1_03b64f6a","line":4968,"in_reply_to":"1785554f_4c253f1b","updated":"2024-12-10 13:10:35.000000000","message":"Acknowledged","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":4051,"context_line":"    for (int i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":4052,"context_line":"    {"},{"line_number":4053,"context_line":"        if (!(c-\u003esig-\u003esignal_received \u003d\u003d SIGUSR1 \u0026\u0026 c-\u003eoptions.persist_remote_ip))"},{"line_number":4054,"context_line":"        {"},{"line_number":4055,"context_line":"            CLEAR(c-\u003ec1.link_socket_addrs[i].actual);"},{"line_number":4056,"context_line":"        }"},{"line_number":4057,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"721e4eca_fe894283","line":4054,"updated":"2024-12-29 22:40:09.000000000","message":"The `if()` should be outside and the `for()` inside - the condition does not depend on `i`.","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":4051,"context_line":"    for (int i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":4052,"context_line":"    {"},{"line_number":4053,"context_line":"        if (!(c-\u003esig-\u003esignal_received \u003d\u003d SIGUSR1 \u0026\u0026 c-\u003eoptions.persist_remote_ip))"},{"line_number":4054,"context_line":"        {"},{"line_number":4055,"context_line":"            CLEAR(c-\u003ec1.link_socket_addrs[i].actual);"},{"line_number":4056,"context_line":"        }"},{"line_number":4057,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"69eb0e47_7a2fefdf","line":4054,"in_reply_to":"721e4eca_fe894283","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":4059,"context_line":"    for (int i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":4060,"context_line":"    {"},{"line_number":4061,"context_line":"        if (!(c-\u003esig-\u003esignal_received \u003d\u003d SIGUSR1 \u0026\u0026 c-\u003eoptions.persist_local_ip))"},{"line_number":4062,"context_line":"        {"},{"line_number":4063,"context_line":"            if (c-\u003ec1.link_socket_addrs[i].bind_local"},{"line_number":4064,"context_line":"                \u0026\u0026 !c-\u003eoptions.resolve_in_advance)"},{"line_number":4065,"context_line":"            {"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"1a384971_29102103","line":4062,"updated":"2024-12-29 22:40:09.000000000","message":"same thing.","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":4059,"context_line":"    for (int i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":4060,"context_line":"    {"},{"line_number":4061,"context_line":"        if (!(c-\u003esig-\u003esignal_received \u003d\u003d SIGUSR1 \u0026\u0026 c-\u003eoptions.persist_local_ip))"},{"line_number":4062,"context_line":"        {"},{"line_number":4063,"context_line":"            if (c-\u003ec1.link_socket_addrs[i].bind_local"},{"line_number":4064,"context_line":"                \u0026\u0026 !c-\u003eoptions.resolve_in_advance)"},{"line_number":4065,"context_line":"            {"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"dff8a59a_21679821","line":4062,"in_reply_to":"1a384971_29102103","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":4783,"context_line":"         * This is only needed for --static or no crypto, NCP will recalculate this"},{"line_number":4784,"context_line":"         * in tls_session_update_crypto_params (P2MP) */"},{"line_number":4785,"context_line":"        frame_calculate_dynamic(\u0026c-\u003ec2.frame, \u0026c-\u003ec1.ks.key_type, \u0026c-\u003eoptions,"},{"line_number":4786,"context_line":"                                get_link_socket_info(c));"},{"line_number":4787,"context_line":"    }"},{"line_number":4788,"context_line":""},{"line_number":4789,"context_line":"    /*"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"89309b77_8f3abbb8","line":4786,"updated":"2024-12-29 22:40:09.000000000","message":"Should this be a per-socket thing?  IPv4 vs. IPv6 will change overhead so the `frame` calculation will be wrong for all sockets !\u003d 0.\n\nMaybe a comment to that extent (\"for multiple listening sockets, this will not be correct for these cases, but everything but TLS should no longer be used anyway\")?","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":true,"context_lines":[{"line_number":4783,"context_line":"         * This is only needed for --static or no crypto, NCP will recalculate this"},{"line_number":4784,"context_line":"         * in tls_session_update_crypto_params (P2MP) */"},{"line_number":4785,"context_line":"        frame_calculate_dynamic(\u0026c-\u003ec2.frame, \u0026c-\u003ec1.ks.key_type, \u0026c-\u003eoptions,"},{"line_number":4786,"context_line":"                                get_link_socket_info(c));"},{"line_number":4787,"context_line":"    }"},{"line_number":4788,"context_line":""},{"line_number":4789,"context_line":"    /*"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"c947a2ab_76ea9aa3","line":4786,"in_reply_to":"89309b77_8f3abbb8","updated":"2024-12-30 13:37:47.000000000","message":"Made this a per-socket thing.","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"15f92b7851aa777878cb815d847c1b0011c6a842","unresolved":false,"context_lines":[{"line_number":4783,"context_line":"         * This is only needed for --static or no crypto, NCP will recalculate this"},{"line_number":4784,"context_line":"         * in tls_session_update_crypto_params (P2MP) */"},{"line_number":4785,"context_line":"        frame_calculate_dynamic(\u0026c-\u003ec2.frame, \u0026c-\u003ec1.ks.key_type, \u0026c-\u003eoptions,"},{"line_number":4786,"context_line":"                                get_link_socket_info(c));"},{"line_number":4787,"context_line":"    }"},{"line_number":4788,"context_line":""},{"line_number":4789,"context_line":"    /*"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"7fc63e02_8cf6443f","line":4786,"in_reply_to":"c947a2ab_76ea9aa3","updated":"2024-12-30 16:23:17.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":4988,"context_line":"        ALLOC_ARRAY_GC(dest-\u003ec2.link_socket_infos, struct link_socket_info *, 1,"},{"line_number":4989,"context_line":"                       \u0026dest-\u003egc);"},{"line_number":4990,"context_line":"        ALLOC_OBJ_GC(dest-\u003ec2.link_socket_infos[0], struct link_socket_info,"},{"line_number":4991,"context_line":"                     \u0026dest-\u003egc);"},{"line_number":4992,"context_line":"        *dest-\u003ec2.link_socket_infos[0] \u003d ls-\u003einfo;"},{"line_number":4993,"context_line":""},{"line_number":4994,"context_line":"        /* locally override some link_socket_info fields */"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"a405a93a_e360204a","line":4991,"updated":"2024-12-29 22:40:09.000000000","message":"if line length permits, can this be unwrapped?","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":4988,"context_line":"        ALLOC_ARRAY_GC(dest-\u003ec2.link_socket_infos, struct link_socket_info *, 1,"},{"line_number":4989,"context_line":"                       \u0026dest-\u003egc);"},{"line_number":4990,"context_line":"        ALLOC_OBJ_GC(dest-\u003ec2.link_socket_infos[0], struct link_socket_info,"},{"line_number":4991,"context_line":"                     \u0026dest-\u003egc);"},{"line_number":4992,"context_line":"        *dest-\u003ec2.link_socket_infos[0] \u003d ls-\u003einfo;"},{"line_number":4993,"context_line":""},{"line_number":4994,"context_line":"        /* locally override some link_socket_info fields */"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"b147968f_4b23f49c","line":4991,"in_reply_to":"a405a93a_e360204a","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"}],"src/openvpn/mtcp.c":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":262,"context_line":"multi_tcp_wait(const struct context *c,"},{"line_number":263,"context_line":"               struct multi_tcp *mtcp)"},{"line_number":264,"context_line":"{"},{"line_number":265,"context_line":"    int status, i;"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    for (i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":268,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"03032190_4dfe1132","line":265,"updated":"2024-10-11 16:45:43.000000000","message":"no","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":262,"context_line":"multi_tcp_wait(const struct context *c,"},{"line_number":263,"context_line":"               struct multi_tcp *mtcp)"},{"line_number":264,"context_line":"{"},{"line_number":265,"context_line":"    int status, i;"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    for (i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":268,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"324654a5_bfaf62d1","line":265,"in_reply_to":"03032190_4dfe1132","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":268,"context_line":"    for (int i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":269,"context_line":"    {"},{"line_number":270,"context_line":"        socket_set_listen_persistent(c-\u003ec2.link_sockets[i], mtcp-\u003ees,"},{"line_number":271,"context_line":"                                     \u0026c-\u003ec2.link_sockets[i]-\u003eev_arg);"},{"line_number":272,"context_line":"    }"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"#ifdef _WIN32"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"040f4e94_88362f91","line":271,"updated":"2024-12-29 22:40:09.000000000","message":"the diff looks as if there are tabs at the beginning of this line?","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":268,"context_line":"    for (int i \u003d 0; i \u003c c-\u003ec1.link_sockets_num; i++)"},{"line_number":269,"context_line":"    {"},{"line_number":270,"context_line":"        socket_set_listen_persistent(c-\u003ec2.link_sockets[i], mtcp-\u003ees,"},{"line_number":271,"context_line":"                                     \u0026c-\u003ec2.link_sockets[i]-\u003eev_arg);"},{"line_number":272,"context_line":"    }"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"#ifdef _WIN32"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"45b85b7d_90856afd","line":271,"in_reply_to":"040f4e94_88362f91","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"}],"src/openvpn/mudp.c":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":381,"context_line":"    /* Incoming data on UDP port */"},{"line_number":382,"context_line":"    else if (status \u0026 SOCKET_READ)"},{"line_number":383,"context_line":"    {"},{"line_number":384,"context_line":"        int i;"},{"line_number":385,"context_line":"        for (i \u003d 0; i \u003c m-\u003etop.c1.link_sockets_num; i++)"},{"line_number":386,"context_line":"        {"},{"line_number":387,"context_line":"            if (!m-\u003etop.c2.link_sockets[i]-\u003eev_arg.pending)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"420473bb_c732efd1","line":384,"updated":"2024-10-11 16:45:43.000000000","message":"no","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":381,"context_line":"    /* Incoming data on UDP port */"},{"line_number":382,"context_line":"    else if (status \u0026 SOCKET_READ)"},{"line_number":383,"context_line":"    {"},{"line_number":384,"context_line":"        int i;"},{"line_number":385,"context_line":"        for (i \u003d 0; i \u003c m-\u003etop.c1.link_sockets_num; i++)"},{"line_number":386,"context_line":"        {"},{"line_number":387,"context_line":"            if (!m-\u003etop.c2.link_sockets[i]-\u003eev_arg.pending)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"9eba0158_a12ada55","line":384,"in_reply_to":"420473bb_c732efd1","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":381,"context_line":"    /* Incoming data on UDP port */"},{"line_number":382,"context_line":"    else if (status \u0026 SOCKET_READ)"},{"line_number":383,"context_line":"    {"},{"line_number":384,"context_line":"        for (int i \u003d 0; i \u003c m-\u003etop.c1.link_sockets_num; i++)"},{"line_number":385,"context_line":"        {"},{"line_number":386,"context_line":"            if (!m-\u003etop.c2.link_sockets[i]-\u003eev_arg.pending)"},{"line_number":387,"context_line":"            {"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"ed1d30f4_2e4e41d3","line":384,"updated":"2024-11-27 15:54:14.000000000","message":"this, again, is confusing me.  So is this a client instance (\"1 socket exists\") or the server instance (\"all sockets exists, but sockets can be UDP and TCP\")?  Having the `_udp()` handler walk through the list of sockets which could be \"more than 1, and such, UDP or TCP\" does not look right, at least not without some explanation (\"this will all move to a common `multi_process_io_anything()` in the next patch\") ;-)","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":true,"context_lines":[{"line_number":381,"context_line":"    /* Incoming data on UDP port */"},{"line_number":382,"context_line":"    else if (status \u0026 SOCKET_READ)"},{"line_number":383,"context_line":"    {"},{"line_number":384,"context_line":"        for (int i \u003d 0; i \u003c m-\u003etop.c1.link_sockets_num; i++)"},{"line_number":385,"context_line":"        {"},{"line_number":386,"context_line":"            if (!m-\u003etop.c2.link_sockets[i]-\u003eev_arg.pending)"},{"line_number":387,"context_line":"            {"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"d1d68fc6_23406680","line":384,"in_reply_to":"4ecc2f55_682f2236","updated":"2024-12-10 13:10:35.000000000","message":"In the next patches we will have a common server loop for both TCP and UDP however the I/O processing will remain separate, for this specific case we decided to pass directly the link_socket to avoid to walk through all of them, in the final patch we will handle directly the link_socket returned by the event_set.","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"13314dd0d7e4e297b2ba2837c5c2c2ebc1987561","unresolved":false,"context_lines":[{"line_number":381,"context_line":"    /* Incoming data on UDP port */"},{"line_number":382,"context_line":"    else if (status \u0026 SOCKET_READ)"},{"line_number":383,"context_line":"    {"},{"line_number":384,"context_line":"        for (int i \u003d 0; i \u003c m-\u003etop.c1.link_sockets_num; i++)"},{"line_number":385,"context_line":"        {"},{"line_number":386,"context_line":"            if (!m-\u003etop.c2.link_sockets[i]-\u003eev_arg.pending)"},{"line_number":387,"context_line":"            {"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"1ad9edae_4e128239","line":384,"in_reply_to":"d1d68fc6_23406680","updated":"2024-12-30 16:24:16.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"32c954fe5ea869046c321bbbd2d41743b9a9d2cd","unresolved":true,"context_lines":[{"line_number":381,"context_line":"    /* Incoming data on UDP port */"},{"line_number":382,"context_line":"    else if (status \u0026 SOCKET_READ)"},{"line_number":383,"context_line":"    {"},{"line_number":384,"context_line":"        for (int i \u003d 0; i \u003c m-\u003etop.c1.link_sockets_num; i++)"},{"line_number":385,"context_line":"        {"},{"line_number":386,"context_line":"            if (!m-\u003etop.c2.link_sockets[i]-\u003eev_arg.pending)"},{"line_number":387,"context_line":"            {"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"4ecc2f55_682f2236","line":384,"in_reply_to":"ed1d30f4_2e4e41d3","updated":"2024-12-06 14:56:40.000000000","message":"this comment opened a little pandora\u0027s box...which indeed made us question a little more the context where multi_process_io_udp() get invoked.\nThis indeed may use a little cleanup.","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":385,"context_line":"        if (!IS_SIG(\u0026m-\u003etop))"},{"line_number":386,"context_line":"        {"},{"line_number":387,"context_line":"            multi_process_incoming_link(m, NULL, mpp_flags,"},{"line_number":388,"context_line":"                                        sock);"},{"line_number":389,"context_line":"        }"},{"line_number":390,"context_line":"    }"},{"line_number":391,"context_line":"    /* Incoming data on TUN device */"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"0490e7ea_822b07fb","line":388,"updated":"2024-12-29 22:40:09.000000000","message":"please unwrap","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        if (!IS_SIG(\u0026m-\u003etop))"},{"line_number":386,"context_line":"        {"},{"line_number":387,"context_line":"            multi_process_incoming_link(m, NULL, mpp_flags,"},{"line_number":388,"context_line":"                                        sock);"},{"line_number":389,"context_line":"        }"},{"line_number":390,"context_line":"    }"},{"line_number":391,"context_line":"    /* Incoming data on TUN device */"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"e1854ff0_37af4d92","line":388,"in_reply_to":"0490e7ea_822b07fb","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"}],"src/openvpn/multi.c":[{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":3333,"context_line":"bool"},{"line_number":3334,"context_line":"multi_process_incoming_link(struct multi_context *m, struct multi_instance *instance, const unsigned int mpp_flags,"},{"line_number":3335,"context_line":"                            struct link_socket *ls)"},{"line_number":3336,"context_line":"{"},{"line_number":3337,"context_line":"    struct gc_arena gc \u003d gc_new();"},{"line_number":3338,"context_line":""},{"line_number":3339,"context_line":"    struct context *c;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"7963d5d0_1f026e7c","line":3336,"updated":"2024-12-29 22:40:09.000000000","message":"I think this could be wrapped before `const unsigned int mpp_flags`","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":3333,"context_line":"bool"},{"line_number":3334,"context_line":"multi_process_incoming_link(struct multi_context *m, struct multi_instance *instance, const unsigned int mpp_flags,"},{"line_number":3335,"context_line":"                            struct link_socket *ls)"},{"line_number":3336,"context_line":"{"},{"line_number":3337,"context_line":"    struct gc_arena gc \u003d gc_new();"},{"line_number":3338,"context_line":""},{"line_number":3339,"context_line":"    struct context *c;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"a8787998_d8ad16d6","line":3336,"in_reply_to":"7963d5d0_1f026e7c","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"}],"src/openvpn/multi.h":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":130,"context_line":"    in_addr_t reporting_addr;     /* IP address shown in status listing */"},{"line_number":131,"context_line":"    struct in6_addr reporting_addr_ipv6; /* IPv6 address in status listing */"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    bool did_open_context;"},{"line_number":134,"context_line":"    bool did_real_hash;"},{"line_number":135,"context_line":"    bool did_iter;"},{"line_number":136,"context_line":"#ifdef ENABLE_MANAGEMENT"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"d01c4e19_c10b5176","line":133,"updated":"2024-10-11 16:45:43.000000000","message":"doxygen for new members please","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    in_addr_t reporting_addr;     /* IP address shown in status listing */"},{"line_number":131,"context_line":"    struct in6_addr reporting_addr_ipv6; /* IPv6 address in status listing */"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    bool did_open_context;"},{"line_number":134,"context_line":"    bool did_real_hash;"},{"line_number":135,"context_line":"    bool did_iter;"},{"line_number":136,"context_line":"#ifdef ENABLE_MANAGEMENT"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"b0f20aa4_59ddfbd1","line":133,"in_reply_to":"24d0850c_98d08be3","updated":"2024-10-17 14:49:41.000000000","message":"It was a rebase mistake indeed, so I removed this.","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"b97a002916e273729c7ff79da5acea148656dd27","unresolved":true,"context_lines":[{"line_number":130,"context_line":"    in_addr_t reporting_addr;     /* IP address shown in status listing */"},{"line_number":131,"context_line":"    struct in6_addr reporting_addr_ipv6; /* IPv6 address in status listing */"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    bool did_open_context;"},{"line_number":134,"context_line":"    bool did_real_hash;"},{"line_number":135,"context_line":"    bool did_iter;"},{"line_number":136,"context_line":"#ifdef ENABLE_MANAGEMENT"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"24d0850c_98d08be3","line":133,"in_reply_to":"d01c4e19_c10b5176","updated":"2024-10-16 12:51:10.000000000","message":"This must have been a rebase mistake, because:\n\ncommit c252dcc073155567c1982611ec6f065342909287\nAuthor: Arne Schwabe \u003carne@rfc2549.org\u003e\nDate:   Fri Jul 3 11:55:06 2020 +0200\nRemove did_open_context, defined and connection_established_flag\n\nGianmarco will make sure this goes away accordingly.","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"}],"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":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":2236,"context_line":"    /* If a valid remote has been found, create the socket with its addrinfo */"},{"line_number":2237,"context_line":"    if (sock-\u003einfo.lsa-\u003ecurrent_remote)"},{"line_number":2238,"context_line":"    {"},{"line_number":2239,"context_line":"    #if defined (_WIN32)"},{"line_number":2240,"context_line":"        if (dco_enabled(\u0026c-\u003eoptions))"},{"line_number":2241,"context_line":"        {"},{"line_number":2242,"context_line":"            create_socket_dco_win(c, sock, sig_info);"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"a2a2981b_f791c838","line":2239,"updated":"2024-10-11 16:45:43.000000000","message":"??","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":2236,"context_line":"    /* If a valid remote has been found, create the socket with its addrinfo */"},{"line_number":2237,"context_line":"    if (sock-\u003einfo.lsa-\u003ecurrent_remote)"},{"line_number":2238,"context_line":"    {"},{"line_number":2239,"context_line":"    #if defined (_WIN32)"},{"line_number":2240,"context_line":"        if (dco_enabled(\u0026c-\u003eoptions))"},{"line_number":2241,"context_line":"        {"},{"line_number":2242,"context_line":"            create_socket_dco_win(c, sock, sig_info);"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"b48f0b7e_bcabdfe7","line":2239,"in_reply_to":"a2a2981b_f791c838","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":1855,"context_line":"{"},{"line_number":1856,"context_line":"    ASSERT(c-\u003ec2.link_sockets[sock_index]);"},{"line_number":1857,"context_line":""},{"line_number":1858,"context_line":"    c-\u003ec2.link_sockets[sock_index]-\u003elocal_host \u003d c-\u003eoptions.ce.local;"},{"line_number":1859,"context_line":"    c-\u003ec2.link_sockets[sock_index]-\u003elocal_port \u003d c-\u003eoptions.ce.local_port;"},{"line_number":1860,"context_line":"    c-\u003ec2.link_sockets[sock_index]-\u003eremote_host \u003d c-\u003eoptions.ce.remote;"},{"line_number":1861,"context_line":"    c-\u003ec2.link_sockets[sock_index]-\u003eremote_port \u003d c-\u003eoptions.ce.remote_port;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"efd059f1_5a25f7ad","line":1858,"updated":"2024-11-27 15:54:14.000000000","message":"Can this be changed to `*sock \u003d \u0026c-\u003ec2.link_sockets[sock_index]` and then the rest of the function can be left unchanged?  this is how all the other parts of the patch do it...  (not `[0]` in this case, of course).","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":1855,"context_line":"{"},{"line_number":1856,"context_line":"    ASSERT(c-\u003ec2.link_sockets[sock_index]);"},{"line_number":1857,"context_line":""},{"line_number":1858,"context_line":"    c-\u003ec2.link_sockets[sock_index]-\u003elocal_host \u003d c-\u003eoptions.ce.local;"},{"line_number":1859,"context_line":"    c-\u003ec2.link_sockets[sock_index]-\u003elocal_port \u003d c-\u003eoptions.ce.local_port;"},{"line_number":1860,"context_line":"    c-\u003ec2.link_sockets[sock_index]-\u003eremote_host \u003d c-\u003eoptions.ce.remote;"},{"line_number":1861,"context_line":"    c-\u003ec2.link_sockets[sock_index]-\u003eremote_port \u003d c-\u003eoptions.ce.remote_port;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"6534f7ed_de52f295","line":1858,"in_reply_to":"efd059f1_5a25f7ad","updated":"2024-12-10 13:10:35.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":2219,"context_line":"    /* If a valid remote has been found, create the socket with its addrinfo */"},{"line_number":2220,"context_line":"    if (sock-\u003einfo.lsa-\u003ecurrent_remote)"},{"line_number":2221,"context_line":"    {"},{"line_number":2222,"context_line":"#if defined (_WIN32)"},{"line_number":2223,"context_line":"        if (dco_enabled(\u0026c-\u003eoptions))"},{"line_number":2224,"context_line":"        {"},{"line_number":2225,"context_line":"            create_socket_dco_win(c, sock, sig_info);"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"b3f1e813_3ace2227","line":2222,"updated":"2024-11-27 15:54:14.000000000","message":"unrelated whitespace change, please do not (also, this extra space is not how it\u0027s done elsewhere)","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":2219,"context_line":"    /* If a valid remote has been found, create the socket with its addrinfo */"},{"line_number":2220,"context_line":"    if (sock-\u003einfo.lsa-\u003ecurrent_remote)"},{"line_number":2221,"context_line":"    {"},{"line_number":2222,"context_line":"#if defined (_WIN32)"},{"line_number":2223,"context_line":"        if (dco_enabled(\u0026c-\u003eoptions))"},{"line_number":2224,"context_line":"        {"},{"line_number":2225,"context_line":"            create_socket_dco_win(c, sock, sig_info);"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"b247da87_2274fb46","line":2222,"in_reply_to":"b3f1e813_3ace2227","updated":"2024-12-10 13:10:35.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":2256,"context_line":"    if (sock-\u003esd \u003d\u003d SOCKET_UNDEFINED)"},{"line_number":2257,"context_line":"    {"},{"line_number":2258,"context_line":"        msg(M_WARN, \"Could not determine IPv4/IPv6 protocol\");"},{"line_number":2259,"context_line":"        sig_info-\u003esignal_received \u003d SIGUSR1;"},{"line_number":2260,"context_line":"        goto done;"},{"line_number":2261,"context_line":"    }"},{"line_number":2262,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":7,"id":"2e93e0ee_51a6abd7","line":2259,"updated":"2024-11-27 15:54:14.000000000","message":"I think this is a rebase artefact, the multisocket patch colliding with Selva\u0027s signal handler reworking.  Please double-check, but this does not look right.","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":2256,"context_line":"    if (sock-\u003esd \u003d\u003d SOCKET_UNDEFINED)"},{"line_number":2257,"context_line":"    {"},{"line_number":2258,"context_line":"        msg(M_WARN, \"Could not determine IPv4/IPv6 protocol\");"},{"line_number":2259,"context_line":"        sig_info-\u003esignal_received \u003d SIGUSR1;"},{"line_number":2260,"context_line":"        goto done;"},{"line_number":2261,"context_line":"    }"},{"line_number":2262,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":7,"id":"58256377_1c734eb8","line":2259,"in_reply_to":"2e93e0ee_51a6abd7","updated":"2024-12-10 13:10:35.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":2268,"context_line":"    if (sock-\u003einfo.proto \u003d\u003d PROTO_TCP_SERVER)"},{"line_number":2269,"context_line":"    {"},{"line_number":2270,"context_line":"        phase2_tcp_server(sock, remote_dynamic,"},{"line_number":2271,"context_line":"                          sig_info);"},{"line_number":2272,"context_line":"    }"},{"line_number":2273,"context_line":"    else if (sock-\u003einfo.proto \u003d\u003d PROTO_TCP_CLIENT)"},{"line_number":2274,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"fa7b3095_61edff01","line":2271,"updated":"2024-11-27 15:54:14.000000000","message":"please do not wrap.  The line is not long and not changed by this patch.","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":2268,"context_line":"    if (sock-\u003einfo.proto \u003d\u003d PROTO_TCP_SERVER)"},{"line_number":2269,"context_line":"    {"},{"line_number":2270,"context_line":"        phase2_tcp_server(sock, remote_dynamic,"},{"line_number":2271,"context_line":"                          sig_info);"},{"line_number":2272,"context_line":"    }"},{"line_number":2273,"context_line":"    else if (sock-\u003einfo.proto \u003d\u003d PROTO_TCP_CLIENT)"},{"line_number":2274,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"72e83319_3a6cdcc6","line":2271,"in_reply_to":"fa7b3095_61edff01","updated":"2024-12-10 13:10:35.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"01f6c965a58d5c9882c4564202b0d5446eb89605","unresolved":true,"context_lines":[{"line_number":2294,"context_line":"    linksock_print_addr(sock);"},{"line_number":2295,"context_line":""},{"line_number":2296,"context_line":"done:"},{"line_number":2297,"context_line":"    if (sig_save)"},{"line_number":2298,"context_line":"    {"},{"line_number":2299,"context_line":"        if (!sig_info-\u003esignal_received)"},{"line_number":2300,"context_line":"        {"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"02a03a9a_2d541041","line":2297,"updated":"2024-11-27 15:54:14.000000000","message":"again, please thoroughly double check.  I think this is old code, and the throw_signal() stuff is how it should be.","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"5b9a2c718c81a9392698c9aab64322125f4234ee","unresolved":false,"context_lines":[{"line_number":2294,"context_line":"    linksock_print_addr(sock);"},{"line_number":2295,"context_line":""},{"line_number":2296,"context_line":"done:"},{"line_number":2297,"context_line":"    if (sig_save)"},{"line_number":2298,"context_line":"    {"},{"line_number":2299,"context_line":"        if (!sig_info-\u003esignal_received)"},{"line_number":2300,"context_line":"        {"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"93ac21b3_d36b9855","line":2297,"in_reply_to":"02a03a9a_2d541041","updated":"2024-12-10 13:10:35.000000000","message":"Done","commit_id":"13678e723454d7c1c6bf35a9006aa0964e4190bc"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":1034,"context_line":"create_socket_udp(struct addrinfo *addrinfo, const unsigned int flags)"},{"line_number":1035,"context_line":"{"},{"line_number":1036,"context_line":"    socket_descriptor_t sd;"},{"line_number":1037,"context_line":""},{"line_number":1038,"context_line":"    ASSERT(addrinfo);"},{"line_number":1039,"context_line":"    ASSERT(addrinfo-\u003eai_socktype \u003d\u003d SOCK_DGRAM);"},{"line_number":1040,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"c450a732_4bec3d43","side":"PARENT","line":1037,"updated":"2024-12-29 22:40:09.000000000","message":"another blank line","commit_id":"387c2076af14a0f1ba97b6ca0175d81d1e8391a5"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"create_socket_udp(struct addrinfo *addrinfo, const unsigned int flags)"},{"line_number":1035,"context_line":"{"},{"line_number":1036,"context_line":"    socket_descriptor_t sd;"},{"line_number":1037,"context_line":""},{"line_number":1038,"context_line":"    ASSERT(addrinfo);"},{"line_number":1039,"context_line":"    ASSERT(addrinfo-\u003eai_socktype \u003d\u003d SOCK_DGRAM);"},{"line_number":1040,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"9a778853_9ea799d9","side":"PARENT","line":1037,"in_reply_to":"c450a732_4bec3d43","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"387c2076af14a0f1ba97b6ca0175d81d1e8391a5"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":1872,"context_line":"    }"},{"line_number":1873,"context_line":"#endif"},{"line_number":1874,"context_line":"    sock-\u003emark \u003d o-\u003emark;"},{"line_number":1875,"context_line":"    sock-\u003ebind_dev \u003d o-\u003ebind_dev;"},{"line_number":1876,"context_line":""},{"line_number":1877,"context_line":"    sock-\u003einfo.proto \u003d o-\u003ece.proto;"},{"line_number":1878,"context_line":"    sock-\u003einfo.af \u003d o-\u003ece.af;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"a223f45e_43302346","side":"PARENT","line":1875,"updated":"2024-12-29 22:40:09.000000000","message":"where did that go to?  another rebase accident?  *red flag*","commit_id":"387c2076af14a0f1ba97b6ca0175d81d1e8391a5"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":1872,"context_line":"    }"},{"line_number":1873,"context_line":"#endif"},{"line_number":1874,"context_line":"    sock-\u003emark \u003d o-\u003emark;"},{"line_number":1875,"context_line":"    sock-\u003ebind_dev \u003d o-\u003ebind_dev;"},{"line_number":1876,"context_line":""},{"line_number":1877,"context_line":"    sock-\u003einfo.proto \u003d o-\u003ece.proto;"},{"line_number":1878,"context_line":"    sock-\u003einfo.af \u003d o-\u003ece.af;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"55bd01b2_52c753e9","side":"PARENT","line":1875,"in_reply_to":"a223f45e_43302346","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"387c2076af14a0f1ba97b6ca0175d81d1e8391a5"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":1016,"context_line":"socket_descriptor_t"},{"line_number":1017,"context_line":"create_socket_tcp(struct addrinfo *addrinfo)"},{"line_number":1018,"context_line":"{"},{"line_number":1019,"context_line":"    socket_descriptor_t sd;"},{"line_number":1020,"context_line":"    ASSERT(addrinfo);"},{"line_number":1021,"context_line":"    ASSERT(addrinfo-\u003eai_socktype \u003d\u003d SOCK_STREAM);"},{"line_number":1022,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"03786af0_25ca4cba","line":1019,"updated":"2024-12-29 22:40:09.000000000","message":"we shouldn\u0027t delete blank lines unrelated to actual changes (minor nit)","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"socket_descriptor_t"},{"line_number":1017,"context_line":"create_socket_tcp(struct addrinfo *addrinfo)"},{"line_number":1018,"context_line":"{"},{"line_number":1019,"context_line":"    socket_descriptor_t sd;"},{"line_number":1020,"context_line":"    ASSERT(addrinfo);"},{"line_number":1021,"context_line":"    ASSERT(addrinfo-\u003eai_socktype \u003d\u003d SOCK_STREAM);"},{"line_number":1022,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"6094ee4a_ac948ea1","line":1019,"in_reply_to":"03786af0_25ca4cba","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":1851,"context_line":"void"},{"line_number":1852,"context_line":"link_socket_init_phase1(struct context *c,"},{"line_number":1853,"context_line":"                        int sock_index,"},{"line_number":1854,"context_line":"                        int mode)"},{"line_number":1855,"context_line":"{"},{"line_number":1856,"context_line":"    struct link_socket *sock \u003d c-\u003ec2.link_sockets[sock_index];"},{"line_number":1857,"context_line":"    struct options *o \u003d \u0026c-\u003eoptions;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"9c9ce7e2_01384c14","line":1854,"updated":"2024-12-29 22:40:09.000000000","message":"please unwrap","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":1851,"context_line":"void"},{"line_number":1852,"context_line":"link_socket_init_phase1(struct context *c,"},{"line_number":1853,"context_line":"                        int sock_index,"},{"line_number":1854,"context_line":"                        int mode)"},{"line_number":1855,"context_line":"{"},{"line_number":1856,"context_line":"    struct link_socket *sock \u003d c-\u003ec2.link_sockets[sock_index];"},{"line_number":1857,"context_line":"    struct options *o \u003d \u0026c-\u003eoptions;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"e87a08aa_1f6e0dab","line":1854,"in_reply_to":"9c9ce7e2_01384c14","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":1860,"context_line":"    sock-\u003elocal_host \u003d o-\u003ece.local;"},{"line_number":1861,"context_line":"    sock-\u003elocal_port \u003d o-\u003ece.local_port;"},{"line_number":1862,"context_line":"    sock-\u003eremote_host \u003d o-\u003ece.remote;"},{"line_number":1863,"context_line":"    sock-\u003eremote_port \u003d o-\u003ece.remote_port;"},{"line_number":1864,"context_line":"    sock-\u003edns_cache \u003d c-\u003ec1.dns_cache;"},{"line_number":1865,"context_line":"    sock-\u003ehttp_proxy \u003d c-\u003ec1.http_proxy;"},{"line_number":1866,"context_line":"    sock-\u003esocks_proxy \u003d c-\u003ec1.socks_proxy;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"b9a7826e_aead3ffe","line":1863,"updated":"2024-12-29 22:40:09.000000000","message":"not sure this change (remove the local variables `remote_host` and `remote_port`) is a good thing as part of this patchset.  It\u0027s cleanup/refactoring, and unrelated, but makes this diff larger than it should be.\n\nSo I\u0027d prefer to not do this set of changes.","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":1860,"context_line":"    sock-\u003elocal_host \u003d o-\u003ece.local;"},{"line_number":1861,"context_line":"    sock-\u003elocal_port \u003d o-\u003ece.local_port;"},{"line_number":1862,"context_line":"    sock-\u003eremote_host \u003d o-\u003ece.remote;"},{"line_number":1863,"context_line":"    sock-\u003eremote_port \u003d o-\u003ece.remote_port;"},{"line_number":1864,"context_line":"    sock-\u003edns_cache \u003d c-\u003ec1.dns_cache;"},{"line_number":1865,"context_line":"    sock-\u003ehttp_proxy \u003d c-\u003ec1.http_proxy;"},{"line_number":1866,"context_line":"    sock-\u003esocks_proxy \u003d c-\u003ec1.socks_proxy;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"36576466_961a732f","line":1863,"in_reply_to":"b9a7826e_aead3ffe","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":1916,"context_line":""},{"line_number":1917,"context_line":"        /* the OpenVPN server we will use the proxy to connect to */"},{"line_number":1918,"context_line":"        sock-\u003eproxy_dest_host \u003d o-\u003ece.remote;"},{"line_number":1919,"context_line":"        sock-\u003eproxy_dest_port \u003d o-\u003ece.remote_port;"},{"line_number":1920,"context_line":"    }"},{"line_number":1921,"context_line":"    /* or in Socks proxy mode? */"},{"line_number":1922,"context_line":"    else if (sock-\u003esocks_proxy)"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"bff14e2e_61aafce1","line":1919,"updated":"2024-12-29 22:40:09.000000000","message":"this","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":1916,"context_line":""},{"line_number":1917,"context_line":"        /* the OpenVPN server we will use the proxy to connect to */"},{"line_number":1918,"context_line":"        sock-\u003eproxy_dest_host \u003d o-\u003ece.remote;"},{"line_number":1919,"context_line":"        sock-\u003eproxy_dest_port \u003d o-\u003ece.remote_port;"},{"line_number":1920,"context_line":"    }"},{"line_number":1921,"context_line":"    /* or in Socks proxy mode? */"},{"line_number":1922,"context_line":"    else if (sock-\u003esocks_proxy)"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"9434c644_f418ccd8","line":1919,"in_reply_to":"bff14e2e_61aafce1","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":1921,"context_line":"    /* or in Socks proxy mode? */"},{"line_number":1922,"context_line":"    else if (sock-\u003esocks_proxy)"},{"line_number":1923,"context_line":"    {"},{"line_number":1924,"context_line":""},{"line_number":1925,"context_line":"        /* the proxy server */"},{"line_number":1926,"context_line":"        sock-\u003eremote_host \u003d c-\u003ec1.socks_proxy-\u003eserver;"},{"line_number":1927,"context_line":"        sock-\u003eremote_port \u003d c-\u003ec1.socks_proxy-\u003eport;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"ac638e3f_3c683fd8","line":1924,"updated":"2024-12-29 22:40:09.000000000","message":"spurious blank line","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":1921,"context_line":"    /* or in Socks proxy mode? */"},{"line_number":1922,"context_line":"    else if (sock-\u003esocks_proxy)"},{"line_number":1923,"context_line":"    {"},{"line_number":1924,"context_line":""},{"line_number":1925,"context_line":"        /* the proxy server */"},{"line_number":1926,"context_line":"        sock-\u003eremote_host \u003d c-\u003ec1.socks_proxy-\u003eserver;"},{"line_number":1927,"context_line":"        sock-\u003eremote_port \u003d c-\u003ec1.socks_proxy-\u003eport;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"f14a026f_c6ca2521","line":1924,"in_reply_to":"ac638e3f_3c683fd8","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":1928,"context_line":""},{"line_number":1929,"context_line":"        /* the OpenVPN server we will use the proxy to connect to */"},{"line_number":1930,"context_line":"        sock-\u003eproxy_dest_host \u003d o-\u003ece.remote;"},{"line_number":1931,"context_line":"        sock-\u003eproxy_dest_port \u003d o-\u003ece.remote_port;"},{"line_number":1932,"context_line":"    }"},{"line_number":1933,"context_line":"    else"},{"line_number":1934,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"8bdd62db_a3c5abdd","line":1931,"updated":"2024-12-29 22:40:09.000000000","message":"this","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":1928,"context_line":""},{"line_number":1929,"context_line":"        /* the OpenVPN server we will use the proxy to connect to */"},{"line_number":1930,"context_line":"        sock-\u003eproxy_dest_host \u003d o-\u003ece.remote;"},{"line_number":1931,"context_line":"        sock-\u003eproxy_dest_port \u003d o-\u003ece.remote_port;"},{"line_number":1932,"context_line":"    }"},{"line_number":1933,"context_line":"    else"},{"line_number":1934,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"8c99342c_c4d10f9f","line":1931,"in_reply_to":"8bdd62db_a3c5abdd","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":1933,"context_line":"    else"},{"line_number":1934,"context_line":"    {"},{"line_number":1935,"context_line":"        sock-\u003eremote_host \u003d o-\u003ece.remote;"},{"line_number":1936,"context_line":"        sock-\u003eremote_port \u003d o-\u003ece.remote_port;"},{"line_number":1937,"context_line":"    }"},{"line_number":1938,"context_line":""},{"line_number":1939,"context_line":"    /* bind behavior for TCP server vs. client */"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"c27c8614_67874b24","line":1936,"updated":"2024-12-29 22:40:09.000000000","message":"and this","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":1933,"context_line":"    else"},{"line_number":1934,"context_line":"    {"},{"line_number":1935,"context_line":"        sock-\u003eremote_host \u003d o-\u003ece.remote;"},{"line_number":1936,"context_line":"        sock-\u003eremote_port \u003d o-\u003ece.remote_port;"},{"line_number":1937,"context_line":"    }"},{"line_number":1938,"context_line":""},{"line_number":1939,"context_line":"    /* bind behavior for TCP server vs. client */"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"15fb1903_d0b82fdd","line":1936,"in_reply_to":"c27c8614_67874b24","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0c421d9c23b5e07327c3c2b90e8c80a6d3e4e12e","unresolved":true,"context_lines":[{"line_number":2298,"context_line":"done:"},{"line_number":2299,"context_line":"    if (sig_save.signal_received)"},{"line_number":2300,"context_line":"    {"},{"line_number":2301,"context_line":"        /* Always restore the saved signal --register/throw_signal will handle priority */"},{"line_number":2302,"context_line":"        if (sig_save.source \u003d\u003d SIG_SOURCE_HARD \u0026\u0026 sig_info \u003d\u003d \u0026siginfo_static)"},{"line_number":2303,"context_line":"        {"},{"line_number":2304,"context_line":"            throw_signal(sig_save.signal_received);"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"731d7cd9_eba0b68a","line":2301,"updated":"2024-12-29 22:40:09.000000000","message":"you lost a ` ` here after `--` (this is not a command line option `--register`)","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"e2c2ebbcafaba05c570716d19676e5ed0ba6b8f9","unresolved":false,"context_lines":[{"line_number":2298,"context_line":"done:"},{"line_number":2299,"context_line":"    if (sig_save.signal_received)"},{"line_number":2300,"context_line":"    {"},{"line_number":2301,"context_line":"        /* Always restore the saved signal --register/throw_signal will handle priority */"},{"line_number":2302,"context_line":"        if (sig_save.source \u003d\u003d SIG_SOURCE_HARD \u0026\u0026 sig_info \u003d\u003d \u0026siginfo_static)"},{"line_number":2303,"context_line":"        {"},{"line_number":2304,"context_line":"            throw_signal(sig_save.signal_received);"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"066facc3_d851126b","line":2301,"in_reply_to":"731d7cd9_eba0b68a","updated":"2024-12-30 13:37:47.000000000","message":"Done","commit_id":"6eaf6cc17ce5751d2f535fb2156ae14409b4972e"}],"src/openvpn/socket.h":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":345,"context_line":" * Initialize link_socket object."},{"line_number":346,"context_line":" */"},{"line_number":347,"context_line":"void"},{"line_number":348,"context_line":"link_socket_init_phase1(struct link_socket *sock,"},{"line_number":349,"context_line":"                        const char *local_host,"},{"line_number":350,"context_line":"                        const char *local_port,"},{"line_number":351,"context_line":"                        const char *remote_host,"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"ffde4105_327f32dd","line":348,"updated":"2024-10-11 16:45:43.000000000","message":"hmm, no?\n\nThere must be some better way than an function that has 25 parameters, surely?","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":345,"context_line":" * Initialize link_socket object."},{"line_number":346,"context_line":" */"},{"line_number":347,"context_line":"void"},{"line_number":348,"context_line":"link_socket_init_phase1(struct link_socket *sock,"},{"line_number":349,"context_line":"                        const char *local_host,"},{"line_number":350,"context_line":"                        const char *local_port,"},{"line_number":351,"context_line":"                        const char *remote_host,"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"a49234a5_d2525f23","line":348,"in_reply_to":"ffde4105_327f32dd","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"669bcfb9681c9059b9fb0c400776be0e40da4abf","unresolved":true,"context_lines":[{"line_number":1285,"context_line":" * Socket I/O wait functions"},{"line_number":1286,"context_line":" */"},{"line_number":1287,"context_line":""},{"line_number":1288,"context_line":"bool sockets_read_residual(const struct context *c);"},{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"static inline event_t"},{"line_number":1291,"context_line":"socket_event_handle(const struct link_socket *sock)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"adb96022_106a698b","line":1288,"updated":"2024-10-11 16:45:43.000000000","message":"please add minimal documentation","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"709208564909f23446223a9c860eacdbd22e270f","unresolved":false,"context_lines":[{"line_number":1285,"context_line":" * Socket I/O wait functions"},{"line_number":1286,"context_line":" */"},{"line_number":1287,"context_line":""},{"line_number":1288,"context_line":"bool sockets_read_residual(const struct context *c);"},{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"static inline event_t"},{"line_number":1291,"context_line":"socket_event_handle(const struct link_socket *sock)"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"4d71982d_76aa122f","line":1288,"in_reply_to":"adb96022_106a698b","updated":"2024-10-17 14:49:41.000000000","message":"Done","commit_id":"0b4ae403867c8e7494b487a9777700c911595505"}]}
