)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"9f894d1fb12bed9522c5091738e14aa4cb10a404","unresolved":true,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2024-02-02 13:46:50 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement support for AEAD tag at the end"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I00821d75342daf3f813b829812d648fe298bea81"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1c8aa1ad_cba5214d","line":8,"updated":"2024-02-05 11:46:43.000000000","message":"Maybe some motivation?","commit_id":"3e6eebb21a2e9cdd3c7ef00a427f17330df707b3"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"602a3af91576b711eb74eefadd5711c7ed22b65d","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2024-02-02 13:46:50 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement support for AEAD tag at the end"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I00821d75342daf3f813b829812d648fe298bea81"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"008126a3_c9aca210","line":8,"in_reply_to":"1c8aa1ad_cba5214d","updated":"2024-02-09 14:59:38.000000000","message":"Done","commit_id":"3e6eebb21a2e9cdd3c7ef00a427f17330df707b3"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"9f894d1fb12bed9522c5091738e14aa4cb10a404","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement support for AEAD tag at the end"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I00821d75342daf3f813b829812d648fe298bea81"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a5c437c_30f55a3a","line":9,"updated":"2024-02-05 11:46:43.000000000","message":"Missing sign-off","commit_id":"3e6eebb21a2e9cdd3c7ef00a427f17330df707b3"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"602a3af91576b711eb74eefadd5711c7ed22b65d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement support for AEAD tag at the end"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I00821d75342daf3f813b829812d648fe298bea81"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"529bb2f4_83e37dd3","line":9,"in_reply_to":"3a5c437c_30f55a3a","updated":"2024-02-09 14:59:38.000000000","message":"Done","commit_id":"3e6eebb21a2e9cdd3c7ef00a427f17330df707b3"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"9f894d1fb12bed9522c5091738e14aa4cb10a404","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ca3f2ad3_ca04cdcc","updated":"2024-02-05 11:46:43.000000000","message":"Makes sense to me, but needs some cleanup","commit_id":"3e6eebb21a2e9cdd3c7ef00a427f17330df707b3"},{"author":{"_account_id":1000035,"name":"Steffan Karger","display_name":"Steffan Karger","email":"steffan@karger.me","username":"syzzer","status":"Commits and comments are my own views, not those of my employer."},"change_message_id":"b20330df24cace162b4238bc830ef619ab73314a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"378e26da_a814ef11","updated":"2024-04-12 20:01:02.000000000","message":"I have always supported to place the tag at the end. It\u0027s easier to manage in hardware, is common practice and has no security impact.\n\nThe only real reservation I have is whether this should be combined with other protocol changes to prevent an explosion of possible wire formats. For example with a longer on-the-wire IV. Combining these would results in 2 possible AEAD wire formats, instead of 4. (Or 8, if there are plans for a longer peer-id, but not sure if that was just a typo in v1 or actually planned).\n\n(And then there are a few nits, see comments.)","commit_id":"25372beb9f29e62c62925233163f8e149ba1f410"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"430119cd96890559a5ddc046c2fb9604f2acd852","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a145c381_31979082","in_reply_to":"378e26da_a814ef11","updated":"2024-04-29 14:27:00.000000000","message":"I can change the signalling to only support combining both but I don\u0027t think this will change much in the terms of code complexity","commit_id":"25372beb9f29e62c62925233163f8e149ba1f410"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"814ea5a5e944cf9b90bcb05f5e0052ea4303e3c0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9fbe75cd_d5aedd30","in_reply_to":"a145c381_31979082","updated":"2024-04-29 15:51:33.000000000","message":"I added a check that openvpn will not accept only of the options being enabled in protocol-flags","commit_id":"25372beb9f29e62c62925233163f8e149ba1f410"},{"author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"1ac81f04300e3a318189fb00555dcd19d2dda406","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"03d91027_d5af285a","updated":"2024-07-31 11:42:16.000000000","message":"Apart from one comment-related nit-pick, I couldn\u0027t find anything wrong. I am planning to test this soonish with dco-win + data_v3.","commit_id":"e14e38d3e7d9bf8c056dc66a558a7f45db7567f8"},{"author":{"_account_id":1000035,"name":"Steffan Karger","display_name":"Steffan Karger","email":"steffan@karger.me","username":"syzzer","status":"Commits and comments are my own views, not those of my employer."},"change_message_id":"6f8a513133f7628af4b7564935fe34caad311af9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ac23734c_8c6bad39","updated":"2026-10-13 18:26:38.000000000","message":"Closing old open comments.","commit_id":"233e10aeec7de02d34fa5c517b44612d38ccc00f"}],"src/openvpn/crypto.c":[{"author":{"_account_id":1000035,"name":"Steffan Karger","display_name":"Steffan Karger","email":"steffan@karger.me","username":"syzzer","status":"Commits and comments are my own views, not those of my employer."},"change_message_id":"b20330df24cace162b4238bc830ef619ab73314a","unresolved":true,"context_lines":[{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    const int ad_size \u003d BPTR(buf) - ad_start;"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    uint8_t *tag_ptr \u003d NULL;"},{"line_number":427,"context_line":"    int data_len \u003d 0;"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    if (opt-\u003eflags \u0026 CO_AEAD_TAG_AT_THE_END)"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"6e399d5e_d094230c","line":426,"updated":"2024-04-12 20:01:02.000000000","message":"Not sure if the current static analyzers are smart enough to detect that these (non-const) variables are not used inside the error_exit label, but they used to complain about jumping over an initialization. (What CRYPTO_ERROR above does.)","commit_id":"98b5efa86ad1b6d5e08f48262045439467744be3"},{"author":{"_account_id":1000035,"name":"Steffan Karger","display_name":"Steffan Karger","email":"steffan@karger.me","username":"syzzer","status":"Commits and comments are my own views, not those of my employer."},"change_message_id":"6f8a513133f7628af4b7564935fe34caad311af9","unresolved":false,"context_lines":[{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    const int ad_size \u003d BPTR(buf) - ad_start;"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    uint8_t *tag_ptr \u003d NULL;"},{"line_number":427,"context_line":"    int data_len \u003d 0;"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    if (opt-\u003eflags \u0026 CO_AEAD_TAG_AT_THE_END)"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"456fc94e_df3b137d","line":426,"in_reply_to":"6e399d5e_d094230c","updated":"2026-10-13 18:26:38.000000000","message":"Done","commit_id":"98b5efa86ad1b6d5e08f48262045439467744be3"},{"author":{"_account_id":1000035,"name":"Steffan Karger","display_name":"Steffan Karger","email":"steffan@karger.me","username":"syzzer","status":"Commits and comments are my own views, not those of my employer."},"change_message_id":"b20330df24cace162b4238bc830ef619ab73314a","unresolved":true,"context_lines":[{"line_number":460,"context_line":"        CRYPT_ERROR(\"cipher update failed\");"},{"line_number":461,"context_line":"    }"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"    ASSERT(buf_inc_len(\u0026work, outlen));"},{"line_number":464,"context_line":"    if (!cipher_ctx_final_check_tag(ctx-\u003ecipher, BPTR(\u0026work) + outlen,"},{"line_number":465,"context_line":"                                    \u0026outlen, tag_ptr, tag_size))"},{"line_number":466,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"281413d5_d34e727f","line":463,"updated":"2024-04-12 20:01:02.000000000","message":"Good to add a newline to visually separate the decryption from the authentication, but the buf_inc_len belongs to the decryption bit, right? Not the authentication bit.","commit_id":"98b5efa86ad1b6d5e08f48262045439467744be3"},{"author":{"_account_id":1000035,"name":"Steffan Karger","display_name":"Steffan Karger","email":"steffan@karger.me","username":"syzzer","status":"Commits and comments are my own views, not those of my employer."},"change_message_id":"6f8a513133f7628af4b7564935fe34caad311af9","unresolved":false,"context_lines":[{"line_number":460,"context_line":"        CRYPT_ERROR(\"cipher update failed\");"},{"line_number":461,"context_line":"    }"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"    ASSERT(buf_inc_len(\u0026work, outlen));"},{"line_number":464,"context_line":"    if (!cipher_ctx_final_check_tag(ctx-\u003ecipher, BPTR(\u0026work) + outlen,"},{"line_number":465,"context_line":"                                    \u0026outlen, tag_ptr, tag_size))"},{"line_number":466,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"2abddffa_1703a3ee","line":463,"in_reply_to":"281413d5_d34e727f","updated":"2026-10-13 18:26:38.000000000","message":"Done","commit_id":"98b5efa86ad1b6d5e08f48262045439467744be3"}],"src/openvpn/ssl.h":[{"author":{"_account_id":1000035,"name":"Steffan Karger","display_name":"Steffan Karger","email":"steffan@karger.me","username":"syzzer","status":"Commits and comments are my own views, not those of my employer."},"change_message_id":"b20330df24cace162b4238bc830ef619ab73314a","unresolved":true,"context_lines":[{"line_number":108,"context_line":"#define IV_PROTO_DYN_TLS_CRYPT   (1\u003c\u003c9)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"/** Suport for the AEAD tag at the end a larger peer id and IV */"},{"line_number":111,"context_line":"#define IV_PROTO_DATA_V3        (1\u003c\u003c10)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"/* Default field in X509 to be username */"},{"line_number":114,"context_line":"#define X509_USERNAME_FIELD_DEFAULT \"CN\""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"9b25b8a6_547ed983","line":111,"updated":"2024-04-12 20:01:02.000000000","message":"This means that this commit can only go in together with commits for a larger peer id and larger IV, right?","commit_id":"98b5efa86ad1b6d5e08f48262045439467744be3"},{"author":{"_account_id":1000035,"name":"Steffan Karger","display_name":"Steffan Karger","email":"steffan@karger.me","username":"syzzer","status":"Commits and comments are my own views, not those of my employer."},"change_message_id":"6f8a513133f7628af4b7564935fe34caad311af9","unresolved":false,"context_lines":[{"line_number":108,"context_line":"#define IV_PROTO_DYN_TLS_CRYPT   (1\u003c\u003c9)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"/** Suport for the AEAD tag at the end a larger peer id and IV */"},{"line_number":111,"context_line":"#define IV_PROTO_DATA_V3        (1\u003c\u003c10)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"/* Default field in X509 to be username */"},{"line_number":114,"context_line":"#define X509_USERNAME_FIELD_DEFAULT \"CN\""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"36ee5594_435289d1","line":111,"in_reply_to":"9b25b8a6_547ed983","updated":"2026-10-13 18:26:38.000000000","message":"Done","commit_id":"98b5efa86ad1b6d5e08f48262045439467744be3"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"9f894d1fb12bed9522c5091738e14aa4cb10a404","unresolved":true,"context_lines":[{"line_number":107,"context_line":"/** Support to dynamic tls-crypt (renegotiation with TLS-EKM derived tls-crypt key) */"},{"line_number":108,"context_line":"#define IV_PROTO_DYN_TLS_CRYPT   (1\u003c\u003c9)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"/** Suport for the AEAD tag at the end a larger peer id and IV */"},{"line_number":111,"context_line":"#define IV_PROTO_DATA_V3        (1\u003c\u003c10)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"/* Default field in X509 to be username */"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"b447119b_b157eadb","line":110,"updated":"2024-02-05 11:46:43.000000000","message":"\"a\" -\u003e \"and\"","commit_id":"3e6eebb21a2e9cdd3c7ef00a427f17330df707b3"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"602a3af91576b711eb74eefadd5711c7ed22b65d","unresolved":false,"context_lines":[{"line_number":107,"context_line":"/** Support to dynamic tls-crypt (renegotiation with TLS-EKM derived tls-crypt key) */"},{"line_number":108,"context_line":"#define IV_PROTO_DYN_TLS_CRYPT   (1\u003c\u003c9)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"/** Suport for the AEAD tag at the end a larger peer id and IV */"},{"line_number":111,"context_line":"#define IV_PROTO_DATA_V3        (1\u003c\u003c10)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"/* Default field in X509 to be username */"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"42ec6996_93fc2b0d","line":110,"in_reply_to":"b447119b_b157eadb","updated":"2024-02-09 14:59:38.000000000","message":"Done","commit_id":"3e6eebb21a2e9cdd3c7ef00a427f17330df707b3"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"9f894d1fb12bed9522c5091738e14aa4cb10a404","unresolved":true,"context_lines":[{"line_number":108,"context_line":"#define IV_PROTO_DYN_TLS_CRYPT   (1\u003c\u003c9)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"/** Suport for the AEAD tag at the end a larger peer id and IV */"},{"line_number":111,"context_line":"#define IV_PROTO_DATA_V3        (1\u003c\u003c10)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"/* Default field in X509 to be username */"},{"line_number":114,"context_line":"#define X509_USERNAME_FIELD_DEFAULT \"CN\""}],"source_content_type":"text/x-csrc","patch_set":2,"id":"a84daf75_4a3a415b","line":111,"updated":"2024-02-05 11:46:43.000000000","message":"This define seems unused in the current patch?","commit_id":"3e6eebb21a2e9cdd3c7ef00a427f17330df707b3"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"602a3af91576b711eb74eefadd5711c7ed22b65d","unresolved":false,"context_lines":[{"line_number":108,"context_line":"#define IV_PROTO_DYN_TLS_CRYPT   (1\u003c\u003c9)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"/** Suport for the AEAD tag at the end a larger peer id and IV */"},{"line_number":111,"context_line":"#define IV_PROTO_DATA_V3        (1\u003c\u003c10)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"/* Default field in X509 to be username */"},{"line_number":114,"context_line":"#define X509_USERNAME_FIELD_DEFAULT \"CN\""}],"source_content_type":"text/x-csrc","patch_set":2,"id":"c4efc0b2_472126be","line":111,"in_reply_to":"a84daf75_4a3a415b","updated":"2024-02-09 14:59:38.000000000","message":"Done","commit_id":"3e6eebb21a2e9cdd3c7ef00a427f17330df707b3"}],"tests/unit_tests/openvpn/test_ssl.c":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"9f894d1fb12bed9522c5091738e14aa4cb10a404","unresolved":true,"context_lines":[{"line_number":266,"context_line":"}"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"/* This adds a few more methods that strictly necessary but this allows"},{"line_number":270,"context_line":" * us to see which exact test was run from the backtrace of the test"},{"line_number":271,"context_line":" * when it fails */"},{"line_number":272,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":2,"id":"f618ebc3_e68399f8","line":269,"updated":"2024-02-05 11:46:43.000000000","message":"\"that\" -\u003e \"than\"?","commit_id":"3e6eebb21a2e9cdd3c7ef00a427f17330df707b3"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"602a3af91576b711eb74eefadd5711c7ed22b65d","unresolved":false,"context_lines":[{"line_number":266,"context_line":"}"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"/* This adds a few more methods that strictly necessary but this allows"},{"line_number":270,"context_line":" * us to see which exact test was run from the backtrace of the test"},{"line_number":271,"context_line":" * when it fails */"},{"line_number":272,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":2,"id":"cd150f1a_9bbdf41a","line":269,"in_reply_to":"f618ebc3_e68399f8","updated":"2024-02-09 14:59:38.000000000","message":"Done","commit_id":"3e6eebb21a2e9cdd3c7ef00a427f17330df707b3"},{"author":{"_account_id":1000035,"name":"Steffan Karger","display_name":"Steffan Karger","email":"steffan@karger.me","username":"syzzer","status":"Commits and comments are my own views, not those of my employer."},"change_message_id":"b20330df24cace162b4238bc830ef619ab73314a","unresolved":true,"context_lines":[{"line_number":269,"context_line":" * us to see which exact test was run from the backtrace of the test"},{"line_number":270,"context_line":" * when it fails */"},{"line_number":271,"context_line":"static void"},{"line_number":272,"context_line":"run_data_channel_with_cipher_end(const char *cipher)"},{"line_number":273,"context_line":"{"},{"line_number":274,"context_line":"    struct crypto_options co \u003d init_crypto_options(cipher, \"none\");"},{"line_number":275,"context_line":"    co.flags |\u003d CO_AEAD_TAG_AT_THE_END;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"05d64456_0a9f2c26","line":272,"updated":"2024-04-12 20:01:02.000000000","message":"s/end/tag_end/ ? (Or even tag_at_end)","commit_id":"25372beb9f29e62c62925233163f8e149ba1f410"},{"author":{"_account_id":1000035,"name":"Steffan Karger","display_name":"Steffan Karger","email":"steffan@karger.me","username":"syzzer","status":"Commits and comments are my own views, not those of my employer."},"change_message_id":"6f8a513133f7628af4b7564935fe34caad311af9","unresolved":false,"context_lines":[{"line_number":269,"context_line":" * us to see which exact test was run from the backtrace of the test"},{"line_number":270,"context_line":" * when it fails */"},{"line_number":271,"context_line":"static void"},{"line_number":272,"context_line":"run_data_channel_with_cipher_end(const char *cipher)"},{"line_number":273,"context_line":"{"},{"line_number":274,"context_line":"    struct crypto_options co \u003d init_crypto_options(cipher, \"none\");"},{"line_number":275,"context_line":"    co.flags |\u003d CO_AEAD_TAG_AT_THE_END;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"9def35a0_b6433278","line":272,"in_reply_to":"05d64456_0a9f2c26","updated":"2026-10-13 18:26:38.000000000","message":"Done","commit_id":"25372beb9f29e62c62925233163f8e149ba1f410"},{"author":{"_account_id":1000008,"name":"Lev Stipakov","display_name":"Lev Stipakov","email":"lstipakov@gmail.com","username":"stipa"},"change_message_id":"1ac81f04300e3a318189fb00555dcd19d2dda406","unresolved":true,"context_lines":[{"line_number":265,"context_line":""},{"line_number":266,"context_line":"}"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"/* This adds a few more methods than strictly necessary but this allows"},{"line_number":269,"context_line":" * us to see which exact test was run from the backtrace of the test"},{"line_number":270,"context_line":" * when it fails */"},{"line_number":271,"context_line":"static void"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"747528fe_47ac025e","line":268,"updated":"2024-07-31 11:42:16.000000000","message":"\"that strictly necessary\" or \"that are not strictly necessary\" ?","commit_id":"e14e38d3e7d9bf8c056dc66a558a7f45db7567f8"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"835bbdeb4f90054964355eddfbb7a1c0b24c93a7","unresolved":true,"context_lines":[{"line_number":265,"context_line":""},{"line_number":266,"context_line":"}"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"/* This adds a few more methods than strictly necessary but this allows"},{"line_number":269,"context_line":" * us to see which exact test was run from the backtrace of the test"},{"line_number":270,"context_line":" * when it fails */"},{"line_number":271,"context_line":"static void"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"4842594f_fb4b5116","line":268,"in_reply_to":"747528fe_47ac025e","updated":"2024-07-31 13:09:25.000000000","message":"I think \"than strictly necessary\" is fine as it is. If you simplify the sentence by removing the adverbial terms it becomes: This adds more methods than necessary.","commit_id":"e14e38d3e7d9bf8c056dc66a558a7f45db7567f8"}]}
