static int
parse_answer(struct uloop_fd *u, uint8_t *buffer, int len, uint8_t **b, int *rlen, int cache)
static int
parse_answer(struct uloop_fd *u, uint8_t *buffer, int len, uint8_t **b, int *rlen, int cache)
-
- if (iface_ip)
- listener.fd = usock(USOCK_UDP | USOCK_SERVER | USOCK_NONBLOCK, MCAST_ADDR, "5353");
-
- if (!iface_ip || listener.fd < 0) {
+ cur_iface->fd.fd = usock(USOCK_UDP | USOCK_SERVER | USOCK_NONBLOCK, MCAST_ADDR, "5353");
+ if (cur_iface->fd.fd < 0) {
fprintf(stderr, "failed to add listener: %s\n", strerror(errno));
uloop_timeout_set(&reconnect, 1000);
} else {
fprintf(stderr, "failed to add listener: %s\n", strerror(errno));
uloop_timeout_set(&reconnect, 1000);
} else {
- dns_send_question(&listener, "_services._dns-sd._udp.local", TYPE_PTR);
- announce_init(&listener);
+ dns_send_question(cur_iface, "_services._dns-sd._udp.local", TYPE_PTR);
+ announce_init(&cur_iface->fd);
- if (!iface_ip) {
- fprintf(stderr, "failed to read ip for %s\n", iface_name);
+ if (interface_add(iface_name)) {
+ fprintf(stderr, "Failed to add interface %s\n", iface_name);