X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Fserver.c;h=759c30831d991e39ae54f42f54479da5530ea9f1;hb=60fb63c1e7044eeb019ca9387303e83fa2fdf41c;hp=61f488fde9d2d030647993de903e55714aa91b5b;hpb=bbf6b92f662ed909d5b4fca4a43b19e815812b3e;p=catta diff --git a/avahi-core/server.c b/avahi-core/server.c index 61f488f..759c308 100644 --- a/avahi-core/server.c +++ b/avahi-core/server.c @@ -610,11 +610,9 @@ static void handle_query_packet(AvahiServer *s, AvahiDnsPacket *p, AvahiInterfac 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); } @@ -1292,13 +1290,23 @@ int avahi_server_set_domain_name(AvahiServer *s, const char *domain_name) { } 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; } @@ -1563,7 +1571,7 @@ AvahiServerConfig* avahi_server_config_init(AvahiServerConfig *c) { 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; @@ -1739,3 +1747,19 @@ const AvahiServerConfig* avahi_server_get_config(AvahiServer *s) { 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; +}