summaryrefslogtreecommitdiff
path: root/src/openvpn/mstats.c
diff options
context:
space:
mode:
authorAlberto Gonzalez Iniesta <agi@inittab.org>2016-12-27 18:25:47 +0100
committerAlberto Gonzalez Iniesta <agi@inittab.org>2016-12-27 18:25:47 +0100
commit3a2bbdb05ca6a6996e424c9fb225cb0d53804125 (patch)
treef29063da5bec4caf3853d49a22a09c8619eebd21 /src/openvpn/mstats.c
parentd53dba59e78da865c4fe820386ff2f4f76925f3b (diff)
New upstream version 2.4.0upstream/2.4.0
Diffstat (limited to 'src/openvpn/mstats.c')
-rw-r--r--src/openvpn/mstats.c96
1 files changed, 51 insertions, 45 deletions
diff --git a/src/openvpn/mstats.c b/src/openvpn/mstats.c
index 3be493c..8ab1d02 100644
--- a/src/openvpn/mstats.c
+++ b/src/openvpn/mstats.c
@@ -5,7 +5,7 @@
* packet encryption, packet authentication, and
* packet compression.
*
- * Copyright (C) 2002-2011 OpenVPN Technologies, Inc. <sales@openvpn.net>
+ * Copyright (C) 2002-2017 OpenVPN Technologies, Inc. <sales@openvpn.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2
@@ -50,73 +50,79 @@ static char mmap_fn[128];
void
mstats_open(const char *fn)
{
- void *data;
- ssize_t stat;
- int fd;
- struct mmap_stats ms;
+ void *data;
+ ssize_t stat;
+ int fd;
+ struct mmap_stats ms;
- if (mmap_stats) /* already called? */
- return;
+ 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");
+ /* 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)
+ /* 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;
+ 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))
+ /* 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;
+ 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)
+ /* 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;
+ msg(M_ERR, "mstats_open: write error: %s", fn);
+ close(fd);
+ return;
}
- /* close the fd (mmap now controls the file) */
- if (close(fd))
+ /* close the fd (mmap now controls the file) */
+ if (close(fd))
{
- msg (M_ERR, "mstats_open: close error: %s", fn);
+ msg(M_ERR, "mstats_open: close error: %s", fn);
}
- /* save filename so we can delete it later */
- strcpy(mmap_fn, 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;
+ /* 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);
+ msg(M_INFO, "memstats data will be written to %s", fn);
}
void
mstats_close(void)
{
- if (mmap_stats)
+ 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;
+ 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
+#endif /* if defined(ENABLE_MEMSTATS) */