From patchwork Mon Jan 22 09:29:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Selva Nair X-Patchwork-Id: 206 Return-Path: Delivered-To: patchwork@openvpn.net Delivered-To: patchwork@openvpn.net Received: from director2.mail.ord1d.rsapps.net ([172.27.255.59]) by backend31.mail.ord1d.rsapps.net (Dovecot) with LMTP id FJJyBxtKZlrAawAAgoeIoA for ; Mon, 22 Jan 2018 15:31:23 -0500 Received: from proxy15.mail.iad3a.rsapps.net ([172.27.255.59]) by director2.mail.ord1d.rsapps.net (Dovecot) with LMTP id O2mkChtKZlqDVwAAgYhSiA ; Mon, 22 Jan 2018 15:31:23 -0500 Received: from smtp18.gate.iad3a ([172.27.255.59]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by proxy15.mail.iad3a.rsapps.net (Dovecot) with LMTP id UvlKBxtKZlo8QgAAHi9b9g ; Mon, 22 Jan 2018 15:31:23 -0500 X-Spam-Threshold: 95 X-Spam-Score: 0 X-Spam-Flag: NO X-Virus-Scanned: OK X-Orig-To: openvpnslackdevel@openvpn.net X-Originating-Ip: [216.34.181.88] Authentication-Results: smtp18.gate.iad3a.rsapps.net; iprev=pass policy.iprev="216.34.181.88"; spf=pass smtp.mailfrom="openvpn-devel-bounces@lists.sourceforge.net" smtp.helo="lists.sourceforge.net"; dkim=fail (signature verification failed) header.d=sourceforge.net; dkim=fail (signature verification failed) header.d=sf.net; dkim=fail (signature verification failed) header.d=gmail.com; dmarc=fail (p=none; dis=none) header.from=gmail.com X-Classification-ID: 35d533f2-ffb3-11e7-8047-bc305bf54030-1-1 Received: from [216.34.181.88] ([216.34.181.88:48035] helo=lists.sourceforge.net) by smtp18.gate.iad3a.rsapps.net (envelope-from ) (ecelerity 4.2.1.56364 r(Core:4.2.1.14)) with ESMTPS (cipher=DHE-RSA-AES256-GCM-SHA384) id D6/42-05255-A1A466A5; Mon, 22 Jan 2018 15:31:23 -0500 Received: from localhost ([127.0.0.1] helo=sfs-ml-3.v29.ch3.sourceforge.com) by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.89) (envelope-from ) id 1ediil-0000cQ-VJ; Mon, 22 Jan 2018 20:29:35 +0000 Received: from sfi-mx-4.v28.ch3.sourceforge.com ([172.29.28.194] helo=mx.sourceforge.net) by sfs-ml-3.v29.ch3.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.89) (envelope-from ) id 1ediik-0000cJ-Of for openvpn-devel@lists.sourceforge.net; Mon, 22 Jan 2018 20:29:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=6ZVf+hyMud3Lg7y0J//WwFVcTJKX4sZ7g5Sdu4Wy/Dk=; b=fmE60g5RQXR/I+6Y4p5KtL32q9 LieBHvVg3+ula01JEph0QAzMuwYMz4L+XxqiRr2U3PhWBTvfggbyGnmIJ1pdsGJZ8t5Z78pla+e5I M98p3fwnxCsvNliV9pzLl/jQ7N6xa3UhObj9NkMW4qHZyMHRSG80YOZm6GhPOGfYf+VU=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:MIME-Version: Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=6ZVf+hyMud3Lg7y0J//WwFVcTJKX4sZ7g5Sdu4Wy/Dk=; b=Up6vNlWEhmcYIwckIvsPS2JVkK XNA1mgzNWcmKkCnHvROYN7vUtU8/+/tu50w4YnwouNwsGVyEN/eeBiDUa99kCg7yheEjPZVd0YL6t n2VpjDXxEtnMz1crhOD98/U+hwP6EW/0EVibpO5MDBAr7aPOTfXF2Fm0FmLDLKzVErV8=; Received: from mail-io0-f171.google.com ([209.85.223.171]) by sfi-mx-4.v28.ch3.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.89) id 1ediii-0007YQ-Gy for openvpn-devel@lists.sourceforge.net; Mon, 22 Jan 2018 20:29:34 +0000 Received: by mail-io0-f171.google.com with SMTP id f89so10821479ioj.4 for ; Mon, 22 Jan 2018 12:29:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=6ZVf+hyMud3Lg7y0J//WwFVcTJKX4sZ7g5Sdu4Wy/Dk=; b=aaHJ0VTV7iRmKw0NTidn8D5MbiQtausueQ1AzAmTeXsqc0gRLDYD4ZlIR30aLhwUM9 0B8/xB4OJUWQuYdX9wA4icP1ePFBEuEEFE063XZKF8DtaA5aQmoAI6trK6/H7gGb7F/p Qy8IBjKz7ai/tSw3wXUXM9DWw7+VSd3BU3tO0tSI8eYisD0vHOXoIke92bJP4dsNcbQz g5pNTbzhxh7uOpb+tXZ1Cd0HFhBWRPsZTsx7ocrhrueN1bO7GThvzy72GQXhY/ZIb76u wfarQ+v9WMH5ZPStibB7vNIogzcRShA5fwI1DP0/G3MVf5YOazcK+UL24XlalvJUGHC9 +h3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=6ZVf+hyMud3Lg7y0J//WwFVcTJKX4sZ7g5Sdu4Wy/Dk=; b=G7tVFhV/LogzH1wQFJ4kzhYkZH3F4aSJxJgJgJzsK6nEA350ZIPE8/KklSqQiNq+XI KAiSUIY1YzhzBVXKaU/5UDLMtX6sWB5iSK5HIb7zFMp+p3PV2FJpOKURhRcXdod9dKxz 7alRNZnCt+Q49Ga17GYGXcw0rAID10DX0TL1V+oCgSfrd0lmff6nU42zqR/0C1e33pdo 3QHscP5mGoZjBG23a8MVnQkAqsrzmspv+OVZSaddJqYKzefbzIjBnEoQQYg4GmpIVi9N kG+CHxdGy2o0oLfIHWKm9e1tkXcA8yHeQmiBHObwbEvD5EEtbWgTCxL0UGm77bQVzjGc FAgA== X-Gm-Message-State: AKwxytcA4WCxKG2BrtOh5pt1N4JxVsZtovc5zQ8c0Vt30hVIp4HotyHe fHTb1itVySisqMUU6WG7oDUIzcg9 X-Google-Smtp-Source: AH8x2265TxfDo6ZErj8/9UyyScD4sRaMfm4FphD3AvmA0BftpIvAksGbcU8BeQD1h6ep03XUEImxtg== X-Received: by 10.107.137.26 with SMTP id l26mr207166iod.108.1516652966854; Mon, 22 Jan 2018 12:29:26 -0800 (PST) Received: from saturn.home.sansel.ca (CPE40167ea0e1c2-CM788df74daaa0.cpe.net.cable.rogers.com. [99.228.215.92]) by smtp.gmail.com with ESMTPSA id f16sm8411512iob.75.2018.01.22.12.29.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 22 Jan 2018 12:29:25 -0800 (PST) From: selva.nair@gmail.com To: openvpn-devel@lists.sourceforge.net Date: Mon, 22 Jan 2018 15:29:20 -0500 Message-Id: <1516652960-31891-1-git-send-email-selva.nair@gmail.com> X-Mailer: git-send-email 2.1.4 X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (selva.nair[at]gmail.com) -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [209.85.223.171 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-Headers-End: 1ediii-0007YQ-Gy Subject: [Openvpn-devel] A proposal to add management client version X-BeenThere: openvpn-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: openvpn-devel-bounces@lists.sourceforge.net X-getmail-retrieved-from-mailbox: Inbox From: Selva Nair RFC: only compile-tested - Allow "version" command from client to management to set the version of management interface supported by the client by specifying an optional parameter. If no parameter is specified the current the version of OpenVPN and its management interface is returned (current behaviour). The client version defaults to 1 which is the current version of the Management Interface. This will allow adding new features to the management interface without breaking existing clients. --- doc/management-notes.txt | 6 +++++- src/openvpn/manage.c | 17 ++++++++++++++++- src/openvpn/manage.h | 4 +--- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/doc/management-notes.txt b/doc/management-notes.txt index a9ba18a..e437966 100644 --- a/doc/management-notes.txt +++ b/doc/management-notes.txt @@ -430,8 +430,12 @@ Command examples: COMMAND -- version ------------------ -Show the current OpenVPN and Management Interface versions. +Set the version of Management Interface supported by the client or +show the current OpenVPN and Management Interface versions. +Command examples: + version 1.1 -- Change management version of client to 1.1 (default = 1) + version -- Show the version of OpenVPN and its Management Interface COMMAND -- auth-retry --------------------- diff --git a/src/openvpn/manage.c b/src/openvpn/manage.c index 650f9e0..d695b76 100644 --- a/src/openvpn/manage.c +++ b/src/openvpn/manage.c @@ -123,7 +123,7 @@ man_help(void) msg(M_CLIENT, "test n : Produce n lines of output for testing/debugging."); msg(M_CLIENT, "username type u : Enter username u for a queried OpenVPN username."); msg(M_CLIENT, "verb [n] : Set log verbosity level to n, or show if n is absent."); - msg(M_CLIENT, "version : Show current version number."); + msg(M_CLIENT, "version [x] : Set client's version or show current version number of daemon."); msg(M_CLIENT, "END"); } @@ -1241,6 +1241,15 @@ man_network_change(struct management *man, bool samenetwork) #endif static void +set_client_version(struct management *man, const char *version) +{ + if (version) + { + man->connection.client_version = strtof(version, NULL); + } +} + +static void man_dispatch_command(struct management *man, struct status_output *so, const char **p, const int nparms) { struct gc_arena gc = gc_new(); @@ -1255,6 +1264,10 @@ man_dispatch_command(struct management *man, struct status_output *so, const cha { man_help(); } + else if (streq(p[0], "version") && p[1]) + { + set_client_version(man, p[1]); + } else if (streq(p[0], "version")) { msg(M_CLIENT, "OpenVPN Version: %s", title_string); @@ -2508,6 +2521,8 @@ man_connection_init(struct management *man) man->connection.es = event_set_init(&maxevents, EVENT_METHOD_FAST); } + man->connection.client_version = 1; /* default version */ + /* * Listen/connect socket */ diff --git a/src/openvpn/manage.h b/src/openvpn/manage.h index 364488f..dc37b8c 100644 --- a/src/openvpn/manage.h +++ b/src/openvpn/manage.h @@ -311,13 +311,11 @@ struct man_connection { int up_query_mode; struct user_pass up_query; #ifdef MANAGMENT_EXTERNAL_KEY struct buffer_list *rsa_sig; #endif #ifdef TARGET_ANDROID int fdtosend; int lastfdreceived; #endif + float client_version; }; struct management