1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
7 typedef struct DnsSearchDomain DnsSearchDomain
;
8 typedef struct Link Link
;
9 typedef struct Manager Manager
;
11 typedef enum DnsSearchDomainType
{
12 DNS_SEARCH_DOMAIN_SYSTEM
,
13 DNS_SEARCH_DOMAIN_LINK
,
14 } DnsSearchDomainType
;
16 struct DnsSearchDomain
{
21 DnsSearchDomainType type
;
30 LIST_FIELDS(DnsSearchDomain
, domains
);
33 int dns_search_domain_new(
35 DnsSearchDomain
**ret
,
36 DnsSearchDomainType type
,
40 DnsSearchDomain
* dns_search_domain_ref(DnsSearchDomain
*d
);
41 DnsSearchDomain
* dns_search_domain_unref(DnsSearchDomain
*d
);
43 void dns_search_domain_unlink(DnsSearchDomain
*d
);
44 void dns_search_domain_move_back_and_unmark(DnsSearchDomain
*d
);
46 void dns_search_domain_unlink_all(DnsSearchDomain
*first
);
47 void dns_search_domain_unlink_marked(DnsSearchDomain
*first
);
48 void dns_search_domain_mark_all(DnsSearchDomain
*first
);
50 int dns_search_domain_find(DnsSearchDomain
*first
, const char *name
, DnsSearchDomain
**ret
);
52 static inline const char* DNS_SEARCH_DOMAIN_NAME(DnsSearchDomain
*d
) {
53 return d
? d
->name
: NULL
;
56 DEFINE_TRIVIAL_CLEANUP_FUNC(DnsSearchDomain
*, dns_search_domain_unref
);