lwIP 2.2.0
Lightweight IP stack
|
#include "lwip/apps/mdns.h"
#include "lwip/apps/mdns_domain.h"
#include "lwip/apps/mdns_priv.h"
#include "lwip/prot/dns.h"
#include <string.h>
#include "lwip/prot/ip6.h"
Functions | |
err_t | mdns_domain_add_label (struct mdns_domain *domain, const char *label, u8_t len) |
err_t | mdns_domain_add_domain (struct mdns_domain *domain, struct mdns_domain *source) |
err_t | mdns_domain_add_string (struct mdns_domain *domain, const char *source) |
u16_t | mdns_readname (struct pbuf *p, u16_t offset, struct mdns_domain *domain) |
void | mdns_domain_debug_print (struct mdns_domain *domain) |
int | mdns_domain_eq (struct mdns_domain *a, struct mdns_domain *b) |
err_t | mdns_build_reverse_v4_domain (struct mdns_domain *domain, const ip4_addr_t *addr) |
err_t | mdns_build_reverse_v6_domain (struct mdns_domain *domain, const ip6_addr_t *addr) |
err_t | mdns_build_host_domain (struct mdns_domain *domain, struct mdns_host *mdns) |
err_t | mdns_build_dnssd_domain (struct mdns_domain *domain) |
err_t | mdns_build_service_domain (struct mdns_domain *domain, struct mdns_service *service, int include_name) |
err_t | mdns_build_request_domain (struct mdns_domain *domain, struct mdns_request *request, int include_name) |
u16_t | mdns_compress_domain (struct pbuf *pbuf, u16_t *offset, struct mdns_domain *domain) |
err_t | mdns_write_domain (struct mdns_outpacket *outpkt, struct mdns_domain *domain) |
MDNS responder implementation - domain related functionalities
err_t mdns_build_dnssd_domain | ( | struct mdns_domain * | domain | ) |
Build the lookup-all-services special DNS-SD domain name
domain | Where to write the domain name |
Build the <hostname>.local. domain name
domain | Where to write the domain name |
mdns | TMDNS netif descriptor. |
err_t mdns_build_request_domain | ( | struct mdns_domain * | domain, |
struct mdns_request * | request, | ||
int | include_name | ||
) |
Build domain name for a request
domain | Where to write the domain name |
request | The request struct, containing service name, type and protocol |
include_name | Whether to include the service name in the domain |
err_t mdns_build_reverse_v4_domain | ( | struct mdns_domain * | domain, |
const ip4_addr_t * | addr | ||
) |
Build domain for reverse lookup of IPv4 address like 12.0.168.192.in-addr.arpa. for 192.168.0.12
domain | Where to write the domain name |
addr | Pointer to an IPv4 address to encode |
err_t mdns_build_reverse_v6_domain | ( | struct mdns_domain * | domain, |
const ip6_addr_t * | addr | ||
) |
Build domain for reverse lookup of IP address like b.a.9.8.7.6.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. for 2001:db8::567:89ab
domain | Where to write the domain name |
addr | Pointer to an IPv6 address to encode |
err_t mdns_build_service_domain | ( | struct mdns_domain * | domain, |
struct mdns_service * | service, | ||
int | include_name | ||
) |
Build domain name for a service
domain | Where to write the domain name |
service | The service struct, containing service name, type and protocol |
include_name | Whether to include the service name in the domain |
u16_t mdns_compress_domain | ( | struct pbuf * | pbuf, |
u16_t * | offset, | ||
struct mdns_domain * | domain | ||
) |
Return bytes needed to write before jump for best result of compressing supplied domain against domain in outpacket starting at specified offset. If a match is found, offset is updated to where to jump to
pbuf | Pointer to pbuf with the partially constructed DNS packet |
offset | Start position of a domain written earlier. If this location is suitable for compression, the pointer is updated to where in the domain to jump to. |
domain | The domain to write |
err_t mdns_domain_add_domain | ( | struct mdns_domain * | domain, |
struct mdns_domain * | source | ||
) |
Add a partial domain to a domain
domain | The domain to add a label to |
source | The domain to add, like <\x09_services\007_dns-sd\000> |
err_t mdns_domain_add_label | ( | struct mdns_domain * | domain, |
const char * | label, | ||
u8_t | len | ||
) |
Add a label part to a domain
domain | The domain to add a label to |
label | The label to add, like <hostname>, 'local', 'com' or '' |
len | The length of the label |
err_t mdns_domain_add_string | ( | struct mdns_domain * | domain, |
const char * | source | ||
) |
Add a string domain to a domain
domain | The domain to add a label to |
source | The string to add, like <_services._dns-sd> |
void mdns_domain_debug_print | ( | struct mdns_domain * | domain | ) |
Print domain name to debug output
domain | The domain name |
int mdns_domain_eq | ( | struct mdns_domain * | a, |
struct mdns_domain * | b | ||
) |
Return 1 if contents of domains match (case-insensitive)
a | Domain name to compare 1 |
b | Domain name to compare 2 |
u16_t mdns_readname | ( | struct pbuf * | p, |
u16_t | offset, | ||
struct mdns_domain * | domain | ||
) |
Read possibly compressed domain name from packet buffer
p | The packet |
offset | start position of domain name in packet |
domain | The domain name destination |
err_t mdns_write_domain | ( | struct mdns_outpacket * | outpkt, |
struct mdns_domain * | domain | ||
) |
Write domain to outpacket. Compression will be attempted, unless domain->skip_compression is set.
outpkt | The outpacket to write to |
domain | The domain name to write |