summaryrefslogtreecommitdiffstats
path: root/avahi-core/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'avahi-core/server.c')
-rw-r--r--avahi-core/server.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/avahi-core/server.c b/avahi-core/server.c
index 3d53154..d92afac 100644
--- a/avahi-core/server.c
+++ b/avahi-core/server.c
@@ -1528,6 +1528,7 @@ AvahiServerConfig* avahi_server_config_init(AvahiServerConfig *c) {
c->enable_wide_area = 0;
c->n_wide_area_servers = 0;
c->disallow_other_stacks = 0;
+ c->browse_domains = NULL;
return c;
}
@@ -1537,10 +1538,12 @@ void avahi_server_config_free(AvahiServerConfig *c) {
avahi_free(c->host_name);
avahi_free(c->domain_name);
+ avahi_string_list_free(c->browse_domains);
}
AvahiServerConfig* avahi_server_config_copy(AvahiServerConfig *ret, const AvahiServerConfig *c) {
char *d = NULL, *h = NULL;
+ AvahiStringList *l = NULL;
assert(ret);
assert(c);
@@ -1553,10 +1556,17 @@ AvahiServerConfig* avahi_server_config_copy(AvahiServerConfig *ret, const AvahiS
avahi_free(h);
return NULL;
}
+
+ if (!(l = avahi_string_list_copy(c->browse_domains)) && c->browse_domains) {
+ avahi_free(h);
+ avahi_free(d);
+ return NULL;
+ }
*ret = *c;
ret->host_name = h;
ret->domain_name = d;
+ ret->browse_domains = l;
return ret;
}