components/avahi/patches/11-browse-domain.patch
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Wed, 30 Mar 2016 10:07:29 -0700
changeset 5679 d91b8121bb2a
parent 5257 0da26ce015ab
permissions -rw-r--r--
Sync with build 96.1.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5257
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     1
Source: Desktop consolidation
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     2
Upstream promotion status: unknown
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     3
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     4
--- /usr/tmp/clean/avahi-0.6.28/avahi-core/browse-domain.c	2010-08-26 01:51:38.982153000 +0100
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     5
+++ avahi-0.6.28/avahi-core/browse-domain.c	2011-01-20 15:24:22.639202717 +0000
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     6
@@ -26,6 +26,9 @@
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     7
 #include <avahi-common/domain.h>
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     8
 #include <avahi-common/malloc.h>
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     9
 #include <avahi-common/error.h>
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    10
+#ifdef HAVE_BONJOUR
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    11
+#include <avahi-common/timeval.h>
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    12
+#endif
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    13
 
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    14
 #include "browse.h"
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    15
 #include "log.h"
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    16
@@ -45,6 +48,14 @@
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    17
 
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    18
     int all_for_now_scheduled;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    19
 
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    20
+#ifdef HAVE_BONJOUR
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    21
+    AvahiIfIndex interface;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    22
+    AvahiTimeEvent *browse_error_event;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    23
+    AvahiTimeEvent *all_for_now_event;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    24
+    AvahiLookupFlags flags;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    25
+    AvahiWatch *watch;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    26
+    DNSServiceRef client;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    27
+#endif
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    28
     AVAHI_LLIST_FIELDS(AvahiSDomainBrowser, browser);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    29
 };
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    30
 
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    31
@@ -135,6 +146,122 @@
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    32
     avahi_s_domain_browser_free(b);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    33
 }
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    34
 
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    35
+#ifdef HAVE_BONJOUR
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    36
+static void enumerate_reply(DNSServiceRef service,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    37
+    DNSServiceFlags flags,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    38
+    uint32_t IfIndex,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    39
+    DNSServiceErrorType errorCode,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    40
+    const char *replyDomain,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    41
+    void *context) {
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    42
+    AvahiSDomainBrowser *b = context;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    43
+    AvahiIfIndex interface;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    44
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    45
+    if (flags & kDNSServiceFlagsDefault)
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    46
+        if (b->flags != AVAHI_DOMAIN_BROWSER_BROWSE_DEFAULT &&
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    47
+            b->flags != AVAHI_DOMAIN_BROWSER_REGISTER_DEFAULT)
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    48
+            return;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    49
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    50
+    interface = (IfIndex == kDNSServiceInterfaceIndexAny) ? AVAHI_IF_UNSPEC : IfIndex; 
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    51
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    52
+    b->callback(b, interface, AVAHI_PROTO_UNSPEC, AVAHI_BROWSER_NEW, replyDomain, 0 /* flags */, b->userdata);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    53
+}
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    54
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    55
+static void enumerate_error_callback(AvahiTimeEvent *e, void *userdata) {
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    56
+    AvahiSDomainBrowser *b = userdata;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    57
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    58
+    if (b->browse_error_event) {
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    59
+        avahi_time_event_free(b->browse_error_event);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    60
+        b->browse_error_event = NULL;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    61
+    }
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    62
+    avahi_server_set_errno(b->server, AVAHI_ERR_FAILURE);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    63
+    b->callback(b,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    64
+        b->interface,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    65
+        AVAHI_PROTO_UNSPEC,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    66
+        AVAHI_BROWSER_FAILURE,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    67
+        NULL,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    68
+        0,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    69
+        b->userdata);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    70
+}
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    71
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    72
+static void all_for_now_callback(AvahiTimeEvent *e, void* userdata) {
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    73
+    AvahiSDomainBrowser *b = userdata;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    74
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    75
+    assert(e);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    76
+    assert(b);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    77
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    78
+    avahi_time_event_free(b->all_for_now_event);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    79
+    b->all_for_now_event = NULL;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    80
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    81
+    b->callback(b,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    82
+        AVAHI_IF_UNSPEC,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    83
+        AVAHI_PROTO_UNSPEC,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    84
+        AVAHI_BROWSER_ALL_FOR_NOW,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    85
+        NULL,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    86
+        0,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    87
+        b->userdata);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    88
+}
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    89
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    90
+static void enumerate_socket_event(AvahiWatch *w, int fd, AvahiWatchEvent events, void *userdata) {
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    91
+    AvahiSDomainBrowser *b = userdata;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    92
+    DNSServiceErrorType ret;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    93
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    94
+    assert(w);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    95
+    assert(fd >= 0);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    96
+    assert(events & AVAHI_WATCH_IN);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    97
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    98
+    assert (fd == DNSServiceRefSockFD(b->client));
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    99
+    ret = DNSServiceProcessResult(b->client);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   100
+    if (ret != kDNSServiceErr_NoError) {
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   101
+        if (b->watch) {
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   102
+            b->server->poll_api->watch_free(b->watch);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   103
+            b->watch = NULL;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   104
+        }
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   105
+        DNSServiceRefDeallocate(b->client);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   106
+        b->client = NULL;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   107
+        avahi_server_set_errno(b->server, AVAHI_ERR_DISCONNECTED);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   108
+        b->callback(b,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   109
+            b->interface,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   110
+            AVAHI_PROTO_UNSPEC,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   111
+            AVAHI_BROWSER_FAILURE,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   112
+            NULL,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   113
+            0,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   114
+            b->userdata);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   115
+    }
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   116
+}
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   117
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   118
+static void avahi_browse_domains_start(AvahiSDomainBrowser *b) {
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   119
+    DNSServiceErrorType ret;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   120
+    DNSServiceFlags flags;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   121
+    struct timeval tv;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   122
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   123
+    if (b->flags == AVAHI_DOMAIN_BROWSER_BROWSE ||
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   124
+        b->flags == AVAHI_DOMAIN_BROWSER_BROWSE_DEFAULT)
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   125
+        flags = kDNSServiceFlagsBrowseDomains;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   126
+    else if (b->flags == AVAHI_DOMAIN_BROWSER_REGISTER ||
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   127
+        b->flags == AVAHI_DOMAIN_BROWSER_REGISTER_DEFAULT)
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   128
+        flags = kDNSServiceFlagsRegistrationDomains;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   129
+     
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   130
+    ret =  DNSServiceEnumerateDomains(&b->client,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   131
+                                      flags,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   132
+                                      b->interface == AVAHI_IF_UNSPEC ?
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   133
+                                          kDNSServiceInterfaceIndexAny :
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   134
+                                          b->interface,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   135
+                                      enumerate_reply,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   136
+                                      b);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   137
+    if (ret != kDNSServiceErr_NoError || !b->client) {
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   138
+        b->browse_error_event = avahi_time_event_new(b->server->time_event_queue,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   139
+NULL, enumerate_error_callback, b);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   140
+    } else {
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   141
+        b->watch = b->server->poll_api->watch_new(b->server->poll_api, DNSServiceRefSockFD(b->client), AVAHI_WATCH_IN, enumerate_socket_event, b);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   142
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   143
+        /* Add a second */
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   144
+        gettimeofday(&tv, NULL);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   145
+        avahi_timeval_add(&tv, 1000000);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   146
+        b->all_for_now_event = avahi_time_event_new(b->server->time_event_queue, &tv, all_for_now_callback, b);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   147
+    }
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   148
+}
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   149
+#endif
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   150
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   151
 AvahiSDomainBrowser *avahi_s_domain_browser_new(
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   152
     AvahiServer *server,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   153
     AvahiIfIndex interface,
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   154
@@ -191,6 +318,15 @@
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   155
 
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   156
     AVAHI_LLIST_PREPEND(AvahiSDomainBrowser, browser, server->domain_browsers, b);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   157
 
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   158
+#ifdef HAVE_BONJOUR
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   159
+    b->interface = interface;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   160
+    b->client = NULL;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   161
+    b->watch = NULL;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   162
+    b->browse_error_event = NULL;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   163
+    b->all_for_now_event = NULL;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   164
+    b->flags = flags;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   165
+    avahi_browse_domains_start(b);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   166
+#else
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   167
     if (!(k = avahi_key_new(n, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_PTR))) {
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   168
         avahi_server_set_errno(server, AVAHI_ERR_NO_MEMORY);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   169
         goto fail;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   170
@@ -203,6 +339,7 @@
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   171
 
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   172
     if (type == AVAHI_DOMAIN_BROWSER_BROWSE && b->server->config.browse_domains)
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   173
         b->defer_event = avahi_time_event_new(server->time_event_queue, NULL, defer_callback, b);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   174
+#endif
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   175
 
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   176
     return b;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   177
 
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   178
@@ -225,6 +362,23 @@
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   179
 
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   180
     AVAHI_LLIST_REMOVE(AvahiSDomainBrowser, browser, b->server->domain_browsers, b);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   181
 
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   182
+#ifdef HAVE_BONJOUR
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   183
+    if (b->browse_error_event) {
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   184
+        avahi_time_event_free(b->browse_error_event);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   185
+        b->browse_error_event = NULL;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   186
+    }
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   187
+    if (b->all_for_now_event) {
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   188
+        avahi_time_event_free(b->all_for_now_event);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   189
+        b->all_for_now_event = NULL;
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   190
+    }
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   191
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   192
+    if (b->watch)
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   193
+        b->server->poll_api->watch_free(b->watch);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   194
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   195
+    if (b->client)
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   196
+        DNSServiceRefDeallocate(b->client);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   197
+#endif
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   198
+
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   199
     if (b->record_browser)
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   200
         avahi_s_record_browser_free(b->record_browser);
0da26ce015ab 22071322 Build of pkg:/system/network/avahi has to be moved from Desktop to Userland.
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   201