X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;ds=sidebyside;f=avahi-core%2Fserver.c;h=6ba8ea0ce7cde7bb1a537a3d411db62526790f1f;hb=4eb1ecb955eed0cbab7f661a143a69b4b8bbf9b1;hp=ae0b1e645b99a19c7f4518d92f855d7107add4f9;hpb=8b5cd6ffd9137b14b7ed678f10a551e3911e4a40;p=catta diff --git a/avahi-core/server.c b/avahi-core/server.c index ae0b1e6..6ba8ea0 100644 --- a/avahi-core/server.c +++ b/avahi-core/server.c @@ -35,6 +35,7 @@ #include #include #include +#include #include "server.h" #include "iface.h" @@ -1202,10 +1203,14 @@ static void register_stuff(AvahiServer *s) { assert(s); server_set_state(s, AVAHI_SERVER_REGISTERING); + s->n_host_rr_pending ++; /** Make sure that the state isn't changed tp AVAHI_SERVER_RUNNING too early */ + register_hinfo(s); register_browse_domain(s); avahi_update_host_rrs(s->monitor, 0); + s->n_host_rr_pending --; + if (s->n_host_rr_pending == 0) server_set_state(s, AVAHI_SERVER_RUNNING); } @@ -1301,7 +1306,7 @@ static int setup_sockets(AvahiServer *s) { return 0; } -AvahiServer *avahi_server_new(AvahiPoll *poll_api, const AvahiServerConfig *sc, AvahiServerCallback callback, void* userdata, int *error) { +AvahiServer *avahi_server_new(const AvahiPoll *poll_api, const AvahiServerConfig *sc, AvahiServerCallback callback, void* userdata, int *error) { AvahiServer *s; int e; @@ -1833,9 +1838,6 @@ static int server_add_service_strlst_nocopy( if (host && !avahi_is_valid_domain_name(host)) return avahi_server_set_errno(s, AVAHI_ERR_INVALID_HOST_NAME); - if (port == 0) - return avahi_server_set_errno(s, AVAHI_ERR_INVALID_PORT); - escape_service_name(ename, sizeof(ename), name); if (!domain) @@ -1997,12 +1999,12 @@ int avahi_server_add_dns_server_address( assert(type == AVAHI_DNS_SERVER_UPDATE || type == AVAHI_DNS_SERVER_RESOLVE); assert(address->family == AVAHI_PROTO_INET || address->family == AVAHI_PROTO_INET6); - if (domain && !avahi_is_valid_domain_name(domain)) - return avahi_server_set_errno(s, AVAHI_ERR_INVALID_DOMAIN_NAME); - if (port == 0) return avahi_server_set_errno(s, AVAHI_ERR_INVALID_PORT); + if (domain && !avahi_is_valid_domain_name(domain)) + return avahi_server_set_errno(s, AVAHI_ERR_INVALID_DOMAIN_NAME); + if (address->family == AVAHI_PROTO_INET) { hexstring(n+3, sizeof(n)-3, &address->data, 4); r = avahi_record_new_full(n, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_A, AVAHI_DEFAULT_TTL_HOST_NAME);