)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"c1da80fbdc6a6796e849defdfd64d8c7247dfd41","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"4dead76f_e2d7060c","updated":"2025-04-14 19:21:32.000000000","message":"the change is extremely long, so not easy to comment to everything, but I threw a few concerns worth checking.","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0046e185200475ca98671ff12a9639846b2ed5d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"8036f8c4_1639efbf","updated":"2025-05-24 14:14:08.000000000","message":"Overall this is impressively good.  Some changes (struct opening bracket) should have been done all along :-) - others just make sense.  I have a few that I do not like and I think one actual bug in the ruleset (`do...while()` in buffer.c).","commit_id":"3e385b5259518bbd81828f5e26e59baa26208788"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"a5216ced27b45b01e842ca616190fa859d2eb08d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"4009ea3b_e9e2048b","updated":"2025-08-04 15:18:30.000000000","message":"So, reviewed most of this, and especially tested this on all the testbeds (nothing fails).  As agreed, move to \"ColumnLimit: 0\" afterwards with a cleanup patch, as the force-unwrapping by \"100\" creates ugliness and also \"surprising submit fails\" - we use common sense ;-)","commit_id":"3671210b95985dab8ec697b9f0d61d8389ad22c3"}],"sample/sample-plugins/client-connect/sample-client-connect.c":[{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"c1da80fbdc6a6796e849defdfd64d8c7247dfd41","unresolved":true,"context_lines":[{"line_number":132,"context_line":"    if (v3structver \u003c 5)"},{"line_number":133,"context_line":"    {"},{"line_number":134,"context_line":"        fprintf("},{"line_number":135,"context_line":"            stderr,"},{"line_number":136,"context_line":"            \"sample-client-connect: this plugin is incompatible with the running version of OpenVPN\\n\");"},{"line_number":137,"context_line":"        return OPENVPN_PLUGIN_FUNC_ERROR;"},{"line_number":138,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"c6e0d1ce_30cbe3ba","line":135,"updated":"2025-04-14 19:21:32.000000000","message":"this hurts me a bit, for two reasons:\n1) \"stderr,\" should just stay on the same line as fprintf, given that there is enough space;\n2) when going to a new line, I personally prefer to see the text aligned to the opening parenthesis.","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"ef5db63937b43b629b677cccbc499d87d8e5b470","unresolved":true,"context_lines":[{"line_number":132,"context_line":"    if (v3structver \u003c 5)"},{"line_number":133,"context_line":"    {"},{"line_number":134,"context_line":"        fprintf("},{"line_number":135,"context_line":"            stderr,"},{"line_number":136,"context_line":"            \"sample-client-connect: this plugin is incompatible with the running version of OpenVPN\\n\");"},{"line_number":137,"context_line":"        return OPENVPN_PLUGIN_FUNC_ERROR;"},{"line_number":138,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"1bf6c87b_4e6169ab","line":135,"in_reply_to":"c6e0d1ce_30cbe3ba","updated":"2025-04-16 11:47:43.000000000","message":"Not quite sure why it doesn\u0027t align to \"(\", it does for almost all other occurences. I think it might have a trade-off here between trying to align and trying to get the string in the colum limit.","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"c1da80fbdc6a6796e849defdfd64d8c7247dfd41","unresolved":true,"context_lines":[{"line_number":248,"context_line":"    if (!ccd_file)"},{"line_number":249,"context_line":"    {"},{"line_number":250,"context_line":"        plugin_log(PLOG_NOTE,"},{"line_number":251,"context_line":"                   MODULE,"},{"line_number":252,"context_line":"                   \"env has UV_WANT_CC_ASYNC\u003d%d, but \""},{"line_number":253,"context_line":"                   \"\u0027client_connect_deferred_file\u0027 not set -\u003e fail\","},{"line_number":254,"context_line":"                   seconds);"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"27a22e79_01461376","line":251,"updated":"2025-04-14 19:21:32.000000000","message":"same as above, I expected MODULE to be on the line above\n\nNOTE: I won\u0027t report any other occurrence of this in the rest of the patch","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"ef5db63937b43b629b677cccbc499d87d8e5b470","unresolved":true,"context_lines":[{"line_number":248,"context_line":"    if (!ccd_file)"},{"line_number":249,"context_line":"    {"},{"line_number":250,"context_line":"        plugin_log(PLOG_NOTE,"},{"line_number":251,"context_line":"                   MODULE,"},{"line_number":252,"context_line":"                   \"env has UV_WANT_CC_ASYNC\u003d%d, but \""},{"line_number":253,"context_line":"                   \"\u0027client_connect_deferred_file\u0027 not set -\u003e fail\","},{"line_number":254,"context_line":"                   seconds);"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"4cf494a4_79f7b8ce","line":251,"in_reply_to":"27a22e79_01461376","updated":"2025-04-16 11:47:43.000000000","message":"So basically what you want is \"BinPackArguments: true\", will apply that.","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"c55d0ae6f9cb3a123ec44bc983725e596dc1cbba","unresolved":false,"context_lines":[{"line_number":248,"context_line":"    if (!ccd_file)"},{"line_number":249,"context_line":"    {"},{"line_number":250,"context_line":"        plugin_log(PLOG_NOTE,"},{"line_number":251,"context_line":"                   MODULE,"},{"line_number":252,"context_line":"                   \"env has UV_WANT_CC_ASYNC\u003d%d, but \""},{"line_number":253,"context_line":"                   \"\u0027client_connect_deferred_file\u0027 not set -\u003e fail\","},{"line_number":254,"context_line":"                   seconds);"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"763d178b_37f47877","line":251,"in_reply_to":"4cf494a4_79f7b8ce","updated":"2025-04-16 13:48:29.000000000","message":"Done","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"c1da80fbdc6a6796e849defdfd64d8c7247dfd41","unresolved":true,"context_lines":[{"line_number":249,"context_line":"    {"},{"line_number":250,"context_line":"        plugin_log(PLOG_NOTE,"},{"line_number":251,"context_line":"                   MODULE,"},{"line_number":252,"context_line":"                   \"env has UV_WANT_CC_ASYNC\u003d%d, but \""},{"line_number":253,"context_line":"                   \"\u0027client_connect_deferred_file\u0027 not set -\u003e fail\","},{"line_number":254,"context_line":"                   seconds);"},{"line_number":255,"context_line":"        return OPENVPN_PLUGIN_FUNC_ERROR;"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"3682efec_128649c3","line":252,"updated":"2025-04-14 19:21:32.000000000","message":"here there is a more generic question to answer: do we want to keep string on the same line, even if they are too long?\nPro being that the casual reader could be reasonably able to grep an error message (with some magic, due to format patterns).","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"ef5db63937b43b629b677cccbc499d87d8e5b470","unresolved":true,"context_lines":[{"line_number":249,"context_line":"    {"},{"line_number":250,"context_line":"        plugin_log(PLOG_NOTE,"},{"line_number":251,"context_line":"                   MODULE,"},{"line_number":252,"context_line":"                   \"env has UV_WANT_CC_ASYNC\u003d%d, but \""},{"line_number":253,"context_line":"                   \"\u0027client_connect_deferred_file\u0027 not set -\u003e fail\","},{"line_number":254,"context_line":"                   seconds);"},{"line_number":255,"context_line":"        return OPENVPN_PLUGIN_FUNC_ERROR;"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"d9dba330_b8c72914","line":252,"in_reply_to":"3682efec_128649c3","updated":"2025-04-16 11:47:43.000000000","message":"Has nothing to do with this patch though, AFAICT","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"e23f9be397e5e68261279cb4a4ba0f310a2cafc9","unresolved":true,"context_lines":[{"line_number":249,"context_line":"    {"},{"line_number":250,"context_line":"        plugin_log(PLOG_NOTE,"},{"line_number":251,"context_line":"                   MODULE,"},{"line_number":252,"context_line":"                   \"env has UV_WANT_CC_ASYNC\u003d%d, but \""},{"line_number":253,"context_line":"                   \"\u0027client_connect_deferred_file\u0027 not set -\u003e fail\","},{"line_number":254,"context_line":"                   seconds);"},{"line_number":255,"context_line":"        return OPENVPN_PLUGIN_FUNC_ERROR;"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"cd08c6bb_0b6173ee","line":252,"in_reply_to":"d9dba330_b8c72914","updated":"2025-04-16 11:52:42.000000000","message":"You\u0027re right. I thought it was the right moment to trigger the discussion, so we can possibly find a clang-format option that addresses this.","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"}],"sample/sample-plugins/defer/multi-auth.c":[{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"c1da80fbdc6a6796e849defdfd64d8c7247dfd41","unresolved":true,"context_lines":[{"line_number":264,"context_line":"    plog(context,"},{"line_number":265,"context_line":"         PLOG_NOTE,"},{"line_number":266,"context_line":"         \"expect_user\u003d%s, received_user\u003d%s, expect_passw\u003d%s, received_passw\u003d%s\","},{"line_number":267,"context_line":"         np(context-\u003etest_valid_user),"},{"line_number":268,"context_line":"         np(username),"},{"line_number":269,"context_line":"         np(context-\u003etest_valid_pass),"},{"line_number":270,"context_line":"         np(password));"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"e5889e88_f1a4caaa","line":267,"updated":"2025-04-14 19:21:32.000000000","message":"I\u0027d vote for putting these arguments on the same line, if there is enough space.","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"c55d0ae6f9cb3a123ec44bc983725e596dc1cbba","unresolved":false,"context_lines":[{"line_number":264,"context_line":"    plog(context,"},{"line_number":265,"context_line":"         PLOG_NOTE,"},{"line_number":266,"context_line":"         \"expect_user\u003d%s, received_user\u003d%s, expect_passw\u003d%s, received_passw\u003d%s\","},{"line_number":267,"context_line":"         np(context-\u003etest_valid_user),"},{"line_number":268,"context_line":"         np(username),"},{"line_number":269,"context_line":"         np(context-\u003etest_valid_pass),"},{"line_number":270,"context_line":"         np(password));"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"e720aaa5_9dff2c4a","line":267,"in_reply_to":"e5889e88_f1a4caaa","updated":"2025-04-16 13:48:29.000000000","message":"Done","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"c1da80fbdc6a6796e849defdfd64d8c7247dfd41","unresolved":true,"context_lines":[{"line_number":291,"context_line":"auth_user_pass_verify(struct plugin_context *context,"},{"line_number":292,"context_line":"                      struct plugin_per_client_context *pcc,"},{"line_number":293,"context_line":"                      const char *argv[],"},{"line_number":294,"context_line":"                      const char *envp[])"},{"line_number":295,"context_line":"{"},{"line_number":296,"context_line":"    /* get username/password from envp string array */"},{"line_number":297,"context_line":"    const char *username \u003d get_env(\"username\", envp);"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"8f6e4102_5edbebdb","line":294,"updated":"2025-04-14 19:21:32.000000000","message":"ratio behind this change? one arg per line?","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"f53c2c541de5315f40c938c38da379c6af6a3e96","unresolved":true,"context_lines":[{"line_number":291,"context_line":"auth_user_pass_verify(struct plugin_context *context,"},{"line_number":292,"context_line":"                      struct plugin_per_client_context *pcc,"},{"line_number":293,"context_line":"                      const char *argv[],"},{"line_number":294,"context_line":"                      const char *envp[])"},{"line_number":295,"context_line":"{"},{"line_number":296,"context_line":"    /* get username/password from envp string array */"},{"line_number":297,"context_line":"    const char *username \u003d get_env(\"username\", envp);"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"d4a601b3_b1efe856","line":294,"in_reply_to":"6b1aef69_72e254a0","updated":"2025-04-16 13:55:23.000000000","message":"I disagree. Note that when setting BinPackParameters to true this will apply to all functions and all parameters. I think in general if the parameters to do fit on one line, it is better to put them one per line. Let\u0027s see what others think.","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"e23f9be397e5e68261279cb4a4ba0f310a2cafc9","unresolved":true,"context_lines":[{"line_number":291,"context_line":"auth_user_pass_verify(struct plugin_context *context,"},{"line_number":292,"context_line":"                      struct plugin_per_client_context *pcc,"},{"line_number":293,"context_line":"                      const char *argv[],"},{"line_number":294,"context_line":"                      const char *envp[])"},{"line_number":295,"context_line":"{"},{"line_number":296,"context_line":"    /* get username/password from envp string array */"},{"line_number":297,"context_line":"    const char *username \u003d get_env(\"username\", envp);"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"6b1aef69_72e254a0","line":294,"in_reply_to":"8b72fd16_d619cd73","updated":"2025-04-16 11:52:42.000000000","message":"I think we should. It will also make BinPackParameters consistent with BinPackArguments","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"ef5db63937b43b629b677cccbc499d87d8e5b470","unresolved":true,"context_lines":[{"line_number":291,"context_line":"auth_user_pass_verify(struct plugin_context *context,"},{"line_number":292,"context_line":"                      struct plugin_per_client_context *pcc,"},{"line_number":293,"context_line":"                      const char *argv[],"},{"line_number":294,"context_line":"                      const char *envp[])"},{"line_number":295,"context_line":"{"},{"line_number":296,"context_line":"    /* get username/password from envp string array */"},{"line_number":297,"context_line":"    const char *username \u003d get_env(\"username\", envp);"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"8b72fd16_d619cd73","line":294,"in_reply_to":"8f6e4102_5edbebdb","updated":"2025-04-16 11:47:43.000000000","message":"yes. This is BinPackParameters. Do you also want that set to \"true\"?","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"9db437bb52e6d00243cab9f99c122c11d06bbb08","unresolved":false,"context_lines":[{"line_number":291,"context_line":"auth_user_pass_verify(struct plugin_context *context,"},{"line_number":292,"context_line":"                      struct plugin_per_client_context *pcc,"},{"line_number":293,"context_line":"                      const char *argv[],"},{"line_number":294,"context_line":"                      const char *envp[])"},{"line_number":295,"context_line":"{"},{"line_number":296,"context_line":"    /* get username/password from envp string array */"},{"line_number":297,"context_line":"    const char *username \u003d get_env(\"username\", envp);"}],"source_content_type":"text/x-csrc","patch_set":14,"id":"86c264e5_529758c0","line":294,"in_reply_to":"d4a601b3_b1efe856","updated":"2025-04-30 13:04:34.000000000","message":"BinPackParameter is set to true now after cron2 agreed with you.","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"c1da80fbdc6a6796e849defdfd64d8c7247dfd41","unresolved":true,"context_lines":[{"line_number":415,"context_line":"openvpn_plugin_client_constructor_v1(openvpn_plugin_handle_t handle)"},{"line_number":416,"context_line":"{"},{"line_number":417,"context_line":"    struct plugin_context *context \u003d (struct plugin_context *)handle;"},{"line_number":418,"context_line":"    plog(context, PLOG_NOTE, \"FUNC: openvpn_plugin_client_constructor_v1\");"},{"line_number":419,"context_line":"    return calloc(1, sizeof(struct plugin_per_client_context));"},{"line_number":420,"context_line":"}"},{"line_number":421,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":14,"id":"99dbd0d9_8682fdd3","line":418,"updated":"2025-04-14 19:21:32.000000000","message":"how about forcing a new line after variables declaration?","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"ef5db63937b43b629b677cccbc499d87d8e5b470","unresolved":true,"context_lines":[{"line_number":415,"context_line":"openvpn_plugin_client_constructor_v1(openvpn_plugin_handle_t handle)"},{"line_number":416,"context_line":"{"},{"line_number":417,"context_line":"    struct plugin_context *context \u003d (struct plugin_context *)handle;"},{"line_number":418,"context_line":"    plog(context, PLOG_NOTE, \"FUNC: openvpn_plugin_client_constructor_v1\");"},{"line_number":419,"context_line":"    return calloc(1, sizeof(struct plugin_per_client_context));"},{"line_number":420,"context_line":"}"},{"line_number":421,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":14,"id":"d94e4661_457ff043","line":418,"in_reply_to":"99dbd0d9_8682fdd3","updated":"2025-04-16 11:47:43.000000000","message":"Doesn\u0027t seem to be supported. There is a feature request for it: https://github.com/llvm/llvm-project/issues/97303","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"c55d0ae6f9cb3a123ec44bc983725e596dc1cbba","unresolved":false,"context_lines":[{"line_number":415,"context_line":"openvpn_plugin_client_constructor_v1(openvpn_plugin_handle_t handle)"},{"line_number":416,"context_line":"{"},{"line_number":417,"context_line":"    struct plugin_context *context \u003d (struct plugin_context *)handle;"},{"line_number":418,"context_line":"    plog(context, PLOG_NOTE, \"FUNC: openvpn_plugin_client_constructor_v1\");"},{"line_number":419,"context_line":"    return calloc(1, sizeof(struct plugin_per_client_context));"},{"line_number":420,"context_line":"}"},{"line_number":421,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":14,"id":"6d71e7fc_faa3fc2d","line":418,"in_reply_to":"d94e4661_457ff043","updated":"2025-04-16 13:48:29.000000000","message":"Acknowledged","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"}],"sample/sample-plugins/log/log_v3.c":[{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"c1da80fbdc6a6796e849defdfd64d8c7247dfd41","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    if (v3structver !\u003d OPENVPN_PLUGINv3_STRUCTVER)"},{"line_number":85,"context_line":"    {"},{"line_number":86,"context_line":"        printf("},{"line_number":87,"context_line":"            \"log_v3: ** ERROR ** Incompatible plug-in interface between this plug-in and OpenVPN\\n\");"},{"line_number":88,"context_line":"        return OPENVPN_PLUGIN_FUNC_ERROR;"},{"line_number":89,"context_line":"    }"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":14,"id":"c1025c39_05185d3b","line":87,"updated":"2025-04-14 19:21:32.000000000","message":"this is probably another instance of the same situation as before.","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"ef5db63937b43b629b677cccbc499d87d8e5b470","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    if (v3structver !\u003d OPENVPN_PLUGINv3_STRUCTVER)"},{"line_number":85,"context_line":"    {"},{"line_number":86,"context_line":"        printf("},{"line_number":87,"context_line":"            \"log_v3: ** ERROR ** Incompatible plug-in interface between this plug-in and OpenVPN\\n\");"},{"line_number":88,"context_line":"        return OPENVPN_PLUGIN_FUNC_ERROR;"},{"line_number":89,"context_line":"    }"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":14,"id":"c9c800e4_6ecdeccd","line":87,"in_reply_to":"c1025c39_05185d3b","updated":"2025-04-16 11:47:43.000000000","message":"yes","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"c55d0ae6f9cb3a123ec44bc983725e596dc1cbba","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    if (v3structver !\u003d OPENVPN_PLUGINv3_STRUCTVER)"},{"line_number":85,"context_line":"    {"},{"line_number":86,"context_line":"        printf("},{"line_number":87,"context_line":"            \"log_v3: ** ERROR ** Incompatible plug-in interface between this plug-in and OpenVPN\\n\");"},{"line_number":88,"context_line":"        return OPENVPN_PLUGIN_FUNC_ERROR;"},{"line_number":89,"context_line":"    }"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":14,"id":"5a59375c_600cff63","line":87,"in_reply_to":"c9c800e4_6ecdeccd","updated":"2025-04-16 13:48:29.000000000","message":"Acknowledged","commit_id":"7f92c956c1419dbbc6708240ce6194d3dfad4ed1"}],"src/openvpn/buffer.c":[{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0046e185200475ca98671ff12a9639846b2ed5d0","unresolved":true,"context_lines":[{"line_number":847,"context_line":"            break;"},{"line_number":848,"context_line":"        }"},{"line_number":849,"context_line":"        line[n++] \u003d (char)c;"},{"line_number":850,"context_line":"    } while (c);"},{"line_number":851,"context_line":""},{"line_number":852,"context_line":"    line[size - 1] \u003d \u0027\\0\u0027;"},{"line_number":853,"context_line":"    return !(eol \u0026\u0026 !strlen(line));"}],"source_content_type":"text/x-csrc","patch_set":18,"id":"e228108e_a877cddf","line":850,"updated":"2025-05-24 14:14:08.000000000","message":"it should not do that","commit_id":"3e385b5259518bbd81828f5e26e59baa26208788"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"039123843a4f42e1864f4313b2b64ffb3c27a86a","unresolved":false,"context_lines":[{"line_number":847,"context_line":"            break;"},{"line_number":848,"context_line":"        }"},{"line_number":849,"context_line":"        line[n++] \u003d (char)c;"},{"line_number":850,"context_line":"    } while (c);"},{"line_number":851,"context_line":""},{"line_number":852,"context_line":"    line[size - 1] \u003d \u0027\\0\u0027;"},{"line_number":853,"context_line":"    return !(eol \u0026\u0026 !strlen(line));"}],"source_content_type":"text/x-csrc","patch_set":18,"id":"5fa573c3_de511cf1","line":850,"in_reply_to":"6892fcb6_41f2daaf","updated":"2025-05-26 10:40:42.000000000","message":"As discussed on IRC this is actually correct for our current formatting.","commit_id":"3e385b5259518bbd81828f5e26e59baa26208788"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"84229678ef8ca7dd8c42558da105529b6c410592","unresolved":true,"context_lines":[{"line_number":847,"context_line":"            break;"},{"line_number":848,"context_line":"        }"},{"line_number":849,"context_line":"        line[n++] \u003d (char)c;"},{"line_number":850,"context_line":"    } while (c);"},{"line_number":851,"context_line":""},{"line_number":852,"context_line":"    line[size - 1] \u003d \u0027\\0\u0027;"},{"line_number":853,"context_line":"    return !(eol \u0026\u0026 !strlen(line));"}],"source_content_type":"text/x-csrc","patch_set":18,"id":"6892fcb6_41f2daaf","line":850,"in_reply_to":"e228108e_a877cddf","updated":"2025-05-26 09:54:45.000000000","message":"Why?","commit_id":"3e385b5259518bbd81828f5e26e59baa26208788"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0046e185200475ca98671ff12a9639846b2ed5d0","unresolved":true,"context_lines":[{"line_number":912,"context_line":"    }"},{"line_number":913,"context_line":"    if ((flags \u0026 CC_PRINT)"},{"line_number":914,"context_line":"        \u0026\u0026 (c \u003e\u003d 32"},{"line_number":915,"context_line":"            \u0026\u0026 c !\u003d 127)) /* allow ascii non-control and UTF-8, consider DEL to be a control */"},{"line_number":916,"context_line":"    {"},{"line_number":917,"context_line":"        return true;"},{"line_number":918,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":18,"id":"450ac52e_57fa1b4a","line":915,"updated":"2025-05-24 14:14:08.000000000","message":"this is ugly, but I guess the best way to fix it is to manually move the comment before the if() line","commit_id":"3e385b5259518bbd81828f5e26e59baa26208788"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"039123843a4f42e1864f4313b2b64ffb3c27a86a","unresolved":false,"context_lines":[{"line_number":912,"context_line":"    }"},{"line_number":913,"context_line":"    if ((flags \u0026 CC_PRINT)"},{"line_number":914,"context_line":"        \u0026\u0026 (c \u003e\u003d 32"},{"line_number":915,"context_line":"            \u0026\u0026 c !\u003d 127)) /* allow ascii non-control and UTF-8, consider DEL to be a control */"},{"line_number":916,"context_line":"    {"},{"line_number":917,"context_line":"        return true;"},{"line_number":918,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":18,"id":"5173a895_ec42235c","line":915,"in_reply_to":"18dc39e2_b722d6bf","updated":"2025-05-26 10:40:42.000000000","message":"Done in separate commit.","commit_id":"3e385b5259518bbd81828f5e26e59baa26208788"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"84229678ef8ca7dd8c42558da105529b6c410592","unresolved":true,"context_lines":[{"line_number":912,"context_line":"    }"},{"line_number":913,"context_line":"    if ((flags \u0026 CC_PRINT)"},{"line_number":914,"context_line":"        \u0026\u0026 (c \u003e\u003d 32"},{"line_number":915,"context_line":"            \u0026\u0026 c !\u003d 127)) /* allow ascii non-control and UTF-8, consider DEL to be a control */"},{"line_number":916,"context_line":"    {"},{"line_number":917,"context_line":"        return true;"},{"line_number":918,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":18,"id":"18dc39e2_b722d6bf","line":915,"in_reply_to":"450ac52e_57fa1b4a","updated":"2025-05-26 09:54:45.000000000","message":"Yes.","commit_id":"3e385b5259518bbd81828f5e26e59baa26208788"}],"src/openvpn/comp.h":[{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0046e185200475ca98671ff12a9639846b2ed5d0","unresolved":true,"context_lines":[{"line_number":90,"context_line":" * flags of allow-compression and also the whether algorithms are compiled"},{"line_number":91,"context_line":" * in"},{"line_number":92,"context_line":" */"},{"line_number":93,"context_line":"bool check_compression_settings_valid(struct compress_options *info, int msglevel);"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"#ifdef USE_COMP"},{"line_number":96,"context_line":"#include \"buffer.h\""}],"source_content_type":"text/x-csrc","patch_set":18,"id":"07c11cf5_a35c47d6","line":93,"updated":"2025-05-24 14:14:08.000000000","message":"this is one of the changes I\u0027m not sure we want - having the return type on the line before gives us more line length for the actual prototype, and also it eases \"grep ^function\" to find prototype + function implementation (my use case, which I could certainly solve differently)","commit_id":"3e385b5259518bbd81828f5e26e59baa26208788"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"039123843a4f42e1864f4313b2b64ffb3c27a86a","unresolved":false,"context_lines":[{"line_number":90,"context_line":" * flags of allow-compression and also the whether algorithms are compiled"},{"line_number":91,"context_line":" * in"},{"line_number":92,"context_line":" */"},{"line_number":93,"context_line":"bool check_compression_settings_valid(struct compress_options *info, int msglevel);"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"#ifdef USE_COMP"},{"line_number":96,"context_line":"#include \"buffer.h\""}],"source_content_type":"text/x-csrc","patch_set":18,"id":"ca6252bf_a8b50dfe","line":93,"in_reply_to":"07c11cf5_a35c47d6","updated":"2025-05-26 10:40:42.000000000","message":"As discussed in IRC this is consistent with what we have. Switched the .clang-format to use \"AllDefinitions\" instead which doesn\u0027t change anything but better matches our policy.","commit_id":"3e385b5259518bbd81828f5e26e59baa26208788"}],"src/openvpn/console_builtin.c":[{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"0046e185200475ca98671ff12a9639846b2ed5d0","unresolved":true,"context_lines":[{"line_number":71,"context_line":"    if ((in \u003d\u003d INVALID_HANDLE_VALUE) || win32_service_interrupt(\u0026win32_signal)"},{"line_number":72,"context_line":"        || (_write(orig_stderr, prompt, strlen(prompt)) \u003d\u003d -1))"},{"line_number":73,"context_line":"    {"},{"line_number":74,"context_line":"        msg(M_WARN | M_ERRNO, \"get_console_input_win32(): unexpected error\");"},{"line_number":75,"context_line":"        return false;"},{"line_number":76,"context_line":"    }"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":18,"id":"ecc1640a_115b4d7b","line":74,"updated":"2025-05-24 14:14:08.000000000","message":"the extra spaces around `foo|bar` are not really to my liking (\"this belongs together\" vibes)","commit_id":"3e385b5259518bbd81828f5e26e59baa26208788"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"039123843a4f42e1864f4313b2b64ffb3c27a86a","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    if ((in \u003d\u003d INVALID_HANDLE_VALUE) || win32_service_interrupt(\u0026win32_signal)"},{"line_number":72,"context_line":"        || (_write(orig_stderr, prompt, strlen(prompt)) \u003d\u003d -1))"},{"line_number":73,"context_line":"    {"},{"line_number":74,"context_line":"        msg(M_WARN | M_ERRNO, \"get_console_input_win32(): unexpected error\");"},{"line_number":75,"context_line":"        return false;"},{"line_number":76,"context_line":"    }"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":18,"id":"9b83c0b1_41c7cd5f","line":74,"in_reply_to":"e785d1b2_41139a46","updated":"2025-05-26 10:40:42.000000000","message":"Done","commit_id":"3e385b5259518bbd81828f5e26e59baa26208788"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"84229678ef8ca7dd8c42558da105529b6c410592","unresolved":true,"context_lines":[{"line_number":71,"context_line":"    if ((in \u003d\u003d INVALID_HANDLE_VALUE) || win32_service_interrupt(\u0026win32_signal)"},{"line_number":72,"context_line":"        || (_write(orig_stderr, prompt, strlen(prompt)) \u003d\u003d -1))"},{"line_number":73,"context_line":"    {"},{"line_number":74,"context_line":"        msg(M_WARN | M_ERRNO, \"get_console_input_win32(): unexpected error\");"},{"line_number":75,"context_line":"        return false;"},{"line_number":76,"context_line":"    }"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":18,"id":"e785d1b2_41139a46","line":74,"in_reply_to":"ecc1640a_115b4d7b","updated":"2025-05-26 09:54:45.000000000","message":"Interestingly one of the things we can\u0027t configure in clang-format. The space around binary operators is not optional.","commit_id":"3e385b5259518bbd81828f5e26e59baa26208788"}],"src/openvpn/crypto.c":[{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"a5216ced27b45b01e842ca616190fa859d2eb08d","unresolved":true,"context_lines":[{"line_number":388,"context_line":"        msg(D_GENKEY,"},{"line_number":389,"context_line":"            \"Received data packet with new epoch %d. Updating \""},{"line_number":390,"context_line":"            \"receive key\","},{"line_number":391,"context_line":"            epoch);"},{"line_number":392,"context_line":"        epoch_replace_update_recv_key(opt, epoch);"},{"line_number":393,"context_line":"        recv \u003d \u0026opt-\u003epacket_id.rec;"},{"line_number":394,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":18,"id":"9105cd07_6cc952af","line":391,"updated":"2025-08-04 15:18:30.000000000","message":"not sure what happened here...","commit_id":"3e385b5259518bbd81828f5e26e59baa26208788"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"a5216ced27b45b01e842ca616190fa859d2eb08d","unresolved":true,"context_lines":[{"line_number":1601,"context_line":"            \"Key file \u0027%s\u0027 used in --%s contains insufficient key material [keys found\u003d%d required\u003d%d]\","},{"line_number":1602,"context_line":"            filename, option, key2-\u003en, n);"},{"line_number":1603,"context_line":"#else"},{"line_number":1604,"context_line":"        msg(M_FATAL,"},{"line_number":1605,"context_line":"            \"Key file \u0027%s\u0027 used in --%s contains insufficient key material [keys found\u003d%d required\u003d%d] -- try generating a new key file with \u0027\" PACKAGE"},{"line_number":1606,"context_line":"            \" --genkey secret [file]\u0027, or use the existing key file in bidirectional mode by specifying --%s without a key direction parameter\","},{"line_number":1607,"context_line":"            filename, option, key2-\u003en, n, option);"}],"source_content_type":"text/x-csrc","patch_set":18,"id":"ce26f764_3092ba12","line":1604,"updated":"2025-08-04 15:18:30.000000000","message":"this is another one where the result is uglier than the start... maybe it needs manual breaking of the string so it can fit \"properly\" in 2 lines","commit_id":"3e385b5259518bbd81828f5e26e59baa26208788"}]}
