)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"b7fb699ee9bb4981dca09cba732a0f2593ff29ba","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"eabff49b_9cb4d1e2","updated":"2025-04-17 10:01:32.000000000","message":"I also got the following:\n\n1. is it expected for then tun iface to stay after the connection is brought down? If that matters, I\u0027m using NetworkManager for managing my OpenVPN connections\n\n\nIs openvpn not deleting the interface upon cleanup?","commit_id":"f1d2a7ba24c01f61bf7e957973156dc8bdbf1199"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"d2a73c27aa602dfdd680f947150e2bd196c45355","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4b941601_0bf7b3ff","updated":"2025-04-19 11:14:34.000000000","message":"I got this report:\n\n2025-04-18 14:54:29 us\u003d859916 dco_get_peer_stats: peer-id 0\n2025-04-18 14:54:29 us\u003d860232 dco_parse_peer: parsing message...\n2025-04-18 14:54:29 us\u003d860278 dco_parse_peer: malformed reply\n\nfollowed by segmentation fault.\n\nI think we did not port the incoming message parsing.\nand when errori g out it is crashing.","commit_id":"f1d2a7ba24c01f61bf7e957973156dc8bdbf1199"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"bda6a848a6f806a3534e124b5add6258c9fa455d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"93446b73_01b1960f","updated":"2025-04-17 09:58:03.000000000","message":"I wouldc hange the commit title a bit...will suggest something.\n\nThen I got this report:\n\n2. a userspace nit probably not relevant to this submission: the daemon still reports \"DCO version:\" but with \"N/A\" value because that version file under /sys is not presented any more like it was with an out-of-tree v2 implementation","commit_id":"f1d2a7ba24c01f61bf7e957973156dc8bdbf1199"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"95f32e10db535e1abda6e556ca48b83066a531d4","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"51dfda37_882440f2","updated":"2025-04-17 10:02:39.000000000","message":"[re-adding comment as it was set a Resolved by accident]\n\nI would change the commit title a bit...will suggest something.\n\nThen I got this report:\n\n2. a userspace nit probably not relevant to this submission: the daemon still reports \"DCO version:\" but with \"N/A\" value because that version file under /sys is not presented any more like it was with an out-of-tree v2 implementation","commit_id":"f1d2a7ba24c01f61bf7e957973156dc8bdbf1199"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"93ebecc5a6158a69a6470e548c010531b858794d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a4710a1b_10117beb","in_reply_to":"51dfda37_882440f2","updated":"2025-04-17 11:22:50.000000000","message":"this is something that we could deal with in a separate patch.\nBasically in-kernel modules do not have a separate \"version\" file.\nWe will have it when compiling the \u0027ovpn\u0027 through dkms, but we won\u0027t when using the in-kernel version.\n\nTherefore we will have to extend the check and possibly print the kernel version when using the in-kernel one.","commit_id":"f1d2a7ba24c01f61bf7e957973156dc8bdbf1199"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"93ebecc5a6158a69a6470e548c010531b858794d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bc6c7466_d0966db8","in_reply_to":"eabff49b_9cb4d1e2","updated":"2025-04-17 11:22:50.000000000","message":"Gianmarco confirmed that openvpn cleans the interface up correctly.\nWe need to check with the NM guy why this is happening under NM.\nTherefore this is not an issue with this patch.","commit_id":"f1d2a7ba24c01f61bf7e957973156dc8bdbf1199"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"442fb6e065f57538e7e7de694e0acdf093ee68c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d7fd6706_ae503c86","updated":"2025-05-02 20:35:00.000000000","message":"Overall it looks relatively straightforward, with most of the changes just replacing one define with another - easy enough.  Testing to come.\n\nThere are a few changes that break the style of this module, and I see no strong reason why these are done, so -1 for now.","commit_id":"e1146f81981f70df3a5f86ed09cdaf693e9c4747"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"0eae3b2a5a5c2b08ac155a44f27e604b7736baeb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"af61e2ef_a975e996","updated":"2025-04-28 08:19:19.000000000","message":"This patch now looks good to me (Gianmarco is away this week, so I personally pushed v4 without waiting for him)","commit_id":"e1146f81981f70df3a5f86ed09cdaf693e9c4747"}],"src/openvpn/dco_linux.c":[{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"442fb6e065f57538e7e7de694e0acdf093ee68c4","unresolved":true,"context_lines":[{"line_number":544,"context_line":"    return ret;"},{"line_number":545,"context_line":"nla_put_failure:"},{"line_number":546,"context_line":"    nlmsg_free(nl_msg);"},{"line_number":547,"context_line":"    return -1;"},{"line_number":548,"context_line":"}"},{"line_number":549,"context_line":""},{"line_number":550,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":4,"id":"006d280c_8ba3e1fe","line":547,"updated":"2025-05-02 20:35:00.000000000","message":"this change looks unneccessary?","commit_id":"e1146f81981f70df3a5f86ed09cdaf693e9c4747"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"902983bc9406dd3f0c944f044e9994cf568a953a","unresolved":false,"context_lines":[{"line_number":544,"context_line":"    return ret;"},{"line_number":545,"context_line":"nla_put_failure:"},{"line_number":546,"context_line":"    nlmsg_free(nl_msg);"},{"line_number":547,"context_line":"    return -1;"},{"line_number":548,"context_line":"}"},{"line_number":549,"context_line":""},{"line_number":550,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":4,"id":"42a3e9d5_a3241db0","line":547,"in_reply_to":"006d280c_8ba3e1fe","updated":"2025-05-05 07:22:29.000000000","message":"Done","commit_id":"e1146f81981f70df3a5f86ed09cdaf693e9c4747"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"442fb6e065f57538e7e7de694e0acdf093ee68c4","unresolved":true,"context_lines":[{"line_number":571,"context_line":"    nlmsg_free(nl_msg);"},{"line_number":572,"context_line":"    ret \u003d -1;"},{"line_number":573,"context_line":"    return ret;"},{"line_number":574,"context_line":"}"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"int"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"91377007_60a5d367","line":574,"updated":"2025-05-02 20:35:00.000000000","message":"same here... the code style with \"one common free()/return at the end\" is kept in other places (like dco_del_key()), so why change it here, and in a different style than in dco_swap_keys()?","commit_id":"e1146f81981f70df3a5f86ed09cdaf693e9c4747"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"902983bc9406dd3f0c944f044e9994cf568a953a","unresolved":false,"context_lines":[{"line_number":571,"context_line":"    nlmsg_free(nl_msg);"},{"line_number":572,"context_line":"    ret \u003d -1;"},{"line_number":573,"context_line":"    return ret;"},{"line_number":574,"context_line":"}"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"int"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"72dedff9_08f21440","line":574,"in_reply_to":"91377007_60a5d367","updated":"2025-05-05 07:22:29.000000000","message":"Done","commit_id":"e1146f81981f70df3a5f86ed09cdaf693e9c4747"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"442fb6e065f57538e7e7de694e0acdf093ee68c4","unresolved":true,"context_lines":[{"line_number":588,"context_line":"    }"},{"line_number":589,"context_line":"    struct nlattr *keyconf;"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"    keyconf \u003d nla_nest_start(nl_msg, OVPN_A_KEYCONF);"},{"line_number":592,"context_line":"    NLA_PUT_U32(nl_msg, OVPN_A_KEYCONF_PEER_ID, peerid);"},{"line_number":593,"context_line":"    NLA_PUT_U32(nl_msg, OVPN_A_KEYCONF_SLOT, slot);"},{"line_number":594,"context_line":"    nla_nest_end(nl_msg, keyconf);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"ed9e335b_8afd8a97","line":591,"updated":"2025-05-02 20:35:00.000000000","message":"why wrap differently, and not keep `struct nlattr * nla_nest_start()...`?  Line too long?","commit_id":"e1146f81981f70df3a5f86ed09cdaf693e9c4747"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"902983bc9406dd3f0c944f044e9994cf568a953a","unresolved":false,"context_lines":[{"line_number":588,"context_line":"    }"},{"line_number":589,"context_line":"    struct nlattr *keyconf;"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"    keyconf \u003d nla_nest_start(nl_msg, OVPN_A_KEYCONF);"},{"line_number":592,"context_line":"    NLA_PUT_U32(nl_msg, OVPN_A_KEYCONF_PEER_ID, peerid);"},{"line_number":593,"context_line":"    NLA_PUT_U32(nl_msg, OVPN_A_KEYCONF_SLOT, slot);"},{"line_number":594,"context_line":"    nla_nest_end(nl_msg, keyconf);"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"88df7038_9eb77ae3","line":591,"in_reply_to":"ed9e335b_8afd8a97","updated":"2025-05-05 07:22:29.000000000","message":"Done","commit_id":"e1146f81981f70df3a5f86ed09cdaf693e9c4747"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"442fb6e065f57538e7e7de694e0acdf093ee68c4","unresolved":true,"context_lines":[{"line_number":857,"context_line":"            break;"},{"line_number":858,"context_line":"        }"},{"line_number":859,"context_line":""},{"line_number":860,"context_line":"        case OVPN_CMD_KEY_SWAP_NTF:"},{"line_number":861,"context_line":"        {"},{"line_number":862,"context_line":"            if (!attrs[OVPN_A_KEYCONF])"},{"line_number":863,"context_line":"            {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"333dacb6_0b189629","line":860,"updated":"2025-05-02 20:35:00.000000000","message":"what is KEY_SWAP_NTF?  That\u0027s a new thing :-)","commit_id":"e1146f81981f70df3a5f86ed09cdaf693e9c4747"},{"author":{"_account_id":1000034,"name":"its_Giaan","display_name":"Gianmarco De Gregori","email":"gianmarco@mandelbit.com","username":"its_Giaan"},"change_message_id":"902983bc9406dd3f0c944f044e9994cf568a953a","unresolved":false,"context_lines":[{"line_number":857,"context_line":"            break;"},{"line_number":858,"context_line":"        }"},{"line_number":859,"context_line":""},{"line_number":860,"context_line":"        case OVPN_CMD_KEY_SWAP_NTF:"},{"line_number":861,"context_line":"        {"},{"line_number":862,"context_line":"            if (!attrs[OVPN_A_KEYCONF])"},{"line_number":863,"context_line":"            {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"fd7c904e_d3273a61","line":860,"in_reply_to":"333dacb6_0b189629","updated":"2025-05-05 07:22:29.000000000","message":"The \u0027NTF\u0027 prefix indicates that the message comes from the kernel module. So we can distinguish between messages sent and received.","commit_id":"e1146f81981f70df3a5f86ed09cdaf693e9c4747"}]}
