]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/resolve/resolved-dnssd.h
test: remove unnecessary include
[thirdparty/systemd.git] / src / resolve / resolved-dnssd.h
CommitLineData
6501dd31
DR
1#pragma once
2
400f54fb
DR
3#include "list.h"
4
6501dd31 5typedef struct DnssdService DnssdService;
400f54fb 6typedef struct DnssdTxtData DnssdTxtData;
6501dd31
DR
7
8typedef struct Manager Manager;
9typedef struct DnsResourceRecord DnsResourceRecord;
10typedef struct DnsTxtItem DnsTxtItem;
11
12enum {
13 DNS_TXT_ITEM_TEXT,
14 DNS_TXT_ITEM_DATA
15};
16
400f54fb
DR
17struct DnssdTxtData {
18 DnsResourceRecord *rr;
19
20 LIST_HEAD(DnsTxtItem, txt);
21
22 LIST_FIELDS(DnssdTxtData, items);
23};
24
6501dd31
DR
25struct DnssdService {
26 char *filename;
27 char *name;
28 char *name_template;
29 char *type;
30 uint16_t port;
31 uint16_t priority;
32 uint16_t weight;
6501dd31
DR
33
34 DnsResourceRecord *ptr_rr;
35 DnsResourceRecord *srv_rr;
400f54fb
DR
36
37 /* Section 6.8 of RFC 6763 allows having service
38 * instances with multiple TXT resource records. */
39 LIST_HEAD(DnssdTxtData, txt_data_items);
6501dd31
DR
40
41 Manager *manager;
c3036641
DR
42
43 bool withdrawn:1;
84b0f133 44 uid_t originator;
6501dd31
DR
45};
46
47DnssdService *dnssd_service_free(DnssdService *service);
400f54fb
DR
48DnssdTxtData *dnssd_txtdata_free(DnssdTxtData *txt_data);
49DnssdTxtData *dnssd_txtdata_free_all(DnssdTxtData *txt_data);
6501dd31
DR
50
51DEFINE_TRIVIAL_CLEANUP_FUNC(DnssdService*, dnssd_service_free);
400f54fb 52DEFINE_TRIVIAL_CLEANUP_FUNC(DnssdTxtData*, dnssd_txtdata_free);
6501dd31
DR
53
54int dnssd_render_instance_name(DnssdService *s, char **ret_name);
55int dnssd_load(Manager *manager);
56int dnssd_txt_item_new_from_string(const char *key, const char *value, DnsTxtItem **ret_item);
57int dnssd_txt_item_new_from_data(const char *key, const void *value, const size_t size, DnsTxtItem **ret_item);
6db6a464 58int dnssd_update_rrs(DnssdService *s);
c3036641 59void dnssd_signal_conflict(Manager *manager, const char *name);