5 typedef struct DnssdService DnssdService
;
6 typedef struct DnssdTxtData DnssdTxtData
;
8 typedef struct Manager Manager
;
9 typedef struct DnsResourceRecord DnsResourceRecord
;
10 typedef struct DnsTxtItem DnsTxtItem
;
18 DnsResourceRecord
*rr
;
20 LIST_HEAD(DnsTxtItem
, txt
);
22 LIST_FIELDS(DnssdTxtData
, items
);
34 DnsResourceRecord
*ptr_rr
;
35 DnsResourceRecord
*srv_rr
;
37 /* Section 6.8 of RFC 6763 allows having service
38 * instances with multiple TXT resource records. */
39 LIST_HEAD(DnssdTxtData
, txt_data_items
);
47 DnssdService
*dnssd_service_free(DnssdService
*service
);
48 DnssdTxtData
*dnssd_txtdata_free(DnssdTxtData
*txt_data
);
49 DnssdTxtData
*dnssd_txtdata_free_all(DnssdTxtData
*txt_data
);
51 DEFINE_TRIVIAL_CLEANUP_FUNC(DnssdService
*, dnssd_service_free
);
52 DEFINE_TRIVIAL_CLEANUP_FUNC(DnssdTxtData
*, dnssd_txtdata_free
);
54 int dnssd_render_instance_name(DnssdService
*s
, char **ret_name
);
55 int dnssd_load(Manager
*manager
);
56 int dnssd_txt_item_new_from_string(const char *key
, const char *value
, DnsTxtItem
**ret_item
);
57 int dnssd_txt_item_new_from_data(const char *key
, const void *value
, const size_t size
, DnsTxtItem
**ret_item
);
58 int dnssd_update_rrs(DnssdService
*s
);
59 void dnssd_signal_conflict(Manager
*manager
, const char *name
);