X-Git-Url: http://git.openwrt.org/?p=project%2Fmdnsd.git;a=blobdiff_plain;f=announce.c;h=fed1b212fe2fb5a754a7429a5a9c7f8a5179c9e3;hp=4706cc2b435fb1ebc5fb7cbfedee4c37dc26a875;hb=a0403cde2d5684b63c0ea2c25a5414ede9ac99c3;hpb=431db651f04d18d2ee454e49d14806f08283f28c diff --git a/announce.c b/announce.c index 4706cc2..fed1b21 100644 --- a/announce.c +++ b/announce.c @@ -41,15 +41,12 @@ static void announce_timer(struct uloop_timeout *timeout) { struct interface *iface = container_of(timeout, struct interface, announce_timer); - char host[256]; - - snprintf(host, sizeof(host), "%s.local", hostname); switch (iface->announce_state) { case STATE_PROBE1: case STATE_PROBE2: case STATE_PROBE3: - dns_send_question(iface, host, TYPE_ANY); + dns_send_question(iface, mdns_hostname_local, TYPE_ANY, 1); uloop_timeout_set(timeout, 250); iface->announce_state++; break; @@ -60,14 +57,16 @@ announce_timer(struct uloop_timeout *timeout) break; case STATE_PROBE_END: - if (cache_host_is_known(host)) { - fprintf(stderr, "the host %s already exists. stopping announce service\n", host); + if (cache_host_is_known(mdns_hostname_local)) { + fprintf(stderr, "the host %s already exists. stopping announce service\n", mdns_hostname_local); return; } iface->announce_state++; + /* Fall through */ case STATE_ANNOUNCE: - service_announce(iface); + dns_reply_a(iface, NULL, announce_ttl); + service_announce_services(iface, NULL, announce_ttl); uloop_timeout_set(timeout, announce_ttl * 800); break; }