4 This file is part of systemd.
6 Copyright 2017 Dmitry Rozhkov
11 typedef struct DnssdService DnssdService
;
12 typedef struct DnssdTxtData DnssdTxtData
;
14 typedef struct Manager Manager
;
15 typedef struct DnsResourceRecord DnsResourceRecord
;
16 typedef struct DnsTxtItem DnsTxtItem
;
24 DnsResourceRecord
*rr
;
26 LIST_HEAD(DnsTxtItem
, txt
);
28 LIST_FIELDS(DnssdTxtData
, items
);
40 DnsResourceRecord
*ptr_rr
;
41 DnsResourceRecord
*srv_rr
;
43 /* Section 6.8 of RFC 6763 allows having service
44 * instances with multiple TXT resource records. */
45 LIST_HEAD(DnssdTxtData
, txt_data_items
);
53 DnssdService
*dnssd_service_free(DnssdService
*service
);
54 DnssdTxtData
*dnssd_txtdata_free(DnssdTxtData
*txt_data
);
55 DnssdTxtData
*dnssd_txtdata_free_all(DnssdTxtData
*txt_data
);
57 DEFINE_TRIVIAL_CLEANUP_FUNC(DnssdService
*, dnssd_service_free
);
58 DEFINE_TRIVIAL_CLEANUP_FUNC(DnssdTxtData
*, dnssd_txtdata_free
);
60 int dnssd_render_instance_name(DnssdService
*s
, char **ret_name
);
61 int dnssd_load(Manager
*manager
);
62 int dnssd_txt_item_new_from_string(const char *key
, const char *value
, DnsTxtItem
**ret_item
);
63 int dnssd_txt_item_new_from_data(const char *key
, const void *value
, const size_t size
, DnsTxtItem
**ret_item
);
64 int dnssd_update_rrs(DnssdService
*s
);
65 void dnssd_signal_conflict(Manager
*manager
, const char *name
);