diff options
author | Alberto Gonzalez Iniesta <agi@inittab.org> | 2016-12-27 18:25:47 +0100 |
---|---|---|
committer | Alberto Gonzalez Iniesta <agi@inittab.org> | 2016-12-27 18:25:47 +0100 |
commit | 3a2bbdb05ca6a6996e424c9fb225cb0d53804125 (patch) | |
tree | f29063da5bec4caf3853d49a22a09c8619eebd21 /src/openvpn/mstats.c | |
parent | d53dba59e78da865c4fe820386ff2f4f76925f3b (diff) |
New upstream version 2.4.0upstream/2.4.0
Diffstat (limited to 'src/openvpn/mstats.c')
-rw-r--r-- | src/openvpn/mstats.c | 96 |
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) */ |