From patchwork Wed Oct 29 16:38:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gert Doering X-Patchwork-Id: 4543 Return-Path: Delivered-To: patchwork@openvpn.net Received: by 2002:a05:7001:2f13:b0:72f:f16c:e055 with SMTP id sa19csp369638mab; Wed, 29 Oct 2025 09:39:11 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUA0fveMapA9uGtQKPtjfaAzr9Z/5iFJ9McdCq8cj3kOwnjiv6/rWzxhY54D8rP2zNOG/J4WLhWla4=@openvpn.net X-Google-Smtp-Source: AGHT+IFSJupe+HAQOz8rs4lxJREMgP6Fqw2pca5gcGCJDyM9R1piEx963uS+sA8OrRLUBJeU8Wnm X-Received: by 2002:a05:6e02:1c23:b0:431:d8ce:fa15 with SMTP id e9e14a558f8ab-432f8f94324mr44225715ab.5.1761755950941; Wed, 29 Oct 2025 09:39:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1761755950; cv=none; d=google.com; s=arc-20240605; b=hm2M7Y0zCZNYJJEJw7YMt8lvEG/mbGnjPy3lJjVo1Gi6DphKx4Zj/n3XUUrKO0NLR4 joXv+cGyTzhosvtNy6a2MJFE0JvRGtUqKZQR4J1WsppHxsUyFcLq1sCyIxekQM6DDWGh NQYI0ppo4bPjpqt1ECXhB6gtcGIZPVEo+sJTOaxN4vzKAUYt4qFxULrOY16fkO831EJ1 U+e5WnJPfDHllCYc/tEwba2u1BIa9YNtqPrt27axF6Lba5GOT3eQGb2LmiCdmFBjuRuv +l3EUrJaldYgxfcUPsxv0RcbyKQKqQ2fcNIoA/MJ6heElSLiXG1NYmfJufUnBm11kS7/ 1lJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=errors-to:content-transfer-encoding:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence:subject :mime-version:references:in-reply-to:message-id:date:to:from :dkim-signature:dkim-signature:dkim-signature; bh=UPpF++ZBUIXIQR3XJT/+giUzG24vr0UqqiiidKtVm7k=; fh=4NbAC/LsuMLI0S0hprUlLSLCiHwg6SCAifhH718Jh0Q=; b=av+tq7vYBSwzRw7FDEA2QE4fdNepTp/dO7aLMj4DFIQy7TOjm6s8gfGqlRKcukAx6D PJiFqC0Lq7/0kWsOXSvWVmmkdmB0t8X7TQ6rruzPcyVOF6rRPsHclH+A3rjdmIF7vKHO 7a72W4EGOxrd6Fs+D4SD4X3wZO2iZs/5TiR3tpzYogfiVnKq/022NumIVuM+HqXbvPGA eD9qIU7/ziFGoieSB72p6eHK0BxqLFy2PU2c9uwZeIgBwDjLZEQmdXzMngxHMW4NZmRC wdNtPJJRVrHnG6RQk7/cZF6iZNzq+0pZuX6wIO4NIjS3HEfNGZjJk9IMEn6AxKz0KXSI YAHA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lists.sourceforge.net header.s=beta header.b=ecNX0XlG; dkim=neutral (body hash did not verify) header.i=@sourceforge.net header.s=x header.b=dgZanCId; dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x header.b=h3eO5z0P; spf=pass (google.com: domain of openvpn-devel-bounces@lists.sourceforge.net designates 216.105.38.7 as permitted sender) smtp.mailfrom=openvpn-devel-bounces@lists.sourceforge.net; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=muc.de Received: from lists.sourceforge.net (lists.sourceforge.net. [216.105.38.7]) by mx.google.com with ESMTPS id e9e14a558f8ab-431f7e4d24dsi106205225ab.153.2025.10.29.09.39.10 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 29 Oct 2025 09:39:10 -0700 (PDT) Received-SPF: pass (google.com: domain of openvpn-devel-bounces@lists.sourceforge.net designates 216.105.38.7 as permitted sender) client-ip=216.105.38.7; Authentication-Results: mx.google.com; dkim=pass header.i=@lists.sourceforge.net header.s=beta header.b=ecNX0XlG; dkim=neutral (body hash did not verify) header.i=@sourceforge.net header.s=x header.b=dgZanCId; dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x header.b=h3eO5z0P; spf=pass (google.com: domain of openvpn-devel-bounces@lists.sourceforge.net designates 216.105.38.7 as permitted sender) smtp.mailfrom=openvpn-devel-bounces@lists.sourceforge.net; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=muc.de DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.sourceforge.net; s=beta; h=Content-Transfer-Encoding:Content-Type: List-Subscribe:List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: Subject:MIME-Version:References:In-Reply-To:Message-ID:Date:To:From:Sender: Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=UPpF++ZBUIXIQR3XJT/+giUzG24vr0UqqiiidKtVm7k=; b=ecNX0XlGtup5Cb/lHP6mZmepK8 0pz4NYpcdab0BgipwmncrlUU8cRYdd/ljqDJoXjVYRChkeDtSnt7cmuRH/XuOccz07PC6Hc1Rz+4o e1NcXquUOF6swDd95dkIPaV3GXaj5nHQDRRDLbHG7o85XniTs/nl0op/3/3ppsFSIv0s=; Received: from [127.0.0.1] (helo=sfs-ml-3.v29.lw.sourceforge.com) by sfs-ml-3.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1vE9CT-0000z3-4a; Wed, 29 Oct 2025 16:39:05 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-3.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1vE9CR-0000yw-0R for openvpn-devel@lists.sourceforge.net; Wed, 29 Oct 2025 16:39:03 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=Jes3cCRQVDnEIpBi2jcW11htrW02sBVXs3fWNhhmK3s=; b=dgZanCIdcbyS9prxp+Aqs7yHEZ reFG+6a707hkDz/sockc7J0S3nf+vKRDryJtdwttHzVK7pNSJuIy3XGJwPN/WTdQHlm85Uj6/Urn4 SQQohyqOJYrc4C5/4RKqRbDF2oXZoBcz2BNVOyT0vOSkXFD2TDTzJLGdyP3VThwgGmY4=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID: Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=Jes3cCRQVDnEIpBi2jcW11htrW02sBVXs3fWNhhmK3s=; b=h3eO5z0Pf3Rkuu8dm9/BN+cG3h 1955tpr2lw+BVfggdkMqYh7eDNOrGSqKW4pEJWGNPdwaXSf7fQxAQj1zy+mwlYiBut7CnUT16IHtS 1qMc73hZ4NO456lGrrC2t75UijYFI8cCEZcw23TR1zcfg6P8NAw2DBN5KeY0dIx4pzJY=; Received: from [193.149.48.134] (helo=blue.greenie.muc.de) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1vE9CP-00089s-Cx for openvpn-devel@lists.sourceforge.net; Wed, 29 Oct 2025 16:39:02 +0000 Received: from blue.greenie.muc.de (localhost [127.0.0.1]) by blue.greenie.muc.de (8.18.1/8.18.1) with ESMTP id 59TGcn9h000467 for ; Wed, 29 Oct 2025 17:38:49 +0100 Received: (from gert@localhost) by blue.greenie.muc.de (8.18.1/8.18.1/Submit) id 59TGcnvD000466 for openvpn-devel@lists.sourceforge.net; Wed, 29 Oct 2025 17:38:49 +0100 From: Gert Doering To: openvpn-devel@lists.sourceforge.net Date: Wed, 29 Oct 2025 17:38:43 +0100 Message-ID: <20251029163849.446-1-gert@greenie.muc.de> X-Mailer: git-send-email 2.49.1 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "sfi-spamd-1.hosts.colo.sdot.me", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: From: Arne Schwabe The ``--mememstat`` was largely undocumented and there is no known user of this feature. This feature provided very limited statistics (number of users, link bytes read/written) and we do not except a [...] Content analysis details: (1.3 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS X-Headers-End: 1vE9CP-00089s-Cx Subject: [Openvpn-devel] [PATCH v1] Remove --memstats feature 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: , Errors-To: openvpn-devel-bounces@lists.sourceforge.net X-getmail-retrieved-from-mailbox: Inbox X-GMAIL-THRID: =?utf-8?q?1847335007793591308?= X-GMAIL-MSGID: =?utf-8?q?1847335007793591308?= From: Arne Schwabe The ``--mememstat`` was largely undocumented and there is no known user of this feature. This feature provided very limited statistics (number of users, link bytes read/written) and we do not except any usage because of this. The only documentation was a mention in --help without any mention of the (binary) format of the mmap file or other usage instructions. This deals also with issues reported by zeropath regarding potentially insecure handling of the file permission of the memory mapped file. Reported-by: Joshua Rogers Found-by: ZeroPath (https://zeropath.com/) Change-Id: I5f57e7bf52e3f6289462ef05e1f6e81ab0133d0d Signed-off-by: Arne Schwabe Acked-by: Gert Doering Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1329 --- 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/+/1329 This mail reflects revision 1 of this Change. Acked-by according to Gerrit (reflected above): Gert Doering diff --git a/CMakeLists.txt b/CMakeLists.txt index bf754f3..c9301e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -490,8 +490,6 @@ src/openvpn/mroute.h src/openvpn/mss.c src/openvpn/mss.h - src/openvpn/mstats.c - src/openvpn/mstats.h src/openvpn/mtcp.c src/openvpn/mtcp.h src/openvpn/mtu.c diff --git a/Changes.rst b/Changes.rst index 4feacad2..41af103 100644 --- a/Changes.rst +++ b/Changes.rst @@ -217,6 +217,11 @@ ``--allow-compression yes`` is now an alias for ``--allow-compression asym``. +``--memstats`` feature removed + The ``--mememstat`` was largely undocumented and there is no known + user of this feature. This feature provided very limited statistics + (number of users, link bytes read/written) and we do not except any + usage because of this. User-visible Changes -------------------- diff --git a/src/openvpn/Makefile.am b/src/openvpn/Makefile.am index dc58cd1..db87dfc 100644 --- a/src/openvpn/Makefile.am +++ b/src/openvpn/Makefile.am @@ -90,7 +90,6 @@ mbedtls_compat.h \ mroute.c mroute.h \ mss.c mss.h \ - mstats.c mstats.h \ mtcp.c mtcp.h \ mtu.c mtu.h \ mudp.c mudp.h \ diff --git a/src/openvpn/error.c b/src/openvpn/error.c index 735d259..bd588d4 100644 --- a/src/openvpn/error.c +++ b/src/openvpn/error.c @@ -37,8 +37,6 @@ #include "status.h" #include "integer.h" #include "ps.h" -#include "mstats.h" - #if SYSLOG_CAPABILITY #ifndef LOG_OPENVPN @@ -723,10 +721,6 @@ } #endif -#ifdef ENABLE_MEMSTATS - mstats_close(); -#endif - #ifdef ABORT_ON_ERROR if (status == OPENVPN_EXIT_STATUS_ERROR) { diff --git a/src/openvpn/forward.c b/src/openvpn/forward.c index 7f72000..5bbac13 100644 --- a/src/openvpn/forward.c +++ b/src/openvpn/forward.c @@ -44,8 +44,6 @@ #include "memdbg.h" -#include "mstats.h" - counter_type link_read_bytes_global; /* GLOBAL */ counter_type link_write_bytes_global; /* GLOBAL */ @@ -992,12 +990,6 @@ { c->c2.link_read_bytes += c->c2.buf.len; link_read_bytes_global += c->c2.buf.len; -#ifdef ENABLE_MEMSTATS - if (mmap_stats) - { - mmap_stats->link_read_bytes = link_read_bytes_global; - } -#endif c->c2.original_recv_size = c->c2.buf.len; } else @@ -1821,12 +1813,6 @@ c->c2.max_send_size_local = max_int(size, c->c2.max_send_size_local); c->c2.link_write_bytes += size; link_write_bytes_global += size; -#ifdef ENABLE_MEMSTATS - if (mmap_stats) - { - mmap_stats->link_write_bytes = link_write_bytes_global; - } -#endif } } diff --git a/src/openvpn/init.c b/src/openvpn/init.c index aa2611d..1bdaf27 100644 --- a/src/openvpn/init.c +++ b/src/openvpn/init.c @@ -44,7 +44,6 @@ #include "ps.h" #include "lladdr.h" #include "ping.h" -#include "mstats.h" #include "ssl_verify.h" #include "ssl_ncp.h" #include "tls_crypt.h" @@ -908,22 +907,6 @@ return false; #endif -#ifdef MSTATS_TEST - { - int i; - mstats_open("/dev/shm/mstats.dat"); - for (i = 0; i < 30; ++i) - { - mmap_stats->n_clients += 1; - mmap_stats->link_write_bytes += 8; - mmap_stats->link_read_bytes += 16; - sleep(1); - } - mstats_close(); - return false; - } -#endif - return true; } @@ -1233,13 +1216,6 @@ } } -#ifdef ENABLE_MEMSTATS - if (c->first_time && c->options.memstats_fn) - { - mstats_open(c->options.memstats_fn); - } -#endif - #ifdef ENABLE_SELINUX /* Apply a SELinux context in order to restrict what OpenVPN can do * to _only_ what it is supposed to do after initialization is complete diff --git a/src/openvpn/mstats.c b/src/openvpn/mstats.c deleted file mode 100644 index bd6316c..0000000 --- a/src/openvpn/mstats.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * OpenVPN -- An application to securely tunnel IP networks - * over a single TCP/UDP port, with support for SSL/TLS-based - * session authentication and key exchange, - * packet encryption, packet authentication, and - * packet compression. - * - * Copyright (C) 2002-2025 OpenVPN Inc - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, see . - */ - -/* - * Maintain usage stats in a memory-mapped file - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "syshead.h" - -#if defined(ENABLE_MEMSTATS) - -#include - -#include "error.h" -#include "misc.h" -#include "mstats.h" - -#include "memdbg.h" - -volatile struct mmap_stats *mmap_stats = NULL; /* GLOBAL */ -static char mmap_fn[128]; - -void -mstats_open(const char *fn) -{ - void *data; - ssize_t stat; - int fd; - struct mmap_stats ms; - - if (mmap_stats) /* already called? */ - { - return; - } - - /* verify that filename is not too long */ - if (strlen(fn) >= sizeof(mmap_fn)) - { - msg(M_FATAL, "mstats_open: filename too long"); - } - - /* create file that will be memory mapped */ - fd = open(fn, O_CREAT | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR); - if (fd < 0) - { - msg(M_ERR, "mstats_open: cannot open: %s", fn); - return; - } - - /* set the file to the correct size to contain a - * struct mmap_stats, and zero it */ - CLEAR(ms); - ms.state = MSTATS_ACTIVE; - stat = write(fd, &ms, sizeof(ms)); - if (stat != sizeof(ms)) - { - msg(M_ERR, "mstats_open: write error: %s", fn); - close(fd); - return; - } - - /* mmap the file */ - data = mmap(NULL, sizeof(struct mmap_stats), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); - if (data == MAP_FAILED) - { - msg(M_ERR, "mstats_open: write error: %s", fn); - close(fd); - return; - } - - /* close the fd (mmap now controls the file) */ - if (close(fd)) - { - msg(M_ERR, "mstats_open: close error: %s", fn); - } - - /* save filename so we can delete it later */ - strcpy(mmap_fn, fn); - - /* save a global pointer to memory-mapped region */ - mmap_stats = (struct mmap_stats *)data; - - msg(M_INFO, "memstats data will be written to %s", fn); -} - -void -mstats_close(void) -{ - if (mmap_stats) - { - mmap_stats->state = MSTATS_EXPIRED; - if (munmap((void *)mmap_stats, sizeof(struct mmap_stats))) - { - msg(M_WARN | M_ERRNO, "mstats_close: munmap error"); - } - platform_unlink(mmap_fn); - mmap_stats = NULL; - } -} - -#endif /* if defined(ENABLE_MEMSTATS) */ diff --git a/src/openvpn/mstats.h b/src/openvpn/mstats.h deleted file mode 100644 index c38b0f2..0000000 --- a/src/openvpn/mstats.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * OpenVPN -- An application to securely tunnel IP networks - * over a single TCP/UDP port, with support for SSL/TLS-based - * session authentication and key exchange, - * packet encryption, packet authentication, and - * packet compression. - * - * Copyright (C) 2002-2025 OpenVPN Inc - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, see . - */ - -/* - * Maintain usage stats in a memory-mapped file - */ - -#if !defined(OPENVPN_MEMSTATS_H) && defined(ENABLE_MEMSTATS) -#define OPENVPN_MEMSTATS_H - -#include "basic.h" - -/* this struct is mapped to the file */ -struct mmap_stats -{ - counter_type link_read_bytes; /* counter_type can be assumed to be a uint64_t */ - counter_type link_write_bytes; - int n_clients; - -#define MSTATS_UNDEF 0 -#define MSTATS_ACTIVE 1 -#define MSTATS_EXPIRED 2 - int state; -}; - -extern volatile struct mmap_stats *mmap_stats; /* GLOBAL */ - -void mstats_open(const char *fn); - -void mstats_close(void); - -#endif /* if !defined(OPENVPN_MEMSTATS_H) && defined(ENABLE_MEMSTATS) */ diff --git a/src/openvpn/multi.c b/src/openvpn/multi.c index 285671d..e243843 100644 --- a/src/openvpn/multi.c +++ b/src/openvpn/multi.c @@ -37,7 +37,6 @@ #include "run_command.h" #include "otime.h" #include "gremlin.h" -#include "mstats.h" #include "ssl_verify.h" #include "ssl_ncp.h" #include "vlan.h" @@ -80,17 +79,6 @@ } #endif -static inline void -update_mstat_n_clients(const int n_clients) -{ -#ifdef ENABLE_MEMSTATS - if (mmap_stats) - { - mmap_stats->n_clients = n_clients; - } -#endif -} - static bool learn_address_script(const struct multi_context *m, const struct multi_instance *mi, const char *op, const struct mroute_addr *addr) @@ -589,7 +577,6 @@ /* adjust current client connection count */ m->n_clients += mi->n_clients_delta; - update_mstat_n_clients(m->n_clients); mi->n_clients_delta = 0; /* prevent dangling pointers */ @@ -2799,7 +2786,6 @@ /* increment number of current authenticated clients */ ++m->n_clients; - update_mstat_n_clients(m->n_clients); --mi->n_clients_delta; #ifdef ENABLE_MANAGEMENT diff --git a/src/openvpn/options.c b/src/openvpn/options.c index 9c02a8c..ecf9374 100644 --- a/src/openvpn/options.c +++ b/src/openvpn/options.c @@ -323,9 +323,6 @@ " via a VRF present on the system.\n" #endif "--txqueuelen n : Set the tun/tap TX queue length to n (Linux only).\n" -#ifdef ENABLE_MEMSTATS - "--memstats file : Write live usage stats to memory mapped binary file.\n" -#endif "--mlock : Disable Paging -- ensures key material and tunnel\n" " data will never be written to disk.\n" "--up cmd : Run command cmd after successful tun device open.\n" @@ -6333,13 +6330,6 @@ options->log = true; redirect_stdout_stderr(p[1], true); } -#ifdef ENABLE_MEMSTATS - else if (streq(p[0], "memstats") && p[1] && !p[2]) - { - VERIFY_PERMISSION(OPT_P_GENERAL); - options->memstats_fn = p[1]; - } -#endif else if (streq(p[0], "mlock") && !p[1]) { VERIFY_PERMISSION(OPT_P_GENERAL); diff --git a/src/openvpn/options.h b/src/openvpn/options.h index 125e524..9d2ff9f 100644 --- a/src/openvpn/options.h +++ b/src/openvpn/options.h @@ -336,10 +336,6 @@ bool mtu_test; -#ifdef ENABLE_MEMSTATS - char *memstats_fn; -#endif - bool mlock; int keepalive_ping; /* a proxy for ping/ping-restart */ diff --git a/src/openvpn/syshead.h b/src/openvpn/syshead.h index 26a553b..90045a9 100644 --- a/src/openvpn/syshead.h +++ b/src/openvpn/syshead.h @@ -528,13 +528,6 @@ #define USE_COMP #endif -/* - * Enable --memstats option - */ -#ifdef TARGET_LINUX -#define ENABLE_MEMSTATS -#endif - #ifdef _MSC_VER #ifndef PATH_MAX #define PATH_MAX MAX_PATH