)]}'
{"src/openvpn/options.c":[{"author":{"_account_id":1000053,"name":"razvanc","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"850f3250d4ed7d0ecbdf54c76c9945b80d0a1a52","unresolved":true,"context_lines":[{"line_number":3667,"context_line":"        {"},{"line_number":3668,"context_line":"            struct dns_domain **entry \u003d \u0026dns-\u003esearch_domains;"},{"line_number":3669,"context_line":"            ALLOC_OBJ_CLEAR_GC(*entry, struct dns_domain, \u0026dns-\u003egc);"},{"line_number":3670,"context_line":"            struct dns_domain *new \u003d *entry;"},{"line_number":3671,"context_line":"            new-\u003ename \u003d dhcp-\u003edomain;"},{"line_number":3672,"context_line":"            entry \u003d \u0026new-\u003enext;"},{"line_number":3673,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"89261cd5_3a939032","side":"PARENT","line":3670,"updated":"2026-08-14 12:34:02.000000000","message":"Ouch! It might be a good idea to have an official guideline to not use C++ keywords as variable names, so we won\u0027t have to do special macro tricks if we need to `#include` OpenVPN C code in C++ code.","commit_id":"45219183dd0984613b8c46bb05bd0bdfc8b218d2"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"f92cf996e2b08560370af383b9257c36da6bef8d","unresolved":false,"context_lines":[{"line_number":3667,"context_line":"        {"},{"line_number":3668,"context_line":"            struct dns_domain **entry \u003d \u0026dns-\u003esearch_domains;"},{"line_number":3669,"context_line":"            ALLOC_OBJ_CLEAR_GC(*entry, struct dns_domain, \u0026dns-\u003egc);"},{"line_number":3670,"context_line":"            struct dns_domain *new \u003d *entry;"},{"line_number":3671,"context_line":"            new-\u003ename \u003d dhcp-\u003edomain;"},{"line_number":3672,"context_line":"            entry \u003d \u0026new-\u003enext;"},{"line_number":3673,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"b0c7dc04_c3550c66","side":"PARENT","line":3670,"in_reply_to":"89261cd5_3a939032","updated":"2026-08-19 15:29:03.000000000","message":"out of scope for this change, though","commit_id":"45219183dd0984613b8c46bb05bd0bdfc8b218d2"}],"src/openvpn/ps.c":[{"author":{"_account_id":1000053,"name":"razvanc","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"850f3250d4ed7d0ecbdf54c76c9945b80d0a1a52","unresolved":true,"context_lines":[{"line_number":875,"context_line":"        }"},{"line_number":876,"context_line":"        else"},{"line_number":877,"context_line":"        {"},{"line_number":878,"context_line":"            msg(M_ERR, \"PORT SHARE: unexpected init recv_control status\u003d%d\", status);"},{"line_number":879,"context_line":"        }"},{"line_number":880,"context_line":"    }"},{"line_number":881,"context_line":"    else"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"76b9fc9f_6e56ef87","line":878,"updated":"2026-08-14 12:34:02.000000000","message":"But now we are probably printing the wrong `status` variable here. A change like this needs to carefully check if removing the shadow warning doesn\u0027t make subsequent code wrongly reference the \"parent\" variable.","commit_id":"ed759afec30cf6e1ce9c06af92679a17afdc89f1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"f92cf996e2b08560370af383b9257c36da6bef8d","unresolved":false,"context_lines":[{"line_number":875,"context_line":"        }"},{"line_number":876,"context_line":"        else"},{"line_number":877,"context_line":"        {"},{"line_number":878,"context_line":"            msg(M_ERR, \"PORT SHARE: unexpected init recv_control status\u003d%d\", status);"},{"line_number":879,"context_line":"        }"},{"line_number":880,"context_line":"    }"},{"line_number":881,"context_line":"    else"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"2d807a05_85086416","line":878,"in_reply_to":"76b9fc9f_6e56ef87","updated":"2026-08-19 15:29:03.000000000","message":"Done","commit_id":"ed759afec30cf6e1ce9c06af92679a17afdc89f1"}],"src/openvpn/push.c":[{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"f55fe3af8c3324d084fdbf44277727842e5fa87a","unresolved":true,"context_lines":[{"line_number":1001,"context_line":"    {"},{"line_number":1002,"context_line":"        time_t local_now;"},{"line_number":1003,"context_line":""},{"line_number":1004,"context_line":"        openvpn_time(\u0026local_now);"},{"line_number":1005,"context_line":"        if (c-\u003ec2.sent_push_reply_expiry \u003e local_now)"},{"line_number":1006,"context_line":"        {"},{"line_number":1007,"context_line":"            ret \u003d PUSH_MSG_ALREADY_REPLIED;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"d2598ba1_0e5a6217","line":1004,"updated":"2026-07-28 12:41:59.000000000","message":"I think this is also a leftover of the multithread stuff. We should probably just remove openvpn_time and use update_now() here.","commit_id":"4b683b5f8c105a13de0285b9c71cf614ca6b251d"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"9c4b60fc80cea84924c9026ee547f52b7ac8989b","unresolved":false,"context_lines":[{"line_number":1001,"context_line":"    {"},{"line_number":1002,"context_line":"        time_t local_now;"},{"line_number":1003,"context_line":""},{"line_number":1004,"context_line":"        openvpn_time(\u0026local_now);"},{"line_number":1005,"context_line":"        if (c-\u003ec2.sent_push_reply_expiry \u003e local_now)"},{"line_number":1006,"context_line":"        {"},{"line_number":1007,"context_line":"            ret \u003d PUSH_MSG_ALREADY_REPLIED;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"4bf9e78a_36ce4ac9","line":1004,"in_reply_to":"2691a00c_769a1935","updated":"2026-08-14 10:37:22.000000000","message":"Done","commit_id":"4b683b5f8c105a13de0285b9c71cf614ca6b251d"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"a0cd64b94d5532dbf25b0e04ca50c8bd87ad8fa4","unresolved":true,"context_lines":[{"line_number":1001,"context_line":"    {"},{"line_number":1002,"context_line":"        time_t local_now;"},{"line_number":1003,"context_line":""},{"line_number":1004,"context_line":"        openvpn_time(\u0026local_now);"},{"line_number":1005,"context_line":"        if (c-\u003ec2.sent_push_reply_expiry \u003e local_now)"},{"line_number":1006,"context_line":"        {"},{"line_number":1007,"context_line":"            ret \u003d PUSH_MSG_ALREADY_REPLIED;"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"2691a00c_769a1935","line":1004,"in_reply_to":"d2598ba1_0e5a6217","updated":"2026-08-11 16:27:58.000000000","message":"Moved this change to separate change: http://gerrit.openvpn.net/c/openvpn/+/1841\nWill rebase this if we get it merged.","commit_id":"4b683b5f8c105a13de0285b9c71cf614ca6b251d"}],"tests/unit_tests/openvpn/test_dhcp.c":[{"author":{"_account_id":1000053,"name":"razvanc","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"e243ae83c1ef67f154aff6a67284b46e05498057","unresolved":true,"context_lines":[{"line_number":55,"context_line":"{"},{"line_number":56,"context_line":"    struct gc_arena gc \u003d gc_new();"},{"line_number":57,"context_line":"    struct buffer out_buf \u003d alloc_buf_gc(512, \u0026gc);"},{"line_number":58,"context_line":"    struct buffer clean_buf \u003d alloc_buf_gc(512, \u0026gc);"},{"line_number":59,"context_line":"    buf_clear(\u0026clean_buf);"},{"line_number":60,"context_line":"    bool error \u003d false;"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"8c28ed03_34fae63e","line":58,"updated":"2026-08-14 12:58:19.000000000","message":"clear_buf vs. clean_buf is slightly pushing it for mishaps I think? 😊","commit_id":"ed759afec30cf6e1ce9c06af92679a17afdc89f1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"f92cf996e2b08560370af383b9257c36da6bef8d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"{"},{"line_number":56,"context_line":"    struct gc_arena gc \u003d gc_new();"},{"line_number":57,"context_line":"    struct buffer out_buf \u003d alloc_buf_gc(512, \u0026gc);"},{"line_number":58,"context_line":"    struct buffer clean_buf \u003d alloc_buf_gc(512, \u0026gc);"},{"line_number":59,"context_line":"    buf_clear(\u0026clean_buf);"},{"line_number":60,"context_line":"    bool error \u003d false;"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"85abadc9_c9db387e","line":58,"in_reply_to":"337dfaf8_96106acb","updated":"2026-08-19 15:29:03.000000000","message":"not changing this","commit_id":"ed759afec30cf6e1ce9c06af92679a17afdc89f1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"428e34a15b6e0303b8d8f992cebdeb2264219265","unresolved":true,"context_lines":[{"line_number":55,"context_line":"{"},{"line_number":56,"context_line":"    struct gc_arena gc \u003d gc_new();"},{"line_number":57,"context_line":"    struct buffer out_buf \u003d alloc_buf_gc(512, \u0026gc);"},{"line_number":58,"context_line":"    struct buffer clean_buf \u003d alloc_buf_gc(512, \u0026gc);"},{"line_number":59,"context_line":"    buf_clear(\u0026clean_buf);"},{"line_number":60,"context_line":"    bool error \u003d false;"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":13,"id":"337dfaf8_96106acb","line":58,"in_reply_to":"8c28ed03_34fae63e","updated":"2026-08-14 13:34:06.000000000","message":"I assume I wasn\u0027t that worried due to clear_buf() being a function.","commit_id":"ed759afec30cf6e1ce9c06af92679a17afdc89f1"}],"tests/unit_tests/openvpn/test_push_update_msg.c":[{"author":{"_account_id":1000053,"name":"razvanc","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"e243ae83c1ef67f154aff6a67284b46e05498057","unresolved":true,"context_lines":[{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    /* Message 1: first batch of routes, continuation 2 (more coming) */"},{"line_number":346,"context_line":"    struct buffer buf1 \u003d alloc_buf(512);"},{"line_number":347,"context_line":"    const char *cmsg1 \u003d \"PUSH_UPDATE, route 10.1.0.0 255.255.0.0, route 10.2.0.0 255.255.0.0, route 10.3.0.0 255.255.0.0,push-continuation 2\";"},{"line_number":348,"context_line":"    buf_write(\u0026buf1, cmsg1, strlen(cmsg1));"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    assert_int_equal(process_incoming_push_msg(c, \u0026buf1, c-\u003eoptions.pull, pull_permission_mask(c),"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"45a8658f_1443ba3e","line":347,"updated":"2026-08-14 12:58:19.000000000","message":"Maybe push_msg1 here (and the same strategy below)? Would it make it a bit clearer?","commit_id":"ed759afec30cf6e1ce9c06af92679a17afdc89f1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"f92cf996e2b08560370af383b9257c36da6bef8d","unresolved":false,"context_lines":[{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    /* Message 1: first batch of routes, continuation 2 (more coming) */"},{"line_number":346,"context_line":"    struct buffer buf1 \u003d alloc_buf(512);"},{"line_number":347,"context_line":"    const char *cmsg1 \u003d \"PUSH_UPDATE, route 10.1.0.0 255.255.0.0, route 10.2.0.0 255.255.0.0, route 10.3.0.0 255.255.0.0,push-continuation 2\";"},{"line_number":348,"context_line":"    buf_write(\u0026buf1, cmsg1, strlen(cmsg1));"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    assert_int_equal(process_incoming_push_msg(c, \u0026buf1, c-\u003eoptions.pull, pull_permission_mask(c),"}],"source_content_type":"text/x-csrc","patch_set":13,"id":"f2559df8_b9c3bf53","line":347,"in_reply_to":"45a8658f_1443ba3e","updated":"2026-08-19 15:29:03.000000000","message":"I did go for cont_msg since this is the continuation test","commit_id":"ed759afec30cf6e1ce9c06af92679a17afdc89f1"}]}
