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

Function program

src/tests/dbus/netcfg-systemd-resolved-basic.cpp:110–216  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

108
109
110int program(ParsedArgs::Ptr args)
111{
112 std::vector<std::string> exargs = args->GetAllExtraArgs();
113 if (exargs.size() != 1)
114 {
115 throw CommandException("", "Only one device name can be used");
116 }
117
118 auto conn = DBus::Connection::Create(DBus::BusType::SYSTEM);
119
120 auto srmgr = resolved::Manager::Create(conn);
121 resolved::Link::Ptr link = srmgr->RetrieveLink(exargs[0]);
122
123 std::cout << "systemd-resolved path: " << link->GetPath() << std::endl;
124
125 std::vector<std::string> mod_ops = {"add-resolver4",
126 "add-resolver6",
127 "reset-resolver",
128 "add-search",
129 "reset-search",
130 "set-default-route",
131 "set-dnssec",
132 "set-dnsovertls",
133 "revert"};
134 bool mods = !args->Present(mod_ops, true).empty();
135 if (mods)
136 {
137 std::cout << "Before changes: " << std::endl;
138 }
139
140 print_details(link);
141
142 std::string op = args->Present({"add-resolver4", "add-resolver6", "reset-resolver"}, true);
143 if (!op.empty())
144 {
145 // Set a new DNS resolver server
146 resolved::IPAddress::List rslv;
147
148 if (args->Present("add-resolver6"))
149 {
150 for (const auto &ip : args->GetAllValues("add-resolver6"))
151 {
152 rslv.push_back(resolved::IPAddress(ip, AF_INET6));
153 }
154 }
155
156 if (args->Present("add-resolver4"))
157 {
158 for (const auto &ip : args->GetAllValues("add-resolver4"))
159 {
160 rslv.push_back(resolved::IPAddress(ip, AF_INET));
161 }
162 }
163
164 link->SetDNSServers(rslv);
165 }
166
167 if (args->Present("add-search") || args->Present("reset-search"))

Callers

nothing calls this directly

Calls 15

CommandExceptionClass · 0.85
print_detailsFunction · 0.85
IPAddressClass · 0.85
SearchDomainClass · 0.85
GetAllExtraArgsMethod · 0.80
sizeMethod · 0.80
RetrieveLinkMethod · 0.80
PresentMethod · 0.80
GetAllValuesMethod · 0.80
SetDNSServersMethod · 0.80
SetDomainsMethod · 0.80
SetDefaultRouteMethod · 0.80

Tested by

no test coverage detected