)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000053,"name":"razvanc","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"85871fe371ee934a80ca48721833214d92aadca9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"4485f5d9_74905cb8","updated":"2026-08-20 11:15:31.000000000","message":"LGTM. But before I +2, are we sure that\n\n1. We won\u0027t want to use some of these in the future and have to dig them back up (or re-write them), since many of them look like small helpers?\n\n2. There are no external users we may care about?","commit_id":"871b80b3d7079145d0bb580e6601b4e6791ac753"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"bb11e282eb06ffbf3c10ab0104263dceb9f8e3cf","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":14,"id":"3ebbb20b_d8785ddf","in_reply_to":"4485f5d9_74905cb8","updated":"2026-08-24 11:24:25.000000000","message":"I have started to move functions that I think can clearly be removed to their own patches to avoid having discussions about all of them in this single change.","commit_id":"871b80b3d7079145d0bb580e6601b4e6791ac753"}],"src/openvpn/buffer.h":[{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"deb012cb1bd0f97558957132869fa695805c36cd","unresolved":true,"context_lines":[{"line_number":815,"context_line":""},{"line_number":816,"context_line":"static inline uint32_t"},{"line_number":817,"context_line":"buf_read_u32(struct buffer *buf, bool *good)"},{"line_number":818,"context_line":"{"},{"line_number":819,"context_line":"    uint32_t ret;"},{"line_number":820,"context_line":"    if (!buf_read(buf, \u0026ret, sizeof(uint32_t)))"},{"line_number":821,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":12,"id":"1bc6b612_ae93ea62","side":"PARENT","line":818,"updated":"2026-08-08 12:58:53.000000000","message":"I understand that this might not be used but feels a bit weird to remove it nonetheless.","commit_id":"d1106970f76e955b0a5fa19b566e97bba98d4c9b"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"bf206d8001628d576ee2dd26d58b65be4a3f82c6","unresolved":true,"context_lines":[{"line_number":815,"context_line":""},{"line_number":816,"context_line":"static inline uint32_t"},{"line_number":817,"context_line":"buf_read_u32(struct buffer *buf, bool *good)"},{"line_number":818,"context_line":"{"},{"line_number":819,"context_line":"    uint32_t ret;"},{"line_number":820,"context_line":"    if (!buf_read(buf, \u0026ret, sizeof(uint32_t)))"},{"line_number":821,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":12,"id":"24f5b44d_2a60a31f","side":"PARENT","line":818,"in_reply_to":"1bc6b612_ae93ea62","updated":"2026-08-10 12:04:06.000000000","message":"Yeah, there are some examples in here where we remove parts of an API that are not currently used but make sense to make the API complete and consistent. I don\u0027t have a strong opinion here. When you make a list of all removals that you think are dubious I could split the patch.","commit_id":"d1106970f76e955b0a5fa19b566e97bba98d4c9b"},{"author":{"_account_id":1000008,"name":"stipa","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"d3bbd3d120274e5dc51b94395f8d3d58b4d35f01","unresolved":true,"context_lines":[{"line_number":815,"context_line":""},{"line_number":816,"context_line":"static inline uint32_t"},{"line_number":817,"context_line":"buf_read_u32(struct buffer *buf, bool *good)"},{"line_number":818,"context_line":"{"},{"line_number":819,"context_line":"    uint32_t ret;"},{"line_number":820,"context_line":"    if (!buf_read(buf, \u0026ret, sizeof(uint32_t)))"},{"line_number":821,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":12,"id":"f8148efd_ce4f2c31","side":"PARENT","line":818,"in_reply_to":"24f5b44d_2a60a31f","updated":"2026-08-14 10:05:03.000000000","message":"OOB patch series (not merged yet) is the consumer of buf_read_u32. Besides, we have write_u16/u32/u64 so removing read_u32 would create an inconsistency.","commit_id":"d1106970f76e955b0a5fa19b566e97bba98d4c9b"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"ee286aae1f730d03a5be352161c8830cd569268e","unresolved":false,"context_lines":[{"line_number":815,"context_line":""},{"line_number":816,"context_line":"static inline uint32_t"},{"line_number":817,"context_line":"buf_read_u32(struct buffer *buf, bool *good)"},{"line_number":818,"context_line":"{"},{"line_number":819,"context_line":"    uint32_t ret;"},{"line_number":820,"context_line":"    if (!buf_read(buf, \u0026ret, sizeof(uint32_t)))"},{"line_number":821,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":12,"id":"080a3082_5a7ba107","side":"PARENT","line":818,"in_reply_to":"f8148efd_ce4f2c31","updated":"2026-08-14 10:36:39.000000000","message":"Done","commit_id":"d1106970f76e955b0a5fa19b566e97bba98d4c9b"}],"src/openvpn/multi_io.c":[{"author":{"_account_id":1000008,"name":"stipa","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"d3bbd3d120274e5dc51b94395f8d3d58b4d35f01","unresolved":true,"context_lines":[{"line_number":663,"context_line":"}"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"void"},{"line_number":666,"context_line":"multi_io_delete_event(struct multi_io *multi_io, event_t event)"},{"line_number":667,"context_line":"{"},{"line_number":668,"context_line":"    if (multi_io \u0026\u0026 multi_io-\u003ees)"},{"line_number":669,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":12,"id":"0703568e_f099715c","side":"PARENT","line":666,"updated":"2026-08-14 10:05:03.000000000","message":"multi_io.h still has a prototype of multi_io_delete_event","commit_id":"d1106970f76e955b0a5fa19b566e97bba98d4c9b"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"03f60ecfa2e8aacd53286cd1f4fe576e1182b291","unresolved":false,"context_lines":[{"line_number":663,"context_line":"}"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"void"},{"line_number":666,"context_line":"multi_io_delete_event(struct multi_io *multi_io, event_t event)"},{"line_number":667,"context_line":"{"},{"line_number":668,"context_line":"    if (multi_io \u0026\u0026 multi_io-\u003ees)"},{"line_number":669,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":12,"id":"9e8f1d19_57348a79","side":"PARENT","line":666,"in_reply_to":"0703568e_f099715c","updated":"2026-08-19 15:28:49.000000000","message":"Done","commit_id":"d1106970f76e955b0a5fa19b566e97bba98d4c9b"}],"src/openvpn/plugin.h":[{"author":{"_account_id":1000053,"name":"razvanc","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"85871fe371ee934a80ca48721833214d92aadca9","unresolved":true,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"void plugin_return_free(struct plugin_return *pr);"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"static inline int"},{"line_number":140,"context_line":"plugin_n(const struct plugin_list *pl)"},{"line_number":141,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"d8e529bf_070501d1","line":138,"updated":"2026-08-20 11:15:31.000000000","message":"This change now leaves two blank lines.","commit_id":"871b80b3d7079145d0bb580e6601b4e6791ac753"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"bb11e282eb06ffbf3c10ab0104263dceb9f8e3cf","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"void plugin_return_free(struct plugin_return *pr);"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"static inline int"},{"line_number":140,"context_line":"plugin_n(const struct plugin_list *pl)"},{"line_number":141,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"dab46727_e9d20d97","line":138,"in_reply_to":"d8e529bf_070501d1","updated":"2026-08-24 11:24:25.000000000","message":"Done","commit_id":"871b80b3d7079145d0bb580e6601b4e6791ac753"}]}
