summaryrefslogtreecommitdiffstats
path: root/avahi-core
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2007-08-12 15:45:03 +0000
committerLennart Poettering <lennart@poettering.net>2007-08-12 15:45:03 +0000
commit1f36056b4cf212ae06aa9e4eca72accb17acebb0 (patch)
treee095e47acdb0279ed5b279903237e8f59f92abb2 /avahi-core
parent3ce8ea5ab89aba61220ef92545f23d4bd771ea41 (diff)
add new API function avahi_server_set_browse_domains() to avahi-core
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@1513 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'avahi-core')
-rw-r--r--avahi-core/core.h3
-rw-r--r--avahi-core/server.c26
2 files changed, 29 insertions, 0 deletions
diff --git a/avahi-core/core.h b/avahi-core/core.h
index c8e6fd6..55aafe2 100644
--- a/avahi-core/core.h
+++ b/avahi-core/core.h
@@ -150,6 +150,9 @@ uint32_t avahi_server_get_local_service_cookie(AvahiServer *s);
/** Set the wide area DNS servers */
int avahi_server_set_wide_area_servers(AvahiServer *s, const AvahiAddress *a, unsigned n);
+/** Set the browsing domains */
+int avahi_server_set_browse_domains(AvahiServer *s, AvahiStringList *domains);
+
/** Return the current configuration of the server \since 0.6.17 */
const AvahiServerConfig* avahi_server_get_config(AvahiServer *s);
diff --git a/avahi-core/server.c b/avahi-core/server.c
index 387156b..759c308 100644
--- a/avahi-core/server.c
+++ b/avahi-core/server.c
@@ -1290,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;
}
@@ -1737,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;
+}