mirror of
https://github.com/cesanta/mongoose.git
synced 2026-11-08 16:11:18 +00:00
Introduce DNS-SD using mDNS
This commit is contained in:
1 parent
5f2ff680d5
commit
293d8c22e1
12 files changed
+633
-106
No files matched your search
+25
-1
@@ -1641,6 +1641,10 @@ enum {
|
||||
MG_EV_MQTT_OPEN, // MQTT CONNACK received int *connack_status_code
|
||||
MG_EV_SNTP_TIME, // SNTP time received uint64_t *epoch_millis
|
||||
MG_EV_WAKEUP, // mg_wakeup() data received struct mg_str *data
|
||||
MG_EV_MDNS_A, // mDNS A record request struct mg_mdns_req *
|
||||
MG_EV_MDNS_PTR, // mDNS PTR record request struct mg_mdns_req *
|
||||
MG_EV_MDNS_SRV, // mDNS SRV record request struct mg_mdns_req *
|
||||
MG_EV_MDNS_TXT, // mDNS TXT record request struct mg_mdns_req *
|
||||
MG_EV_USER // Starting ID for user events
|
||||
};
|
||||
|
||||
@@ -2950,13 +2954,33 @@ struct mg_dns_rr {
|
||||
uint16_t alen; // Address length
|
||||
};
|
||||
|
||||
|
||||
// DNS-SD response record
|
||||
struct mg_dnssd_record {
|
||||
struct mg_str srvcproto; // service.proto, service name
|
||||
struct mg_str txt; // TXT record contents
|
||||
uint16_t port; // SRV record port
|
||||
};
|
||||
|
||||
// mDNS request
|
||||
struct mg_mdns_req {
|
||||
struct mg_dns_rr *rr;
|
||||
struct mg_dnssd_record *r;
|
||||
struct mg_str reqname; // requested name in RR
|
||||
struct mg_str respname; // actual name in response
|
||||
struct mg_addr addr;
|
||||
bool is_listing;
|
||||
bool is_resp;
|
||||
bool is_unicast;
|
||||
};
|
||||
|
||||
void mg_resolve(struct mg_connection *, const char *url);
|
||||
void mg_resolve_cancel(struct mg_connection *);
|
||||
bool mg_dns_parse(const uint8_t *buf, size_t len, struct mg_dns_message *);
|
||||
size_t mg_dns_parse_rr(const uint8_t *buf, size_t len, size_t ofs,
|
||||
bool is_question, struct mg_dns_rr *);
|
||||
|
||||
struct mg_connection *mg_mdns_listen(struct mg_mgr *mgr, char *name);
|
||||
struct mg_connection *mg_mdns_listen(struct mg_mgr *mgr, mg_event_handler_t fn, void *fn_data);
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user