[Openvpn-devel,v5] Fixup version command on management interface

Message ID 20260224213036.31845-1-gert@greenie.muc.de
State New
Headers show
Series [Openvpn-devel,v5] Fixup version command on management interface | expand

Commit Message

Gert Doering Feb. 24, 2026, 9:30 p.m. UTC
From: Selva Nair <selva.nair@gmail.com>

All commands to the management interface are supposed to be
responded with either a one-line "SUCCESS:/ERROR:" message
or a multi-line reply terminated by "END". But, curently we
silently accept the "version n" command wih no response. This
causes clients like OpenVPN-GUI lock-up if version command is
used, waiting for ever for a reply.

Fix this by adding a SUCCESS response if client version
is set to a value >= 4. As the highest client version in use
until now is 3, this should not affect any work-arounds in
existing clients. ERROR response is generated if the version
parameter is null which never happens in practice.

Change-Id: I76dc80a9d9b29e401b7bbd59e0c46baf751d2e4a
Signed-off-by: Selva Nair <selva.nair@gmail.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1528
---

This change was reviewed on Gerrit and approved by at least one
developer. I request to merge it to master.

Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1528
This mail reflects revision 5 of this Change.

Acked-by according to Gerrit (reflected above):
Gert Doering <gert@greenie.muc.de>

Comments

Gert Doering Feb. 25, 2026, 8:42 a.m. UTC | #1
Thanks for that.  As discussed, we keep full compatibility ("lack of
SUCCESS response") for up to v3, and document this.

I'm looking forward to a followup patch that documents v1, v2, v3 and v4...

Your patch has been applied to the master and release/2.7 branch.

I do not foresee new mgmt features being added to 2.6.x, so I don't
think we need this in release/2.6 (but if it is needed, we can always
cherrypick it "on demand")

commit adc0febaeac0d83246dbd2cc77b2a5d80e41741e (master)
commit d88e9023930a74cebb8ceab2b91587221675846c (release/2.7)
Author: Selva Nair
Date:   Tue Feb 24 22:30:30 2026 +0100

     Fixup version command on management interface

     Signed-off-by: Selva Nair <selva.nair@gmail.com>
     Acked-by: Gert Doering <gert@greenie.muc.de>
     Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1528
     Message-Id: <20260224213036.31845-1-gert@greenie.muc.de>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg35782.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering

Patch

diff --git a/doc/management-notes.txt b/doc/management-notes.txt
index 1a5c311..86b74f3 100644
--- a/doc/management-notes.txt
+++ b/doc/management-notes.txt
@@ -492,6 +492,10 @@ 
   version 2  -- Change management version of client to 2 (default = 1)
   version    -- Show the version of OpenVPN and its Management Interface
 
+Note: Until version 3, no response was generated when client sets its
+version. This was fixed starting version 4: clients should expect
+"SUCCESS: .. " message only when setting the version to >= 4.
+
 COMMAND -- auth-retry
 ---------------------
 
diff --git a/src/openvpn/manage.c b/src/openvpn/manage.c
index 37ae6b3..03ff5b3 100644
--- a/src/openvpn/manage.c
+++ b/src/openvpn/manage.c
@@ -1333,6 +1333,15 @@ 
     if (version)
     {
         man->connection.client_version = atoi(version);
+        /* Prior to version 3, we missed to respond to this command. Acknowledge only if version >= 4 */
+        if (man->connection.client_version >= 4)
+        {
+            msg(M_CLIENT, "SUCCESS: Management client version set to %d", man->connection.client_version);
+        }
+    }
+    else
+    {
+        msg(M_CLIENT, "ERROR: Invalid value specified for management client version");
     }
 }