Complete push-peer-info documentation and allow IV_PLAT_VER for other platforms than Windows if the client UI supplies it.

Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <1455624280-3165-1-git-send-email-arne@rfc2549.org>
URL: http://article.gmane.org/gmane.network.openvpn.devel/11175

Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
Arne Schwabe 2016-02-16 13:04:40 +01:00 committed by Gert Doering
parent d16072cf17
commit 960524a9af
2 changed files with 32 additions and 5 deletions

View file

@ -3000,16 +3000,41 @@ option with the new value.
.\"*********************************************************
.TP
.B \-\-push\-peer\-info
Push additional information about the client to server. The additional information
consists of the following data:
Push additional information about the client to server.
The following data is always pushed to the server:
IV_VER=<version> -- the client OpenVPN version
IV_PLAT=[linux|solaris|openbsd|mac|netbsd|freebsd|win] -- the client OS platform
IV_LZO_STUB=1 -- if client was built with LZO stub capability
IV_LZ4=1 -- if the client supports LZ4 compressions.
IV_RGI6=1 -- if the client supports
.B \-\-redirect\-gateway
for ipv6
IV_PROTO=2 -- if the client supports peer-id floating mechansim
IV_NCP=2 -- negotiable ciphers, client supports
.B \-\-cipher
pushed by the server, a value of 2 or greater indicates client
supports AES-GCM-128 and AES-GCM-256.
IV_UI_VER=<gui_id> <version> -- the UI version of a UI if one is
running, for example "de.blinkt.openvpn 0.5.47" for the
Android app.
When
.B \-\-push\-peer\-info
is enabled the additional information consists of the following data:
IV_HWADDR=<mac address> -- the MAC address of clients default gateway
IV_LZO_STUB=1 -- if client was built with LZO stub capability
IV_SSL=<version string> -- the ssl version used by the client, e.g. "OpenSSL 1.0.2f 28 Jan 2016".
IV_PLAT_VER=x.y - the version of the operating system, e.g. 6.1 for Windows 7.
UV_<name>=<value> -- client environment variables whose names start with "UV_"
.\"*********************************************************

View file

@ -1906,12 +1906,14 @@ push_peer_info(struct buffer *buf, struct tls_session *session)
#endif
}
/* push env vars that begin with UV_ and IV_GUI_VER */
/* push env vars that begin with UV_, IV_PLAT_VER and IV_GUI_VER */
for (e=es->list; e != NULL; e=e->next)
{
if (e->string)
{
if (((strncmp(e->string, "UV_", 3)==0 && session->opt->push_peer_info_detail >= 2)
if ((((strncmp(e->string, "UV_", 3)==0 ||
strncmp(e->string, "IV_PLAT_VER=", sizeof("IV_PLAT_VER=")-1)==0)
&& session->opt->push_peer_info_detail >= 2)
|| (strncmp(e->string,"IV_GUI_VER=",sizeof("IV_GUI_VER=")-1)==0))
&& buf_safe(&out, strlen(e->string)+1))
buf_printf (&out, "%s\n", e->string);