[Openvpn-devel,v2] Document management client versions
Commit Message
From: Selva Nair <selva.nair@gmail.com>
Also add an enum to keep track of client version updates.
Change-Id: I1c01fa1bc7d65ac060b334724feb56ef4d0b5d35
Signed-off-by: Selva Nair <selva.nair@gmail.com>
Acked-by: Arne Schwabe <arne-openvpn@rfc2549.org>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1552
---
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/+/1552
This mail reflects revision 2 of this Change.
Acked-by according to Gerrit (reflected above):
Arne Schwabe <arne-openvpn@rfc2549.org>
Comments
Documentation is good, less magic numbers is good, in it goes ;-)
It looks good to me, has an ACK from Arne. Did not specifically test
mgmt client versions - Arne and Selva do know that field much better.
Your patch has been applied to the master and release/2.7 branch.
commit d5814ecd2323ec7c2e6dad2cbf3884c031d9a5a3 (master)
commit cb154f0363376deda076c3b0ec6cf3c640fd1e86 (release/2.7)
Author: Selva Nair
Date: Mon Mar 2 15:18:02 2026 +0100
Document management client versions
Signed-off-by: Selva Nair <selva.nair@gmail.com>
Acked-by: Arne Schwabe <arne-openvpn@rfc2549.org>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1552
Message-Id: <20260302141811.5697-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg35805.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
--
kind regards,
Gert Doering
@@ -496,6 +496,10 @@
version. This was fixed starting version 4: clients should expect
"SUCCESS: .. " message only when setting the version to >= 4.
+Minimum client version required for certain features is listed below:
+ >PK_SIGN:[base64] -- version 2 or greater
+ >PK_SIGN:[base64],[alg] -- version 3 or greater
+
COMMAND -- auth-retry
---------------------
@@ -61,6 +61,17 @@
/* tag for blank username/password */
static const char blank_up[] = "[[BLANK]]";
+/*
+ * Management client versions indicating feature support in client.
+ * Append new values as needed but do not change exisiting ones.
+ */
+enum mcv
+{
+ MCV_DEFAULT = 1,
+ MCV_PKSIGN = 2,
+ MCV_PKSIGN_ALG = 3,
+};
+
struct management *management; /* GLOBAL */
/* static forward declarations */
@@ -1333,8 +1344,8 @@
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)
+ /* Until MCV_PKSIGN_ALG, we missed to respond to this command. Acknowledge only if version is newer */
+ if (man->connection.client_version > MCV_PKSIGN_ALG)
{
msg(M_CLIENT, "SUCCESS: Management client version set to %d", man->connection.client_version);
}
@@ -2656,7 +2667,7 @@
man->connection.es = event_set_init(&maxevents, EVENT_METHOD_FAST);
}
- man->connection.client_version = 1; /* default version */
+ man->connection.client_version = MCV_DEFAULT; /* default version */
/*
* Listen/connect socket
@@ -3776,14 +3787,14 @@
const char *desc = "pk-sign";
struct buffer buf_data = alloc_buf(strlen(b64_data) + strlen(algorithm) + 20);
- if (man->connection.client_version <= 1)
+ if (man->connection.client_version <= MCV_DEFAULT)
{
prompt = "RSA_SIGN";
desc = "rsa-sign";
}
buf_write(&buf_data, b64_data, (int)strlen(b64_data));
- if (man->connection.client_version > 2)
+ if (man->connection.client_version >= MCV_PKSIGN_ALG)
{
buf_write(&buf_data, ",", (int)strlen(","));
buf_write(&buf_data, algorithm, (int)strlen(algorithm));