)]}'
{"/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":"15bb2b1dd95c15219c78ebbce6439c2ae38b2214","unresolved":true,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2026-08-26 13:50:36 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement sending/receiving app custom control protocol"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I4a6a6ef41e15896b8b79d795b2a6de86b8ae4c84"},{"line_number":10,"context_line":"Signed-off-by: Arne Schwabe \u003carne@rfc2549.org\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"24794c39_d6c4cd0c","line":8,"updated":"2026-08-26 13:23:52.000000000","message":"Should probably have a more informative commit message...","commit_id":"ae69bda99914f727fb69583d84c44d0aa04929af"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"1a068d8821be70c0930aba545e577e3e5741e127","unresolved":true,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2026-08-26 13:50:36 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement sending/receiving app custom control protocol"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I4a6a6ef41e15896b8b79d795b2a6de86b8ae4c84"},{"line_number":10,"context_line":"Signed-off-by: Arne Schwabe \u003carne@rfc2549.org\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"a73ff0bf_a28fe2e8","line":8,"in_reply_to":"24794c39_d6c4cd0c","updated":"2026-08-26 16:20:26.000000000","message":"I added a bit of detail. I am not sure if that is enough or if should add more.","commit_id":"ae69bda99914f727fb69583d84c44d0aa04929af"},{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"855024cf8338bbcd6e320209fcfbcd7d135a4ebf","unresolved":true,"context_lines":[{"line_number":11,"context_line":"while OpenVPN handles the marshalling/unmarshalling of these and"},{"line_number":12,"context_line":"negotiate the common app custom control protocols."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This provides an easy to use secure channel that does not depends on"},{"line_number":15,"context_line":"the network itself to work and can also used before fully authenticating"},{"line_number":16,"context_line":"the client. See the management-notes.txt for more details how to use"},{"line_number":17,"context_line":"this feature. An upcoming patch will also add some example python"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"c6be74d2_250de2bb","line":14,"updated":"2026-09-30 07:00:17.000000000","message":"Typo: \"does not depends\" -\u003e \"does not depend\".","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"d355130c9d536fa45f26a9292f7a8357520d8d55","unresolved":false,"context_lines":[{"line_number":11,"context_line":"while OpenVPN handles the marshalling/unmarshalling of these and"},{"line_number":12,"context_line":"negotiate the common app custom control protocols."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This provides an easy to use secure channel that does not depends on"},{"line_number":15,"context_line":"the network itself to work and can also used before fully authenticating"},{"line_number":16,"context_line":"the client. See the management-notes.txt for more details how to use"},{"line_number":17,"context_line":"this feature. An upcoming patch will also add some example python"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"d5fa3191_2f3e23c1","line":14,"in_reply_to":"c6be74d2_250de2bb","updated":"2026-10-05 17:01:59.000000000","message":"Done","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"}],"/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":"0072bc73d780e4693a3894e0b783e86274fc1f24","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"8a5873e2_cdb07ab9","updated":"2026-10-15 11:00:46.000000000","message":"Didn\u0027t get through it fully, yet. But noted some nitpicks","commit_id":"e0ad2954187c30dbf99281a4172a3d6a14a5c231"}],"CMakeLists.txt":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"0072bc73d780e4693a3894e0b783e86274fc1f24","unresolved":true,"context_lines":[{"line_number":573,"context_line":"    src/openvpn/push.c"},{"line_number":574,"context_line":"    src/openvpn/push.h"},{"line_number":575,"context_line":"    src/openvpn/push_util.c"},{"line_number":576,"context_line":"        src/openvpn/pushlist.h"},{"line_number":577,"context_line":"    src/openvpn/reflect_filter.c"},{"line_number":578,"context_line":"    src/openvpn/reflect_filter.h"},{"line_number":579,"context_line":"    src/openvpn/reliable.c"}],"source_content_type":"text/x-cmake","patch_set":11,"id":"6e7bad6f_d9b4668d","line":576,"updated":"2026-10-15 11:00:46.000000000","message":"Weird whitespace?","commit_id":"e0ad2954187c30dbf99281a4172a3d6a14a5c231"}],"doc/man-sections/client-options.rst":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"0072bc73d780e4693a3894e0b783e86274fc1f24","unresolved":true,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"  The protocollist is a : separated list of protocol identifiers."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"  See management-notes.txt in the OpenVPN distribution  and the OpenVPN RFC"},{"line_number":24,"context_line":"  draft for a description of app custom control protocol support."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"--auth-token token"}],"source_content_type":"text/x-rst","patch_set":11,"id":"370e5fb1_06efc579","line":23,"updated":"2026-10-15 11:00:46.000000000","message":"double space before \"and\"","commit_id":"e0ad2954187c30dbf99281a4172a3d6a14a5c231"}],"doc/management-notes.txt":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"15bb2b1dd95c15219c78ebbce6439c2ae38b2214","unresolved":true,"context_lines":[{"line_number":801,"context_line":"app custom control"},{"line_number":802,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":803,"context_line":"If the special string \"ACC\" is passed as {EXTRA} OpenVPN will determine"},{"line_number":804,"context_line":"the common app custom protocols between the client and the sever and insruct"},{"line_number":805,"context_line":"the client that the server will send control messages to the client using"},{"line_number":806,"context_line":"the ACC protocol."},{"line_number":807,"context_line":""}],"source_content_type":"text/plain","patch_set":7,"id":"581a5093_d86412d3","line":804,"updated":"2026-08-26 13:23:52.000000000","message":"\"instruct\"","commit_id":"ae69bda99914f727fb69583d84c44d0aa04929af"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"1a068d8821be70c0930aba545e577e3e5741e127","unresolved":false,"context_lines":[{"line_number":801,"context_line":"app custom control"},{"line_number":802,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":803,"context_line":"If the special string \"ACC\" is passed as {EXTRA} OpenVPN will determine"},{"line_number":804,"context_line":"the common app custom protocols between the client and the sever and insruct"},{"line_number":805,"context_line":"the client that the server will send control messages to the client using"},{"line_number":806,"context_line":"the ACC protocol."},{"line_number":807,"context_line":""}],"source_content_type":"text/plain","patch_set":7,"id":"2cfc1ab3_fa444e68","line":804,"in_reply_to":"581a5093_d86412d3","updated":"2026-08-26 16:20:26.000000000","message":"Done","commit_id":"ae69bda99914f727fb69583d84c44d0aa04929af"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"15bb2b1dd95c15219c78ebbce6439c2ae38b2214","unresolved":true,"context_lines":[{"line_number":811,"context_line":"COMMAND -- client-acc-msg (OpenVPN 2.8 or higher)"},{"line_number":812,"context_line":"------------------------------------------"},{"line_number":813,"context_line":""},{"line_number":814,"context_line":"This commands sends an app custom control message to a client,"},{"line_number":815,"context_line":"the format of the command is:"},{"line_number":816,"context_line":""},{"line_number":817,"context_line":"  client-acc-msg {CID} {KID}"}],"source_content_type":"text/plain","patch_set":7,"id":"6b2bd590_3c14cc8c","line":814,"updated":"2026-08-26 13:23:52.000000000","message":"\"command\"","commit_id":"ae69bda99914f727fb69583d84c44d0aa04929af"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"1a068d8821be70c0930aba545e577e3e5741e127","unresolved":false,"context_lines":[{"line_number":811,"context_line":"COMMAND -- client-acc-msg (OpenVPN 2.8 or higher)"},{"line_number":812,"context_line":"------------------------------------------"},{"line_number":813,"context_line":""},{"line_number":814,"context_line":"This commands sends an app custom control message to a client,"},{"line_number":815,"context_line":"the format of the command is:"},{"line_number":816,"context_line":""},{"line_number":817,"context_line":"  client-acc-msg {CID} {KID}"}],"source_content_type":"text/plain","patch_set":7,"id":"849c64a3_5071de33","line":814,"in_reply_to":"6b2bd590_3c14cc8c","updated":"2026-08-26 16:20:26.000000000","message":"Done","commit_id":"ae69bda99914f727fb69583d84c44d0aa04929af"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"15bb2b1dd95c15219c78ebbce6439c2ae38b2214","unresolved":true,"context_lines":[{"line_number":826,"context_line":"protocol -- the ACC protocol identified that this message should be"},{"line_number":827,"context_line":"            tagged with."},{"line_number":828,"context_line":""},{"line_number":829,"context_line":"flags    -- a colon seperated list of the encoding and the flag if"},{"line_number":830,"context_line":"            the message is a fragment. E.g. \"6:F\" for a base64 encoded"},{"line_number":831,"context_line":"            message that is also a fragment and not complete yet."},{"line_number":832,"context_line":""}],"source_content_type":"text/plain","patch_set":7,"id":"9e7ad244_cf52deae","line":829,"updated":"2026-08-26 13:23:52.000000000","message":"\"separated\"","commit_id":"ae69bda99914f727fb69583d84c44d0aa04929af"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"1a068d8821be70c0930aba545e577e3e5741e127","unresolved":false,"context_lines":[{"line_number":826,"context_line":"protocol -- the ACC protocol identified that this message should be"},{"line_number":827,"context_line":"            tagged with."},{"line_number":828,"context_line":""},{"line_number":829,"context_line":"flags    -- a colon seperated list of the encoding and the flag if"},{"line_number":830,"context_line":"            the message is a fragment. E.g. \"6:F\" for a base64 encoded"},{"line_number":831,"context_line":"            message that is also a fragment and not complete yet."},{"line_number":832,"context_line":""}],"source_content_type":"text/plain","patch_set":7,"id":"4d3e874a_f86d254d","line":829,"in_reply_to":"9e7ad244_cf52deae","updated":"2026-08-26 16:20:26.000000000","message":"Done","commit_id":"ae69bda99914f727fb69583d84c44d0aa04929af"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"15bb2b1dd95c15219c78ebbce6439c2ae38b2214","unresolved":true,"context_lines":[{"line_number":836,"context_line":"COMMAND -- acc-msg (OpenVPN 2.8 or higher)"},{"line_number":837,"context_line":"------------------------------------------"},{"line_number":838,"context_line":""},{"line_number":839,"context_line":"This commands sends an app custom command to the peer, the format of the"},{"line_number":840,"context_line":"command is"},{"line_number":841,"context_line":""},{"line_number":842,"context_line":"  acc-msg"}],"source_content_type":"text/plain","patch_set":7,"id":"5defbc51_afbedab4","line":839,"updated":"2026-08-26 13:23:52.000000000","message":"\"command\"","commit_id":"ae69bda99914f727fb69583d84c44d0aa04929af"},{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"15bb2b1dd95c15219c78ebbce6439c2ae38b2214","unresolved":true,"context_lines":[{"line_number":836,"context_line":"COMMAND -- acc-msg (OpenVPN 2.8 or higher)"},{"line_number":837,"context_line":"------------------------------------------"},{"line_number":838,"context_line":""},{"line_number":839,"context_line":"This commands sends an app custom command to the peer, the format of the"},{"line_number":840,"context_line":"command is"},{"line_number":841,"context_line":""},{"line_number":842,"context_line":"  acc-msg"}],"source_content_type":"text/plain","patch_set":7,"id":"2746ddcc_8b99b4c9","line":839,"updated":"2026-08-26 13:23:52.000000000","message":"It is not directly clear to me why we have two separate commands here? One if for P2MP and the other for P2P? Or something else?","commit_id":"ae69bda99914f727fb69583d84c44d0aa04929af"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"1a068d8821be70c0930aba545e577e3e5741e127","unresolved":false,"context_lines":[{"line_number":836,"context_line":"COMMAND -- acc-msg (OpenVPN 2.8 or higher)"},{"line_number":837,"context_line":"------------------------------------------"},{"line_number":838,"context_line":""},{"line_number":839,"context_line":"This commands sends an app custom command to the peer, the format of the"},{"line_number":840,"context_line":"command is"},{"line_number":841,"context_line":""},{"line_number":842,"context_line":"  acc-msg"}],"source_content_type":"text/plain","patch_set":7,"id":"eae2d13b_0570948e","line":839,"in_reply_to":"2746ddcc_8b99b4c9","updated":"2026-08-26 16:20:26.000000000","message":"Yes. Will explicitly mention that.","commit_id":"ae69bda99914f727fb69583d84c44d0aa04929af"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"1a068d8821be70c0930aba545e577e3e5741e127","unresolved":false,"context_lines":[{"line_number":836,"context_line":"COMMAND -- acc-msg (OpenVPN 2.8 or higher)"},{"line_number":837,"context_line":"------------------------------------------"},{"line_number":838,"context_line":""},{"line_number":839,"context_line":"This commands sends an app custom command to the peer, the format of the"},{"line_number":840,"context_line":"command is"},{"line_number":841,"context_line":""},{"line_number":842,"context_line":"  acc-msg"}],"source_content_type":"text/plain","patch_set":7,"id":"aa0be400_85d94649","line":839,"in_reply_to":"5defbc51_afbedab4","updated":"2026-08-26 16:20:26.000000000","message":"Done","commit_id":"ae69bda99914f727fb69583d84c44d0aa04929af"},{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"855024cf8338bbcd6e320209fcfbcd7d135a4ebf","unresolved":true,"context_lines":[{"line_number":801,"context_line":"app custom control"},{"line_number":802,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":803,"context_line":"If the special string \"ACC\" is passed as {EXTRA} OpenVPN will determine"},{"line_number":804,"context_line":"the common app custom protocols between the client and the sever and instruct"},{"line_number":805,"context_line":"the client that the server will send control messages to the client using"},{"line_number":806,"context_line":"the ACC protocol."},{"line_number":807,"context_line":""}],"source_content_type":"text/plain","patch_set":9,"id":"83e53506_b14c0f33","line":804,"updated":"2026-09-30 07:00:17.000000000","message":"Typo: \"sever\" -\u003e \"server\".","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"d355130c9d536fa45f26a9292f7a8357520d8d55","unresolved":false,"context_lines":[{"line_number":801,"context_line":"app custom control"},{"line_number":802,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":803,"context_line":"If the special string \"ACC\" is passed as {EXTRA} OpenVPN will determine"},{"line_number":804,"context_line":"the common app custom protocols between the client and the sever and instruct"},{"line_number":805,"context_line":"the client that the server will send control messages to the client using"},{"line_number":806,"context_line":"the ACC protocol."},{"line_number":807,"context_line":""}],"source_content_type":"text/plain","patch_set":9,"id":"6f4d2db7_38ec51b3","line":804,"in_reply_to":"83e53506_b14c0f33","updated":"2026-10-05 17:01:59.000000000","message":"Done","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"},{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"855024cf8338bbcd6e320209fcfbcd7d135a4ebf","unresolved":true,"context_lines":[{"line_number":806,"context_line":"the ACC protocol."},{"line_number":807,"context_line":""},{"line_number":808,"context_line":"The server should then use acc-msg command to send app custom control messages"},{"line_number":809,"context_line":"to the client to faciliate the pending authentication."},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"COMMAND -- client-acc-msg (OpenVPN 2.8 or higher)"},{"line_number":812,"context_line":"------------------------------------------"}],"source_content_type":"text/plain","patch_set":9,"id":"cc11b483_70a3a888","line":809,"updated":"2026-09-30 07:00:17.000000000","message":"Typo: \"faciliate\" -\u003e \"facilitate\".","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"d355130c9d536fa45f26a9292f7a8357520d8d55","unresolved":false,"context_lines":[{"line_number":806,"context_line":"the ACC protocol."},{"line_number":807,"context_line":""},{"line_number":808,"context_line":"The server should then use acc-msg command to send app custom control messages"},{"line_number":809,"context_line":"to the client to faciliate the pending authentication."},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"COMMAND -- client-acc-msg (OpenVPN 2.8 or higher)"},{"line_number":812,"context_line":"------------------------------------------"}],"source_content_type":"text/plain","patch_set":9,"id":"b07bd95d_e3ba9d46","line":809,"in_reply_to":"cc11b483_70a3a888","updated":"2026-10-05 17:01:59.000000000","message":"Done","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"},{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"855024cf8338bbcd6e320209fcfbcd7d135a4ebf","unresolved":true,"context_lines":[{"line_number":823,"context_line":"CID,KID -- client ID and Key ID. See documentation for \"\u003eCLIENT:\""},{"line_number":824,"context_line":"notification for more info."},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"protocol -- the ACC protocol identified that this message should be"},{"line_number":827,"context_line":"            tagged with."},{"line_number":828,"context_line":""},{"line_number":829,"context_line":"flags    -- a colon separated list of the encoding and the flag if"}],"source_content_type":"text/plain","patch_set":9,"id":"2e349d32_61be1958","line":826,"updated":"2026-09-30 07:00:17.000000000","message":"Typo: \"identified\" -\u003e \"identifier\".","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"d355130c9d536fa45f26a9292f7a8357520d8d55","unresolved":false,"context_lines":[{"line_number":823,"context_line":"CID,KID -- client ID and Key ID. See documentation for \"\u003eCLIENT:\""},{"line_number":824,"context_line":"notification for more info."},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"protocol -- the ACC protocol identified that this message should be"},{"line_number":827,"context_line":"            tagged with."},{"line_number":828,"context_line":""},{"line_number":829,"context_line":"flags    -- a colon separated list of the encoding and the flag if"}],"source_content_type":"text/plain","patch_set":9,"id":"5290d71b_74205003","line":826,"in_reply_to":"2e349d32_61be1958","updated":"2026-10-05 17:01:59.000000000","message":"Done","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"},{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"855024cf8338bbcd6e320209fcfbcd7d135a4ebf","unresolved":true,"context_lines":[{"line_number":1313,"context_line":"    \u003eACC:{protocol},{fragment},{msg_base64}"},{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":"    The protocol is a short ascii string identifying the app specific custom"},{"line_number":1316,"context_line":"    protocol and identifies the protocol. If fragment is set to 1, the message"},{"line_number":1317,"context_line":"    is not complete and the next message should be concatenated to this message"},{"line_number":1318,"context_line":"    to form a complete message."},{"line_number":1319,"context_line":""}],"source_content_type":"text/plain","patch_set":9,"id":"ad0bd638_17d407c1","line":1316,"updated":"2026-09-30 07:00:17.000000000","message":"\"identifying the app specific custom protocol and identifies the protocol\" says the same thing twice.","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"d355130c9d536fa45f26a9292f7a8357520d8d55","unresolved":false,"context_lines":[{"line_number":1313,"context_line":"    \u003eACC:{protocol},{fragment},{msg_base64}"},{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":"    The protocol is a short ascii string identifying the app specific custom"},{"line_number":1316,"context_line":"    protocol and identifies the protocol. If fragment is set to 1, the message"},{"line_number":1317,"context_line":"    is not complete and the next message should be concatenated to this message"},{"line_number":1318,"context_line":"    to form a complete message."},{"line_number":1319,"context_line":""}],"source_content_type":"text/plain","patch_set":9,"id":"fc579552_89240bf8","line":1316,"in_reply_to":"ad0bd638_17d407c1","updated":"2026-10-05 17:01:59.000000000","message":"Done","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"}],"src/openvpn/acc.c":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"855024cf8338bbcd6e320209fcfbcd7d135a4ebf","unresolved":true,"context_lines":[{"line_number":182,"context_line":"    {"},{"line_number":183,"context_line":"        err_reason \u003d \"could not extract payload length field\";"},{"line_number":184,"context_line":"        goto err;"},{"line_number":185,"context_line":"    }"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    int flags \u003d parse_acc_message_flags(\u0026buf, \u0026err_reason, \u0026gc);"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"b956b7fe_f53c16ee","line":185,"updated":"2026-09-30 07:00:17.000000000","message":"There\u0027s no comparison of `payload_len` against `acc_max_message_length` here.","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"d355130c9d536fa45f26a9292f7a8357520d8d55","unresolved":false,"context_lines":[{"line_number":182,"context_line":"    {"},{"line_number":183,"context_line":"        err_reason \u003d \"could not extract payload length field\";"},{"line_number":184,"context_line":"        goto err;"},{"line_number":185,"context_line":"    }"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    int flags \u003d parse_acc_message_flags(\u0026buf, \u0026err_reason, \u0026gc);"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":9,"id":"60c40c96_64ed4629","line":185,"in_reply_to":"b956b7fe_f53c16ee","updated":"2026-10-05 17:01:59.000000000","message":"I added a comment that this is on purpose","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"},{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"855024cf8338bbcd6e320209fcfbcd7d135a4ebf","unresolved":true,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"bool"},{"line_number":220,"context_line":"send_acc_message(struct context *c,"},{"line_number":221,"context_line":"                 struct tls_multi *tls_multi,"},{"line_number":222,"context_line":"                 struct tls_session *session,"},{"line_number":223,"context_line":"                 const char *protocol, bool fragment,"},{"line_number":224,"context_line":"                 const char *msg, bool base64)"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"65230e66_77fc9817","line":221,"updated":"2026-09-30 07:00:17.000000000","message":"This parameter is not used.","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"d355130c9d536fa45f26a9292f7a8357520d8d55","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"bool"},{"line_number":220,"context_line":"send_acc_message(struct context *c,"},{"line_number":221,"context_line":"                 struct tls_multi *tls_multi,"},{"line_number":222,"context_line":"                 struct tls_session *session,"},{"line_number":223,"context_line":"                 const char *protocol, bool fragment,"},{"line_number":224,"context_line":"                 const char *msg, bool base64)"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"cc49d2e2_4358d549","line":221,"in_reply_to":"65230e66_77fc9817","updated":"2026-10-05 17:01:59.000000000","message":"Done","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"}],"src/openvpn/init.c":[{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"855024cf8338bbcd6e320209fcfbcd7d135a4ebf","unresolved":true,"context_lines":[{"line_number":4306,"context_line":"management_acc_msg(void *arg,"},{"line_number":4307,"context_line":"                   struct buffer_list *input) /* ownership transferred */"},{"line_number":4308,"context_line":"{"},{"line_number":4309,"context_line":"    struct gc_arena gc \u003d gc_new();"},{"line_number":4310,"context_line":"    struct context *c \u003d arg;"},{"line_number":4311,"context_line":""},{"line_number":4312,"context_line":"    bool ret \u003d true;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"8e74f3d5_c1a042c1","line":4309,"updated":"2026-09-30 07:00:17.000000000","message":"`gc` doesn\u0027t appear to be used at all in this function.","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"d355130c9d536fa45f26a9292f7a8357520d8d55","unresolved":false,"context_lines":[{"line_number":4306,"context_line":"management_acc_msg(void *arg,"},{"line_number":4307,"context_line":"                   struct buffer_list *input) /* ownership transferred */"},{"line_number":4308,"context_line":"{"},{"line_number":4309,"context_line":"    struct gc_arena gc \u003d gc_new();"},{"line_number":4310,"context_line":"    struct context *c \u003d arg;"},{"line_number":4311,"context_line":""},{"line_number":4312,"context_line":"    bool ret \u003d true;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"6d5d694f_45c242c8","line":4309,"in_reply_to":"8e74f3d5_c1a042c1","updated":"2026-10-05 17:01:59.000000000","message":"Done","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"},{"author":{"_account_id":1000053,"name":"Răzvan Cojocaru","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"855024cf8338bbcd6e320209fcfbcd7d135a4ebf","unresolved":true,"context_lines":[{"line_number":4309,"context_line":"    struct gc_arena gc \u003d gc_new();"},{"line_number":4310,"context_line":"    struct context *c \u003d arg;"},{"line_number":4311,"context_line":""},{"line_number":4312,"context_line":"    bool ret \u003d true;"},{"line_number":4313,"context_line":"    if (buffer_list_defined(input) \u0026\u0026 c-\u003ec2.tls_multi)"},{"line_number":4314,"context_line":"    {"},{"line_number":4315,"context_line":"        struct tls_multi *multi \u003d c-\u003ec2.tls_multi;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"0d4c5414_d617998d","line":4312,"updated":"2026-09-30 07:00:17.000000000","message":"Shouldn\u0027t `ret` start out as `false`?","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"},{"author":{"_account_id":1000003,"name":"Arne Schwabe","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"d355130c9d536fa45f26a9292f7a8357520d8d55","unresolved":false,"context_lines":[{"line_number":4309,"context_line":"    struct gc_arena gc \u003d gc_new();"},{"line_number":4310,"context_line":"    struct context *c \u003d arg;"},{"line_number":4311,"context_line":""},{"line_number":4312,"context_line":"    bool ret \u003d true;"},{"line_number":4313,"context_line":"    if (buffer_list_defined(input) \u0026\u0026 c-\u003ec2.tls_multi)"},{"line_number":4314,"context_line":"    {"},{"line_number":4315,"context_line":"        struct tls_multi *multi \u003d c-\u003ec2.tls_multi;"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"7f46c860_bd4f124e","line":4312,"in_reply_to":"0d4c5414_d617998d","updated":"2026-10-05 17:01:59.000000000","message":"Acknowledged","commit_id":"6a3ea0b127610c2fa41b1aecf97f81939a1b8ad7"}],"src/openvpn/options.c":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"0072bc73d780e4693a3894e0b783e86274fc1f24","unresolved":true,"context_lines":[{"line_number":7134,"context_line":"        VERIFY_PERMISSION(OPT_P_GENERAL);"},{"line_number":7135,"context_line":"        options-\u003eforce_key_material_export \u003d true;"},{"line_number":7136,"context_line":"    }"},{"line_number":7137,"context_line":"    else if (streq(p[0], \"app-custom-control\") \u0026\u0026 p[1] \u0026\u0026 !p[2])"},{"line_number":7138,"context_line":"    {"},{"line_number":7139,"context_line":"        VERIFY_PERMISSION(OPT_P_GENERAL);"},{"line_number":7140,"context_line":"        options-\u003eacc_protocols \u003d p[1];"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"8ad491b8_00cb2562","line":7137,"updated":"2026-10-15 11:00:46.000000000","message":"Add to usage?","commit_id":"e0ad2954187c30dbf99281a4172a3d6a14a5c231"}],"src/openvpn/push.c":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"0072bc73d780e4693a3894e0b783e86274fc1f24","unresolved":true,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    if (strncmp(m, \"ACC:\", 4) \u003d\u003d 0)"},{"line_number":266,"context_line":"    {"},{"line_number":267,"context_line":"        parse_server_pushed_info_acc(c, \u0026m);"},{"line_number":268,"context_line":"        return;"},{"line_number":269,"context_line":"    }"},{"line_number":270,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":11,"id":"bbbd2c0f_63345053","line":267,"updated":"2026-10-15 11:00:46.000000000","message":"why use the string instead of the buffer here?","commit_id":"e0ad2954187c30dbf99281a4172a3d6a14a5c231"}],"src/openvpn/push_util.c":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"0072bc73d780e4693a3894e0b783e86274fc1f24","unresolved":true,"context_lines":[{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    RETURN_UPDATE_STATUS(n_sent);"},{"line_number":370,"context_line":"}"},{"line_number":371,"context_line":"#endif /* ifdef ENABLE_MANAGEMENT */"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"1f759213_e4501889","line":371,"updated":"2026-10-15 11:00:46.000000000","message":"Superfluous change","commit_id":"e0ad2954187c30dbf99281a4172a3d6a14a5c231"}],"tests/unit_tests/openvpn/Makefile.am":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"0072bc73d780e4693a3894e0b783e86274fc1f24","unresolved":true,"context_lines":[{"line_number":103,"context_line":"\t@TEST_CFLAGS@"},{"line_number":104,"context_line":"ssl_testdriver_LDFLAGS \u003d @TEST_LDFLAGS@  $(OPTIONAL_CRYPTO_LIBS)"},{"line_number":105,"context_line":"ssl_testdriver_SOURCES \u003d test_ssl.c \\"},{"line_number":106,"context_line":"    test_acc.c test_acc.h \\"},{"line_number":107,"context_line":"\tmock_msg.c mock_msg.h test_common.h \\"},{"line_number":108,"context_line":"\tmock_management.c \\"},{"line_number":109,"context_line":"\tmock_ssl_dependencies.c mock_win32_execve.c \\"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"98eafe14_3b65f58e","line":106,"updated":"2026-10-15 11:00:46.000000000","message":"whitespace","commit_id":"e0ad2954187c30dbf99281a4172a3d6a14a5c231"}],"tests/unit_tests/openvpn/mock_management.c":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"0072bc73d780e4693a3894e0b783e86274fc1f24","unresolved":true,"context_lines":[{"line_number":61,"context_line":"void"},{"line_number":62,"context_line":"management_sleep(const int n)"},{"line_number":63,"context_line":"{"},{"line_number":64,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"d98eb7b8_09a3846e","line":64,"updated":"2026-10-15 11:00:46.000000000","message":"Superfluous change","commit_id":"e0ad2954187c30dbf99281a4172a3d6a14a5c231"}],"tests/unit_tests/openvpn/mock_management.h":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"0072bc73d780e4693a3894e0b783e86274fc1f24","unresolved":true,"context_lines":[{"line_number":20,"context_line":" *"},{"line_number":21,"context_line":" *  You should have received a copy of the GNU General Public License along"},{"line_number":22,"context_line":" *  with this program; if not, write to the Free Software Foundation, Inc.,"},{"line_number":23,"context_line":" *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."},{"line_number":24,"context_line":" */"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"#ifndef MOCK_MANAGEMENT_H"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"7db95ab2_14dd2db2","line":23,"updated":"2026-10-15 11:00:46.000000000","message":"old header","commit_id":"e0ad2954187c30dbf99281a4172a3d6a14a5c231"}],"tests/unit_tests/openvpn/test_acc.h":[{"author":{"_account_id":1000001,"name":"Frank Lichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"0072bc73d780e4693a3894e0b783e86274fc1f24","unresolved":true,"context_lines":[{"line_number":20,"context_line":" *"},{"line_number":21,"context_line":" *  You should have received a copy of the GNU General Public License along"},{"line_number":22,"context_line":" *  with this program; if not, write to the Free Software Foundation, Inc.,"},{"line_number":23,"context_line":" *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."},{"line_number":24,"context_line":" */"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"#ifndef TEST_ACC_H"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"416878a1_7c543c75","line":23,"updated":"2026-10-15 11:00:46.000000000","message":"old header","commit_id":"e0ad2954187c30dbf99281a4172a3d6a14a5c231"}]}
