10 #ifndef __IIO_DNS_SD_H 11 #define __IIO_DNS_SD_H 22 #include <sys/param.h> 26 #define DNS_SD_ADDRESS_STR_MAX (40 + IF_NAMESIZE) 30 #define ENOMEDIUM ENOENT 34 #define IIOD_PORT 30431 37 struct AvahiSimplePoll;
39 struct iio_context_params;
45 struct dns_sd_discovery_data {
46 struct iio_mutex *lock;
47 struct AvahiSimplePoll *poll;
48 struct AvahiAddress *address;
49 uint16_t found, resolved;
50 char addr_str[DNS_SD_ADDRESS_STR_MAX];
53 struct dns_sd_discovery_data *next;
56 struct dns_sd_cb_data {
57 struct dns_sd_discovery_data *d;
58 const struct iio_context_params *params;
66 int dnssd_find_hosts(
const struct iio_context_params *params,
67 struct dns_sd_discovery_data **ddata);
70 void dnssd_free_all_discovery_data(
const struct iio_context_params *params,
71 struct dns_sd_discovery_data *d);
78 int dnssd_discover_host(
const struct iio_context_params *params,
79 char *addr_str,
size_t addr_len, uint16_t *port);
82 void remove_dup_discovery_data(
const struct iio_context_params *params,
83 struct dns_sd_discovery_data **ddata);
86 void port_knock_discovery_data(
const struct iio_context_params *params,
87 struct dns_sd_discovery_data **ddata);
90 int dnssd_resolve_host(
const struct iio_context_params *params,
91 const char *hostname,
char *ip_addr,
const int addr_len);
93 int dnssd_context_scan(
const struct iio_context_params *params,
94 struct iio_scan *ctx,
const char *args);