MCPcopy Create free account
hub / github.com/OpenVPN/openvpn3-linux / main

Function main

src/tests/dbus/enable-logging.cpp:25–103  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

23using namespace openvpn;
24
25int main(int argc, char **argv)
26{
27 if (argc < 3)
28 {
29 std::cout << "Usage: " << argv[0]
30 << " <enable/disable> <session path> [<loglevel]>"
31 << std::endl;
32 return 1;
33 }
34
35 bool arg_enable = (0 == g_strcmp0("1", argv[1])
36 || 0 == g_strcmp0("yes", argv[1])
37 || 0 == g_strcmp0("true", argv[1])
38 || 0 == g_strcmp0("enable", argv[1])
39 || 0 == g_strcmp0("on", argv[1]));
40
41 bool arg_disable = (0 == g_strcmp0("0", argv[1])
42 || 0 == g_strcmp0("no", argv[1])
43 || 0 == g_strcmp0("false", argv[1])
44 || 0 == g_strcmp0("disable", argv[1])
45 || 0 == g_strcmp0("off", argv[1]));
46
47 if (!arg_enable && !arg_disable)
48 {
49 std::cerr << "** ERROR ** Invalid boolean flag. Must be 0/1, yes/no, "
50 << "enable/disable, true/false or on/off" << std::endl;
51 return 2;
52 }
53
54 if (NULL == argv[2])
55 {
56 std::cerr << "** ERROR ** No session object path provided." << std::endl;
57 return 2;
58 }
59
60 std::cout << (arg_enable ? "Enabling" : "Disabling")
61 << " logging on session " << argv[2] << std::endl;
62
63
64 try
65 {
66 DBusProxy proxy(G_BUS_TYPE_SYSTEM,
67 OpenVPN3DBus_name_sessions,
68 OpenVPN3DBus_interf_sessions,
69 argv[2]);
70
71
72 try
73 {
74 bool setting = proxy.GetBoolProperty("receive_log_events");
75 std::cout << "Current setting: " << (setting ? "enabled" : "disabled") << std::endl;
76 proxy.SetProperty("receive_log_events", arg_enable);
77 setting = proxy.GetBoolProperty("receive_log_events");
78 std::cout << "Changed to: " << (setting ? "enabled" : "disabled") << std::endl;
79
80 if (argc > 3)
81 {
82 unsigned loglev = proxy.GetUIntProperty("log_verbosity");

Callers

nothing calls this directly

Calls 2

SetPropertyMethod · 0.45
whatMethod · 0.45

Tested by

no test coverage detected