)]}'
{"/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":"a21c79c57c29129a33be31e38f4df3df83557615","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"004025ad_3f2a9321","updated":"2026-09-25 16:13:44.000000000","message":"Will set this back to WIP until we have the suppressions figured out","commit_id":"9a2e2752ccaa828668b00074c644c385fbc798fb"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"dd092cc419cabf7adccfc37cf7a21881b3d2a244","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"36f391da_caef40f0","updated":"2026-09-28 15:46:13.000000000","message":"Back to enabled now that is properly rebased (needed to redo all the suppressions)","commit_id":"8872a126dbfe67e9889b38ebd0bc287af8c8b280"},{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"435d2fc8d47cfc0cec33f62a40e6c16d116433da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"451fcdc5_4df09ad2","updated":"2026-10-06 14:16:54.000000000","message":"This looks good now, except for those stub nits I\u0027ve commented about.","commit_id":"bb42ebff0e89714804fc9e73a6ca70d831e23218"}],"dev-tools/cppcheck-suppression":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"c4cc153f1183a366e9a2d3e6d62bfd075da1b145","unresolved":true,"context_lines":[{"line_number":71,"context_line":"# FP: we play around with const in the interface too much"},{"line_number":72,"context_line":"# also hides: fun:check_malloc_return: causes -Wmaybe-uninitialized in MinGW Debug build"},{"line_number":73,"context_line":"constParameterPointer:src/openvpn/buffer.h"},{"line_number":74,"context_line":"# FP: const silently removed due to pointer arithmentic"},{"line_number":75,"context_line":"constParameterPointer:src/openvpn/buffer.c:273"},{"line_number":76,"context_line":"# IGN: Windows specific (unsigned long \u003d\u003d unsigned int)"},{"line_number":77,"context_line":"compareValueOutOfTypeRangeError:src/openvpn/ssl_verify.c:928"}],"source_content_type":"application/octet-stream","patch_set":23,"id":"b2a212e9_d5110b73","line":74,"updated":"2026-09-11 13:36:32.000000000","message":"Typo: \"arithmetic\".","commit_id":"1cefec1929e5c95c671eb307517840e3c481b8cd"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"52094b923017d26ca16daab3450b3a4d10c7210e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"# FP: we play around with const in the interface too much"},{"line_number":72,"context_line":"# also hides: fun:check_malloc_return: causes -Wmaybe-uninitialized in MinGW Debug build"},{"line_number":73,"context_line":"constParameterPointer:src/openvpn/buffer.h"},{"line_number":74,"context_line":"# FP: const silently removed due to pointer arithmentic"},{"line_number":75,"context_line":"constParameterPointer:src/openvpn/buffer.c:273"},{"line_number":76,"context_line":"# IGN: Windows specific (unsigned long \u003d\u003d unsigned int)"},{"line_number":77,"context_line":"compareValueOutOfTypeRangeError:src/openvpn/ssl_verify.c:928"}],"source_content_type":"application/octet-stream","patch_set":23,"id":"0be163f5_bbac1f68","line":74,"in_reply_to":"b2a212e9_d5110b73","updated":"2026-09-11 15:09:29.000000000","message":"Done","commit_id":"1cefec1929e5c95c671eb307517840e3c481b8cd"}],"sample/sample-plugins/keying-material-exporter-demo/keyingmaterialexporter.c":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"97d1e22063a2ee9b600977cbb328751711fea49d","unresolved":true,"context_lines":[{"line_number":202,"context_line":"server_store(struct openvpn_plugin_args_func_in const *args)"},{"line_number":203,"context_line":"{"},{"line_number":204,"context_line":"    struct plugin *plugin \u003d (struct plugin *)args-\u003ehandle;"},{"line_number":205,"context_line":"    const struct session *sess \u003d (struct session *)args-\u003eper_client_context;"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    char file[MAXPATH];"},{"line_number":208,"context_line":"    snprintf(file, sizeof(file) - 1, \"/tmp/openvpn_sso_%s\", sess-\u003ekey);"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"4dbe5817_e02e497f","line":205,"updated":"2026-10-02 09:54:43.000000000","message":"Why not `(const struct session *)args-\u003eper_client_context;`? Or just remove the cast, since we\u0027re casting from `void *`.","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"4d8742d8609314eec9e6cdfcec4e8f482f1a8506","unresolved":false,"context_lines":[{"line_number":202,"context_line":"server_store(struct openvpn_plugin_args_func_in const *args)"},{"line_number":203,"context_line":"{"},{"line_number":204,"context_line":"    struct plugin *plugin \u003d (struct plugin *)args-\u003ehandle;"},{"line_number":205,"context_line":"    const struct session *sess \u003d (struct session *)args-\u003eper_client_context;"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    char file[MAXPATH];"},{"line_number":208,"context_line":"    snprintf(file, sizeof(file) - 1, \"/tmp/openvpn_sso_%s\", sess-\u003ekey);"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"217790cb_35ca2ff3","line":205,"in_reply_to":"4dbe5817_e02e497f","updated":"2026-10-05 16:33:12.000000000","message":"Done","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"},{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"97d1e22063a2ee9b600977cbb328751711fea49d","unresolved":true,"context_lines":[{"line_number":214,"context_line":"client_store(struct openvpn_plugin_args_func_in const *args)"},{"line_number":215,"context_line":"{"},{"line_number":216,"context_line":"    struct plugin *plugin \u003d (struct plugin *)args-\u003ehandle;"},{"line_number":217,"context_line":"    const struct session *sess \u003d (struct session *)args-\u003eper_client_context;"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    char *file \u003d \"/tmp/openvpn_sso_user\";"},{"line_number":220,"context_line":"    ovpn_note(\"app session file: %s\", file);"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"0312945f_976992e9","line":217,"updated":"2026-10-02 09:54:43.000000000","message":"Here too, why not `(const struct session *)args-\u003eper_client_context;`? Or just remove the cast, since we\u0027re casting from `void *`.","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"4d8742d8609314eec9e6cdfcec4e8f482f1a8506","unresolved":false,"context_lines":[{"line_number":214,"context_line":"client_store(struct openvpn_plugin_args_func_in const *args)"},{"line_number":215,"context_line":"{"},{"line_number":216,"context_line":"    struct plugin *plugin \u003d (struct plugin *)args-\u003ehandle;"},{"line_number":217,"context_line":"    const struct session *sess \u003d (struct session *)args-\u003eper_client_context;"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    char *file \u003d \"/tmp/openvpn_sso_user\";"},{"line_number":220,"context_line":"    ovpn_note(\"app session file: %s\", file);"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"d849dd16_b7476dff","line":217,"in_reply_to":"0312945f_976992e9","updated":"2026-10-05 16:33:12.000000000","message":"Done","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"}],"src/openvpn/event.h":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"435d2fc8d47cfc0cec33f62a40e6c16d116433da","unresolved":true,"context_lines":[{"line_number":193,"context_line":"#ifdef _WIN32"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"static inline void"},{"line_number":196,"context_line":"wait_signal(struct event_set *es, void *arg)"},{"line_number":197,"context_line":"{"},{"line_number":198,"context_line":"    if (HANDLE_DEFINED(win32_signal.in.read))"},{"line_number":199,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":30,"id":"7479dbcd_235ee5d0","line":196,"updated":"2026-10-06 14:16:54.000000000","message":"Here the `_WIN32` version of `wait_signal()` no longer matches the signature of the POSIX stub changed below.","commit_id":"bb42ebff0e89714804fc9e73a6ca70d831e23218"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"f0e0e3bf1b9d5abd4e56c563a4fd2ed234d095e4","unresolved":true,"context_lines":[{"line_number":193,"context_line":"#ifdef _WIN32"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"static inline void"},{"line_number":196,"context_line":"wait_signal(struct event_set *es, void *arg)"},{"line_number":197,"context_line":"{"},{"line_number":198,"context_line":"    if (HANDLE_DEFINED(win32_signal.in.read))"},{"line_number":199,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":30,"id":"c8b7aa51_0d9350f8","line":196,"in_reply_to":"7479dbcd_235ee5d0","updated":"2026-10-07 15:43:21.000000000","message":"Since this is \"static inline\" I think that is nicer than adding a suppression. It shouldn\u0027t break anything?","commit_id":"bb42ebff0e89714804fc9e73a6ca70d831e23218"}],"src/openvpn/mss.c":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"6e684ed85caf68ad5c224ba593a396a695e17025","unresolved":true,"context_lines":[{"line_number":147,"context_line":"    }"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    verify_align_4(buf);"},{"line_number":150,"context_line":"    struct openvpn_tcphdr *tc \u003d (struct openvpn_tcphdr *)BPTR(buf);"},{"line_number":151,"context_line":"    int hlen \u003d OPENVPN_TCPH_GET_DOFF(tc-\u003edoff_res);"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    /* Invalid header length or header without options. */"}],"source_content_type":"text/x-csrc","patch_set":17,"id":"9baf0266_4a84e46c","line":150,"updated":"2026-08-30 19:01:30.000000000","message":"For this function and a few others doing this sort of thing to the parameter it might not be ideal to constify the argument, because now we\u0027re pretending it\u0027s const when we\u0027re casting and writing to it inside the function.","commit_id":"0866f76a03f9284abd418b91ca1933a513d4cbc6"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"d2a04fa5e594d0d14b34914ed55e9bd27261ae53","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    }"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    verify_align_4(buf);"},{"line_number":150,"context_line":"    struct openvpn_tcphdr *tc \u003d (struct openvpn_tcphdr *)BPTR(buf);"},{"line_number":151,"context_line":"    int hlen \u003d OPENVPN_TCPH_GET_DOFF(tc-\u003edoff_res);"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    /* Invalid header length or header without options. */"}],"source_content_type":"text/x-csrc","patch_set":17,"id":"3b0187c5_26e461ba","line":150,"in_reply_to":"9baf0266_4a84e46c","updated":"2026-09-07 21:06:05.000000000","message":"added #1904 to address this systematically","commit_id":"0866f76a03f9284abd418b91ca1933a513d4cbc6"}],"src/openvpn/socket.h":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"97d1e22063a2ee9b600977cbb328751711fea49d","unresolved":true,"context_lines":[{"line_number":832,"context_line":"}"},{"line_number":833,"context_line":""},{"line_number":834,"context_line":"/* cppcheck-suppress constParameterPointer"},{"line_number":835,"context_line":" * sock is modified on Windows via \u0026sock-\u003elisten_handle */"},{"line_number":836,"context_line":"static inline void"},{"line_number":837,"context_line":"socket_reset_listen_persistent(struct link_socket *sock)"},{"line_number":838,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"bd8b0e79_711f6721","line":835,"updated":"2026-10-02 09:54:43.000000000","message":"I think these comments apply to literally the next line, which here is `static inline void`. If that\u0027s correct, this doesn\u0027t suppress anything.","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"4d8742d8609314eec9e6cdfcec4e8f482f1a8506","unresolved":false,"context_lines":[{"line_number":832,"context_line":"}"},{"line_number":833,"context_line":""},{"line_number":834,"context_line":"/* cppcheck-suppress constParameterPointer"},{"line_number":835,"context_line":" * sock is modified on Windows via \u0026sock-\u003elisten_handle */"},{"line_number":836,"context_line":"static inline void"},{"line_number":837,"context_line":"socket_reset_listen_persistent(struct link_socket *sock)"},{"line_number":838,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"28f55df4_87dc1a55","line":835,"in_reply_to":"bd8b0e79_711f6721","updated":"2026-10-05 16:33:12.000000000","message":"yeah, this was a left-over from when trying inline-suppressions and deciding they were too ugly for this case due to this limitation.","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"}],"src/openvpn/ssl_backend.h":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"97d1e22063a2ee9b600977cbb328751711fea49d","unresolved":true,"context_lines":[{"line_number":170,"context_line":" * @param ciphers       String containing : delimited cipher names, or NULL to use"},{"line_number":171,"context_line":" *                                      sane defaults."},{"line_number":172,"context_line":" */"},{"line_number":173,"context_line":"void tls_ctx_restrict_ciphers_tls13(const struct tls_root_ctx *ctx, const char *ciphers);"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"/**"},{"line_number":176,"context_line":" * Set the TLS certificate profile.  The profile defines which crypto"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"24e39df0_f7eab14e","line":173,"updated":"2026-10-02 09:54:43.000000000","message":"It looks like this will end up calling `SSL_CTX_set_ciphersuites()` which uses a non-const `SSL_CTX *`. Might be better to leave this as it was (also in line with the unchanged `tls_ctx_restrict_ciphers()` above).","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"4d8742d8609314eec9e6cdfcec4e8f482f1a8506","unresolved":false,"context_lines":[{"line_number":170,"context_line":" * @param ciphers       String containing : delimited cipher names, or NULL to use"},{"line_number":171,"context_line":" *                                      sane defaults."},{"line_number":172,"context_line":" */"},{"line_number":173,"context_line":"void tls_ctx_restrict_ciphers_tls13(const struct tls_root_ctx *ctx, const char *ciphers);"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"/**"},{"line_number":176,"context_line":" * Set the TLS certificate profile.  The profile defines which crypto"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"655c10df_694e342b","line":173,"in_reply_to":"24e39df0_f7eab14e","updated":"2026-10-05 16:33:12.000000000","message":"Done","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"}],"src/openvpn/ssl_mbedtls.c":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"97c02cb1ef1df71001559071d9d9f4f69b5a5185","unresolved":true,"context_lines":[{"line_number":269,"context_line":"}"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"void"},{"line_number":272,"context_line":"tls_ctx_restrict_ciphers_tls13(const struct tls_root_ctx *ctx, const char *ciphers)"},{"line_number":273,"context_line":"{"},{"line_number":274,"context_line":"    if (ciphers \u003d\u003d NULL)"},{"line_number":275,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":29,"id":"e48c8e81_220c4b0f","line":272,"updated":"2026-10-05 18:23:02.000000000","message":"This hasn\u0027t changed to non-const and breaks the mbedTLS build.","commit_id":"16fca091150b2954a89c7140f846c21189372008"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"f0e0e3bf1b9d5abd4e56c563a4fd2ed234d095e4","unresolved":false,"context_lines":[{"line_number":269,"context_line":"}"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"void"},{"line_number":272,"context_line":"tls_ctx_restrict_ciphers_tls13(const struct tls_root_ctx *ctx, const char *ciphers)"},{"line_number":273,"context_line":"{"},{"line_number":274,"context_line":"    if (ciphers \u003d\u003d NULL)"},{"line_number":275,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":29,"id":"b3c2423f_c0e95fd8","line":272,"in_reply_to":"e48c8e81_220c4b0f","updated":"2026-10-07 15:43:21.000000000","message":"Done","commit_id":"16fca091150b2954a89c7140f846c21189372008"}],"src/openvpn/ssl_openssl.c":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"97d1e22063a2ee9b600977cbb328751711fea49d","unresolved":true,"context_lines":[{"line_number":1147,"context_line":"    }"},{"line_number":1148,"context_line":"    msg(D_TLS_DEBUG_MED, \"Found cert in store using URI: %s\", uri);"},{"line_number":1149,"context_line":""},{"line_number":1150,"context_line":"    ret \u003d SSL_CTX_use_certificate(tls_ctx-\u003ectx, x);"},{"line_number":1151,"context_line":"    if (!ret)"},{"line_number":1152,"context_line":"    {"},{"line_number":1153,"context_line":"        goto end;"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"327e11bc_51191074","line":1150,"updated":"2026-10-02 09:54:43.000000000","message":"This actually uses a non-const pointer in `tls_ctx-\u003ectx` (`int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x);` according to my man page), so it makes constifying `tls_ctx` debatable.","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"4d8742d8609314eec9e6cdfcec4e8f482f1a8506","unresolved":false,"context_lines":[{"line_number":1147,"context_line":"    }"},{"line_number":1148,"context_line":"    msg(D_TLS_DEBUG_MED, \"Found cert in store using URI: %s\", uri);"},{"line_number":1149,"context_line":""},{"line_number":1150,"context_line":"    ret \u003d SSL_CTX_use_certificate(tls_ctx-\u003ectx, x);"},{"line_number":1151,"context_line":"    if (!ret)"},{"line_number":1152,"context_line":"    {"},{"line_number":1153,"context_line":"        goto end;"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"482eec4f_2a80e704","line":1150,"in_reply_to":"327e11bc_51191074","updated":"2026-10-05 16:33:12.000000000","message":"Done","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"}],"src/openvpn/tun.c":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"6e684ed85caf68ad5c224ba593a396a695e17025","unresolved":true,"context_lines":[{"line_number":3250,"context_line":"}"},{"line_number":3251,"context_line":""},{"line_number":3252,"context_line":"ssize_t"},{"line_number":3253,"context_line":"read_tun(struct tuntap *tt, uint8_t *buf, int len)"},{"line_number":3254,"context_line":"{"},{"line_number":3255,"context_line":"    return read(tt-\u003efd, buf, len);"},{"line_number":3256,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":17,"id":"4907d4e9_173ee7aa","line":3253,"updated":"2026-08-30 19:01:30.000000000","message":"Shouldn\u0027t this (and the function above) have been constified as well? Do we no longer build for AIX? If not, should we just remove all the AIX code?","commit_id":"0866f76a03f9284abd418b91ca1933a513d4cbc6"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"52094b923017d26ca16daab3450b3a4d10c7210e","unresolved":false,"context_lines":[{"line_number":3250,"context_line":"}"},{"line_number":3251,"context_line":""},{"line_number":3252,"context_line":"ssize_t"},{"line_number":3253,"context_line":"read_tun(struct tuntap *tt, uint8_t *buf, int len)"},{"line_number":3254,"context_line":"{"},{"line_number":3255,"context_line":"    return read(tt-\u003efd, buf, len);"},{"line_number":3256,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":17,"id":"958ab3b1_1acbb739","line":3253,"in_reply_to":"4907d4e9_173ee7aa","updated":"2026-09-11 15:09:29.000000000","message":"Done","commit_id":"0866f76a03f9284abd418b91ca1933a513d4cbc6"},{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"6e684ed85caf68ad5c224ba593a396a695e17025","unresolved":true,"context_lines":[{"line_number":6307,"context_line":"}"},{"line_number":6308,"context_line":""},{"line_number":6309,"context_line":"ssize_t"},{"line_number":6310,"context_line":"read_tun(struct tuntap *tt, uint8_t *buf, int len)"},{"line_number":6311,"context_line":"{"},{"line_number":6312,"context_line":"    return read(tt-\u003efd, buf, len);"},{"line_number":6313,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":17,"id":"1c2639ef_8a51a659","line":6310,"updated":"2026-08-30 19:01:30.000000000","message":"Here too, this function and the one above have not been constified.","commit_id":"0866f76a03f9284abd418b91ca1933a513d4cbc6"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"52094b923017d26ca16daab3450b3a4d10c7210e","unresolved":false,"context_lines":[{"line_number":6307,"context_line":"}"},{"line_number":6308,"context_line":""},{"line_number":6309,"context_line":"ssize_t"},{"line_number":6310,"context_line":"read_tun(struct tuntap *tt, uint8_t *buf, int len)"},{"line_number":6311,"context_line":"{"},{"line_number":6312,"context_line":"    return read(tt-\u003efd, buf, len);"},{"line_number":6313,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":17,"id":"5c457639_19297594","line":6310,"in_reply_to":"1c2639ef_8a51a659","updated":"2026-09-11 15:09:29.000000000","message":"Done","commit_id":"0866f76a03f9284abd418b91ca1933a513d4cbc6"},{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"97d1e22063a2ee9b600977cbb328751711fea49d","unresolved":true,"context_lines":[{"line_number":1726,"context_line":"    {"},{"line_number":1727,"context_line":"        u_int32_t type;"},{"line_number":1728,"context_line":"        struct iovec iv[2];"},{"line_number":1729,"context_line":"        const struct ip *iph \u003d (struct ip *)buf;"},{"line_number":1730,"context_line":""},{"line_number":1731,"context_line":"        if (iph-\u003eip_v \u003d\u003d 6)"},{"line_number":1732,"context_line":"        {"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"7d136cf7_e6fd2455","line":1729,"updated":"2026-10-02 09:54:43.000000000","message":"Since we\u0027re here, why not `const struct ip *iph \u003d (const struct ip *)buf;`?","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"4d8742d8609314eec9e6cdfcec4e8f482f1a8506","unresolved":false,"context_lines":[{"line_number":1726,"context_line":"    {"},{"line_number":1727,"context_line":"        u_int32_t type;"},{"line_number":1728,"context_line":"        struct iovec iv[2];"},{"line_number":1729,"context_line":"        const struct ip *iph \u003d (struct ip *)buf;"},{"line_number":1730,"context_line":""},{"line_number":1731,"context_line":"        if (iph-\u003eip_v \u003d\u003d 6)"},{"line_number":1732,"context_line":"        {"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"a78768bf_b72f0746","line":1729,"in_reply_to":"7d136cf7_e6fd2455","updated":"2026-10-05 16:33:12.000000000","message":"Done","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"}],"src/openvpn/tun.h":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"435d2fc8d47cfc0cec33f62a40e6c16d116433da","unresolved":true,"context_lines":[{"line_number":464,"context_line":""},{"line_number":465,"context_line":"void ipconfig_register_dns(const struct env_set *es);"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"void tun_standby_init(struct tuntap *tt);"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"bool tun_standby(struct tuntap *tt);"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":30,"id":"49edff09_6a07e3d2","line":467,"updated":"2026-10-06 14:16:54.000000000","message":"This `_WIN32` version of `tun_standby_init()` now does not match the other (const-ified) POSIX version in this same file.","commit_id":"bb42ebff0e89714804fc9e73a6ca70d831e23218"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"f0e0e3bf1b9d5abd4e56c563a4fd2ed234d095e4","unresolved":false,"context_lines":[{"line_number":464,"context_line":""},{"line_number":465,"context_line":"void ipconfig_register_dns(const struct env_set *es);"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"void tun_standby_init(struct tuntap *tt);"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"bool tun_standby(struct tuntap *tt);"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":30,"id":"9f69f518_cbb802cb","line":467,"in_reply_to":"49edff09_6a07e3d2","updated":"2026-10-07 15:43:21.000000000","message":"Done","commit_id":"bb42ebff0e89714804fc9e73a6ca70d831e23218"},{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"435d2fc8d47cfc0cec33f62a40e6c16d116433da","unresolved":true,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"void tun_standby_init(struct tuntap *tt);"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"bool tun_standby(struct tuntap *tt);"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"int tun_read_queue(struct tuntap *tt, int maxsize);"},{"line_number":472,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":30,"id":"cd40b76c_ee1a342c","line":469,"updated":"2026-10-06 14:16:54.000000000","message":"`_WIN32` version of the stub now stops matching the POSIX const-ified one.","commit_id":"bb42ebff0e89714804fc9e73a6ca70d831e23218"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"f0e0e3bf1b9d5abd4e56c563a4fd2ed234d095e4","unresolved":false,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"void tun_standby_init(struct tuntap *tt);"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"bool tun_standby(struct tuntap *tt);"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"int tun_read_queue(struct tuntap *tt, int maxsize);"},{"line_number":472,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":30,"id":"4a3739bc_74618433","line":469,"in_reply_to":"cd40b76c_ee1a342c","updated":"2026-10-07 15:43:21.000000000","message":"Done","commit_id":"bb42ebff0e89714804fc9e73a6ca70d831e23218"}],"src/openvpn/tun_afunix.c":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"97d1e22063a2ee9b600977cbb328751711fea49d","unresolved":true,"context_lines":[{"line_number":189,"context_line":"}"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"ssize_t"},{"line_number":192,"context_line":"write_tun_afunix(struct tuntap *tt, uint8_t *buf, int len)"},{"line_number":193,"context_line":"{"},{"line_number":194,"context_line":"    /* should never be called as open_tun_afunix always fails */"},{"line_number":195,"context_line":"    ASSERT(0);"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"2dffa8e3_05f4b481","line":192,"updated":"2026-10-02 09:54:43.000000000","message":"This no longer matches the header.","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"4d8742d8609314eec9e6cdfcec4e8f482f1a8506","unresolved":false,"context_lines":[{"line_number":189,"context_line":"}"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"ssize_t"},{"line_number":192,"context_line":"write_tun_afunix(struct tuntap *tt, uint8_t *buf, int len)"},{"line_number":193,"context_line":"{"},{"line_number":194,"context_line":"    /* should never be called as open_tun_afunix always fails */"},{"line_number":195,"context_line":"    ASSERT(0);"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"3fc72ff9_67392fb1","line":192,"in_reply_to":"2dffa8e3_05f4b481","updated":"2026-10-05 16:33:12.000000000","message":"Done","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"}],"tests/unit_tests/openvpn/siphash_openssl.c":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"97d1e22063a2ee9b600977cbb328751711fea49d","unresolved":true,"context_lines":[{"line_number":126,"context_line":"}"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"bool"},{"line_number":129,"context_line":"siphash_openssl_available(void *sip_context)"},{"line_number":130,"context_line":"{"},{"line_number":131,"context_line":"    return false;"},{"line_number":132,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"1519f9a8_32d694d1","line":129,"updated":"2026-10-02 09:54:43.000000000","message":"This no longer matches the header.","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"4d8742d8609314eec9e6cdfcec4e8f482f1a8506","unresolved":false,"context_lines":[{"line_number":126,"context_line":"}"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"bool"},{"line_number":129,"context_line":"siphash_openssl_available(void *sip_context)"},{"line_number":130,"context_line":"{"},{"line_number":131,"context_line":"    return false;"},{"line_number":132,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":28,"id":"aae98122_3faf1771","line":129,"in_reply_to":"1519f9a8_32d694d1","updated":"2026-10-05 16:33:12.000000000","message":"Done","commit_id":"7fa8dee66ae7df3684ff1a1cb6689c7a9e867863"}]}
