summaryrefslogtreecommitdiff
path: root/external/mdnsresponder/mDNSResponder_Win32_SOCKET.patch.1
blob: 9952f86e88ec0df570feecc83bae104bd60ff6ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
commit 77838efb0748689ee77007a92d9a01e03e6dbdb7
Author:     Stephan Bergmann <sbergman@redhat.com>
AuthorDate: Fri Nov 27 22:40:23 2015 +0100
Commit:     Stephan Bergmann <sbergman@redhat.com>
CommitDate: Sat Nov 28 14:00:07 2015 +0100

    Use proper return type for DNSServiceRefSockFD
    
    ...which is e.g. unsigned long long for Windows 64-bit (and declaring the
    function in dns_sd.h is not necessary, and the dnssd_sock_t typedef is not known
    there)
    
    Change-Id: Iaa0eb03a83b76200204ba905313bcc27b5007b39

diff --git a/mDNSShared/dns_sd.h b/mDNSShared/dns_sd.h
index 31daaeb..faaa741 100644
--- a/mDNSShared/dns_sd.h
+++ b/mDNSShared/dns_sd.h
@@ -741,35 +741,6 @@ DNSServiceErrorType DNSSD_API DNSServiceGetProperty
 *
 *********************************************************************************************/
 
-/* DNSServiceRefSockFD()
- *
- * Access underlying Unix domain socket for an initialized DNSServiceRef.
- * The DNS Service Discovery implementation uses this socket to communicate between the client and
- * the daemon. The application MUST NOT directly read from or write to this socket.
- * Access to the socket is provided so that it can be used as a kqueue event source, a CFRunLoop
- * event source, in a select() loop, etc. When the underlying event management subsystem (kqueue/
- * select/CFRunLoop etc.) indicates to the client that data is available for reading on the
- * socket, the client should call DNSServiceProcessResult(), which will extract the daemon's
- * reply from the socket, and pass it to the appropriate application callback. By using a run
- * loop or select(), results from the daemon can be processed asynchronously. Alternatively,
- * a client can choose to fork a thread and have it loop calling "DNSServiceProcessResult(ref);"
- * If DNSServiceProcessResult() is called when no data is available for reading on the socket, it
- * will block until data does become available, and then process the data and return to the caller.
- * The application is reponsible for checking the return value of DNSServiceProcessResult() to determine
- * if the socket is valid and if it should continue to process data on the socket.
- * When data arrives on the socket, the client is responsible for calling DNSServiceProcessResult(ref)
- * in a timely fashion -- if the client allows a large backlog of data to build up the daemon
- * may terminate the connection.
- *
- * sdRef:           A DNSServiceRef initialized by any of the DNSService calls.
- *
- * return value:    The DNSServiceRef's underlying socket descriptor, or -1 on
- *                  error.
- */
-
-int DNSSD_API DNSServiceRefSockFD(DNSServiceRef sdRef);
-
-
 /* DNSServiceProcessResult()
  *
  * Read a reply from the daemon, calling the appropriate application callback. This call will
diff --git a/mDNSShared/dnssd_clientstub.c b/mDNSShared/dnssd_clientstub.c
index c38197c..c6b50a2 100644
--- a/mDNSShared/dnssd_clientstub.c
+++ b/mDNSShared/dnssd_clientstub.c
@@ -799,7 +799,7 @@ cleanup:
     return err;
 }
 
-int DNSSD_API DNSServiceRefSockFD(DNSServiceRef sdRef)
+dnssd_sock_t DNSSD_API DNSServiceRefSockFD(DNSServiceRef sdRef)
 {
     if (!sdRef) { syslog(LOG_WARNING, "dnssd_clientstub DNSServiceRefSockFD called with NULL DNSServiceRef"); return dnssd_InvalidSocket; }
 
@@ -816,7 +816,7 @@ int DNSSD_API DNSServiceRefSockFD(DNSServiceRef sdRef)
         return dnssd_InvalidSocket;
     }
 
-    return (int) sdRef->sockfd;
+    return sdRef->sockfd;
 }
 
 #if _DNS_SD_LIBDISPATCH
@@ -2025,7 +2025,7 @@ DNSServiceErrorType DNSSD_API DNSServiceSetDispatchQueue
     dispatch_queue_t queue
 )
 {
-    int dnssd_fd  = DNSServiceRefSockFD(service);
+    dnssd_sock_t dnssd_fd  = DNSServiceRefSockFD(service);
     if (dnssd_fd == dnssd_InvalidSocket) return kDNSServiceErr_BadParam;
     if (!queue)
     {