goto fail;
}
- if (handle_conflict(s, i, record, unique)) {
- avahi_response_scheduler_suppress(i->response_scheduler, record, a);
- avahi_record_list_drop(s->record_list, record);
- avahi_cache_stop_poof(i->cache, record, a);
- }
+ avahi_response_scheduler_suppress(i->response_scheduler, record, a);
+ avahi_record_list_drop(s->record_list, record);
+ avahi_cache_stop_poof(i->cache, record, a);
avahi_record_unref(record);
}
}
static int valid_server_config(const AvahiServerConfig *sc) {
+ AvahiStringList *l;
+
+ assert(sc);
+ if (sc->n_wide_area_servers > AVAHI_WIDE_AREA_SERVERS_MAX)
+ return AVAHI_ERR_INVALID_CONFIG;
+
if (sc->host_name && !avahi_is_valid_host_name(sc->host_name))
return AVAHI_ERR_INVALID_HOST_NAME;
if (sc->domain_name && !avahi_is_valid_domain_name(sc->domain_name))
return AVAHI_ERR_INVALID_DOMAIN_NAME;
+ for (l = sc->browse_domains; l; l = l->next)
+ if (!avahi_is_valid_domain_name((char*) l->text))
+ return AVAHI_ERR_INVALID_DOMAIN_NAME;
+
return AVAHI_OK;
}
c->use_iff_running = 0;
c->enable_reflector = 0;
c->reflect_ipv = 0;
- c->add_service_cookie = 1;
+ c->add_service_cookie = 0;
c->enable_wide_area = 0;
c->n_wide_area_servers = 0;
c->disallow_other_stacks = 0;
return &s->config;
}
+
+/** Set the browsing domains */
+int avahi_server_set_browse_domains(AvahiServer *s, AvahiStringList *domains) {
+ AvahiStringList *l;
+
+ assert(s);
+
+ for (l = s->config.browse_domains; l; l = l->next)
+ if (!avahi_is_valid_domain_name((char*) l->text))
+ return avahi_server_set_errno(s, AVAHI_ERR_INVALID_DOMAIN_NAME);
+
+ avahi_string_list_free(s->config.browse_domains);
+ s->config.browse_domains = avahi_string_list_copy(domains);
+
+ return AVAHI_OK;
+}