)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"9c1cdf5de9ed4f7562c53afd1f28cb2dabba67cf","unresolved":true,"context_lines":[{"line_number":25,"context_line":"  delete the DCO iroutes;"},{"line_number":26,"context_line":"* no iroutes exists anymore on the server despite the client being"},{"line_number":27,"context_line":"  fully connected."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"With this patch we move the DCO iroutes deletion to the actual"},{"line_number":30,"context_line":"client exit time in order to avoid racing with a possible addition"},{"line_number":31,"context_line":"being executed when the client reconnects. The new flow will be:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"05fca6cd_7ed20462","line":28,"updated":"2026-05-21 11:23:49.000000000","message":"I think it would be helpful to add a short comment on why this is a DCO-specific problem. It is probably obvious to you since you know how differently the iroutes are implemented in the non-DCO case. But I think it would make the patch easier to understand for people less familiar with the code.","commit_id":"6ba94fe192fc58331f740bae631c15ab08827439"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"e473e9d6331733e07772e9459fad9b772b7dff46","unresolved":true,"context_lines":[{"line_number":25,"context_line":"  delete the DCO iroutes;"},{"line_number":26,"context_line":"* no iroutes exists anymore on the server despite the client being"},{"line_number":27,"context_line":"  fully connected."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"With this patch we move the DCO iroutes deletion to the actual"},{"line_number":30,"context_line":"client exit time in order to avoid racing with a possible addition"},{"line_number":31,"context_line":"being executed when the client reconnects. The new flow will be:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ca3ac453_08ace230","line":28,"in_reply_to":"05fca6cd_7ed20462","updated":"2026-05-21 12:15:32.000000000","message":"ok, I\u0027ll add a brief explanation in the commit message","commit_id":"6ba94fe192fc58331f740bae631c15ab08827439"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"b184619179cb0400f7508b19a4b84ac4f5c11100","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  delete the DCO iroutes;"},{"line_number":26,"context_line":"* no iroutes exists anymore on the server despite the client being"},{"line_number":27,"context_line":"  fully connected."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"With this patch we move the DCO iroutes deletion to the actual"},{"line_number":30,"context_line":"client exit time in order to avoid racing with a possible addition"},{"line_number":31,"context_line":"being executed when the client reconnects. The new flow will be:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"fc47ad2c_78e4b20f","line":28,"in_reply_to":"ca3ac453_08ace230","updated":"2026-05-21 13:53:30.000000000","message":"Done","commit_id":"6ba94fe192fc58331f740bae631c15ab08827439"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"b184619179cb0400f7508b19a4b84ac4f5c11100","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"05488e4f_396cae0d","updated":"2026-05-21 13:53:30.000000000","message":"This new version is a bit reworked as we STILL need to delete iroutes also when no delay exit is used.","commit_id":"6ba94fe192fc58331f740bae631c15ab08827439"}],"src/openvpn/forward.c":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"9c1cdf5de9ed4f7562c53afd1f28cb2dabba67cf","unresolved":true,"context_lines":[{"line_number":534,"context_line":"        return false;"},{"line_number":535,"context_line":"    }"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"    /* DCO iroutes must be removed now, because the delay introduced by this"},{"line_number":538,"context_line":"     * timer can create a race condition:"},{"line_number":539,"context_line":"     * the same client may reconnect before the old instance is purged, leading"},{"line_number":540,"context_line":"     * to DCO iroutes removal *after* reconnection, thus killing the routes"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"04747dd8_aea88847","line":537,"updated":"2026-05-21 11:23:49.000000000","message":"You might even consider adding that explanation on why it is DCO-only here in the comment?","commit_id":"6ba94fe192fc58331f740bae631c15ab08827439"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"e473e9d6331733e07772e9459fad9b772b7dff46","unresolved":true,"context_lines":[{"line_number":534,"context_line":"        return false;"},{"line_number":535,"context_line":"    }"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"    /* DCO iroutes must be removed now, because the delay introduced by this"},{"line_number":538,"context_line":"     * timer can create a race condition:"},{"line_number":539,"context_line":"     * the same client may reconnect before the old instance is purged, leading"},{"line_number":540,"context_line":"     * to DCO iroutes removal *after* reconnection, thus killing the routes"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"f77e6242_754fb714","line":537,"in_reply_to":"04747dd8_aea88847","updated":"2026-05-21 12:15:32.000000000","message":"yap, will replicate the explanation here too","commit_id":"6ba94fe192fc58331f740bae631c15ab08827439"},{"author":{"_account_id":1000007,"name":"ordex","display_name":"Antonio Quartulli","email":"antonio@mandelbit.com","username":"ordex"},"change_message_id":"b184619179cb0400f7508b19a4b84ac4f5c11100","unresolved":false,"context_lines":[{"line_number":534,"context_line":"        return false;"},{"line_number":535,"context_line":"    }"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"    /* DCO iroutes must be removed now, because the delay introduced by this"},{"line_number":538,"context_line":"     * timer can create a race condition:"},{"line_number":539,"context_line":"     * the same client may reconnect before the old instance is purged, leading"},{"line_number":540,"context_line":"     * to DCO iroutes removal *after* reconnection, thus killing the routes"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"36ce7acf_672f4596","line":537,"in_reply_to":"f77e6242_754fb714","updated":"2026-05-21 13:53:30.000000000","message":"Done","commit_id":"6ba94fe192fc58331f740bae631c15ab08827439"}]}
