10 #ifndef __IIO_DNS_SD_H
11 #define __IIO_DNS_SD_H
18 #ifndef MAXHOSTNAMELEN
19 #define MAXHOSTNAMELEN (MAX_COMPUTERNAME_LENGTH+1)
22 #include <sys/param.h>
25 #define DNS_SD_ADDRESS_STR_MAX (40)
29 #define ENOMEDIUM ENOENT
33 #define IIOD_PORT 30431
36 struct AvahiSimplePoll;
42 struct dns_sd_discovery_data {
43 struct iio_mutex *lock;
44 struct AvahiSimplePoll *poll;
45 struct AvahiAddress *address;
46 uint16_t found, resolved;
47 char addr_str[DNS_SD_ADDRESS_STR_MAX];
50 struct dns_sd_discovery_data *next;
56 int create_socket(
const struct addrinfo *addrinfo);
63 int dnssd_find_hosts(
struct dns_sd_discovery_data ** ddata);
66 void dnssd_free_all_discovery_data(
struct dns_sd_discovery_data *d);
73 int dnssd_discover_host(
char *addr_str,
size_t addr_len, uint16_t *port);
76 void remove_dup_discovery_data(
struct dns_sd_discovery_data **ddata);
79 void port_knock_discovery_data(
struct dns_sd_discovery_data **ddata);
82 int dnssd_resolve_host(
const char *hostname,
char *ip_addr,
const int addr_len);