OpenVPN 3 Core Library
Loading...
Searching...
No Matches
umask.hpp
Go to the documentation of this file.
1
// OpenVPN -- An application to securely tunnel IP networks
2
// over a single port, with support for SSL/TLS-based
3
// session authentication and key exchange,
4
// packet encryption, packet authentication, and
5
// packet compression.
6
//
7
// Copyright (C) 2012- OpenVPN Inc.
8
//
9
// SPDX-License-Identifier: MPL-2.0 OR AGPL-3.0-only WITH openvpn3-openssl-exception
10
//
11
12
#ifndef OPENVPN_COMMON_UMASK_H
13
#define OPENVPN_COMMON_UMASK_H
14
15
#include <sys/types.h>
16
#include <sys/stat.h>
17
18
namespace
openvpn
{
19
// Note: not thread safe, since umask() is
20
// documented to modify the process-wide file
21
// mode creation mask.
22
class
UMask
23
{
24
public
:
25
UMask
(mode_t new_umask)
26
{
27
umask_save
= ::umask(new_umask);
28
}
29
30
~UMask
()
31
{
32
::umask(
umask_save
);
33
}
34
35
private
:
36
UMask
(
const
UMask
&) =
delete
;
37
UMask
&
operator=
(
const
UMask
&) =
delete
;
38
39
mode_t
umask_save
;
40
};
41
42
struct
UMaskPrivate
:
public
UMask
43
{
44
UMaskPrivate
()
45
:
UMask
(077)
46
{
47
}
48
};
49
50
struct
UMaskDaemon
:
public
UMask
51
{
52
UMaskDaemon
()
53
:
UMask
(S_IWOTH)
54
{
55
}
56
};
57
}
// namespace openvpn
58
#endif
openvpn::UMask
Definition
umask.hpp:23
openvpn::UMask::~UMask
~UMask()
Definition
umask.hpp:30
openvpn::UMask::operator=
UMask & operator=(const UMask &)=delete
openvpn::UMask::UMask
UMask(mode_t new_umask)
Definition
umask.hpp:25
openvpn::UMask::UMask
UMask(const UMask &)=delete
openvpn::UMask::umask_save
mode_t umask_save
Definition
umask.hpp:39
openvpn
Definition
ovpncli.cpp:97
openvpn::UMaskDaemon
Definition
umask.hpp:51
openvpn::UMaskDaemon::UMaskDaemon
UMaskDaemon()
Definition
umask.hpp:52
openvpn::UMaskPrivate
Definition
umask.hpp:43
openvpn::UMaskPrivate::UMaskPrivate
UMaskPrivate()
Definition
umask.hpp:44
openvpn
common
umask.hpp
Generated by
1.9.8