return 1;
}
- SD_BUS_METHOD_WITH_NAMES("SetDNS",
- "a(iay)",
- SD_BUS_PARAM(addresses),
- NULL,,
- bus_link_method_set_dns_servers,
- SD_BUS_VTABLE_UNPRIVILEGED),
- SD_BUS_METHOD_WITH_NAMES("SetDomains",
- "a(sb)",
- SD_BUS_PARAM(domains),
- NULL,,
- bus_link_method_set_domains,
- SD_BUS_VTABLE_UNPRIVILEGED),
- SD_BUS_METHOD_WITH_NAMES("SetDefaultRoute",
- "b",
- SD_BUS_PARAM(enable),
- NULL,,
- bus_link_method_set_default_route,
- SD_BUS_VTABLE_UNPRIVILEGED),
- SD_BUS_METHOD_WITH_NAMES("SetLLMNR",
- "s",
- SD_BUS_PARAM(mode),
- NULL,,
- bus_link_method_set_llmnr,
- SD_BUS_VTABLE_UNPRIVILEGED),
- SD_BUS_METHOD_WITH_NAMES("SetMulticastDNS",
- "s",
- SD_BUS_PARAM(mode),
- NULL,,
- bus_link_method_set_mdns,
- SD_BUS_VTABLE_UNPRIVILEGED),
- SD_BUS_METHOD_WITH_NAMES("SetDNSOverTLS",
- "s",
- SD_BUS_PARAM(mode),
- NULL,,
- bus_link_method_set_dns_over_tls,
- SD_BUS_VTABLE_UNPRIVILEGED),
- SD_BUS_METHOD_WITH_NAMES("SetDNSSEC",
- "s",
- SD_BUS_PARAM(mode),
- NULL,,
- bus_link_method_set_dnssec,
- SD_BUS_VTABLE_UNPRIVILEGED),
- SD_BUS_METHOD_WITH_NAMES("SetDNSSECNegativeTrustAnchors",
- "as",
- SD_BUS_PARAM(names),
- NULL,,
- bus_link_method_set_dnssec_negative_trust_anchors,
- SD_BUS_VTABLE_UNPRIVILEGED),
-
- SD_BUS_METHOD("Revert", NULL, NULL, bus_link_method_revert, SD_BUS_VTABLE_UNPRIVILEGED),
+
+ static const sd_bus_vtable link_vtable[] = {
+ SD_BUS_VTABLE_START(0),
+
+ SD_BUS_PROPERTY("ScopesMask", "t", property_get_scopes_mask, 0, 0),
+ SD_BUS_PROPERTY("DNS", "a(iay)", property_get_dns, 0, 0),
+ SD_BUS_PROPERTY("CurrentDNSServer", "(iay)", property_get_current_dns_server, offsetof(Link, current_dns_server), 0),
+ SD_BUS_PROPERTY("Domains", "a(sb)", property_get_domains, 0, 0),
+ SD_BUS_PROPERTY("DefaultRoute", "b", property_get_default_route, 0, 0),
+ SD_BUS_PROPERTY("LLMNR", "s", bus_property_get_resolve_support, offsetof(Link, llmnr_support), 0),
+ SD_BUS_PROPERTY("MulticastDNS", "s", bus_property_get_resolve_support, offsetof(Link, mdns_support), 0),
+ SD_BUS_PROPERTY("DNSOverTLS", "s", property_get_dns_over_tls_mode, 0, 0),
+ SD_BUS_PROPERTY("DNSSEC", "s", property_get_dnssec_mode, 0, 0),
+ SD_BUS_PROPERTY("DNSSECNegativeTrustAnchors", "as", property_get_ntas, 0, 0),
+ SD_BUS_PROPERTY("DNSSECSupported", "b", property_get_dnssec_supported, 0, 0),
+
++ SD_BUS_METHOD_WITH_ARGS("SetDNS",
++ SD_BUS_ARGS("a(iay)", addresses),
++ SD_BUS_NO_RESULT,
++ bus_link_method_set_dns_servers,
++ SD_BUS_VTABLE_UNPRIVILEGED),
++ SD_BUS_METHOD_WITH_ARGS("SetDomains",
++ SD_BUS_ARGS("a(sb)", domains),
++ SD_BUS_NO_RESULT,
++ bus_link_method_set_domains,
++ SD_BUS_VTABLE_UNPRIVILEGED),
++ SD_BUS_METHOD_WITH_ARGS("SetDefaultRoute",
++ SD_BUS_ARGS("b", enable),
++ SD_BUS_NO_RESULT,
++ bus_link_method_set_default_route,
++ SD_BUS_VTABLE_UNPRIVILEGED),
++ SD_BUS_METHOD_WITH_ARGS("SetLLMNR",
++ SD_BUS_ARGS("s", mode),
++ SD_BUS_NO_RESULT,
++ bus_link_method_set_llmnr,
++ SD_BUS_VTABLE_UNPRIVILEGED),
++ SD_BUS_METHOD_WITH_ARGS("SetMulticastDNS",
++ SD_BUS_ARGS("s", mode),
++ SD_BUS_NO_RESULT,
++ bus_link_method_set_mdns,
++ SD_BUS_VTABLE_UNPRIVILEGED),
++ SD_BUS_METHOD_WITH_ARGS("SetDNSOverTLS",
++ SD_BUS_ARGS("s", mode),
++ SD_BUS_NO_RESULT,
++ bus_link_method_set_dns_over_tls,
++ SD_BUS_VTABLE_UNPRIVILEGED),
++ SD_BUS_METHOD_WITH_ARGS("SetDNSSEC",
++ SD_BUS_ARGS("s", mode),
++ SD_BUS_NO_RESULT,
++ bus_link_method_set_dnssec,
++ SD_BUS_VTABLE_UNPRIVILEGED),
++ SD_BUS_METHOD_WITH_ARGS("SetDNSSECNegativeTrustAnchors",
++ SD_BUS_ARGS("as", names),
++ SD_BUS_NO_RESULT,
++ bus_link_method_set_dnssec_negative_trust_anchors,
++ SD_BUS_VTABLE_UNPRIVILEGED),
++ SD_BUS_METHOD_WITH_ARGS("Revert",
++ SD_BUS_NO_ARGS,
++ SD_BUS_NO_RESULT,
++ bus_link_method_revert,
++ SD_BUS_VTABLE_UNPRIVILEGED),
+
+ SD_BUS_VTABLE_END
+ };
+
+ const BusObjectImplementation link_object = {
+ "/org/freedesktop/resolve1/link",
+ "org.freedesktop.resolve1.Link",
+ .fallback_vtables = BUS_FALLBACK_VTABLES({link_vtable, link_object_find}),
+ .node_enumerator = link_node_enumerator,
+ };