1*48a54d36SAndroid Build Coastguard Worker /* -*- Mode: C; tab-width: 4 -*-
2*48a54d36SAndroid Build Coastguard Worker *
3*48a54d36SAndroid Build Coastguard Worker * Copyright (c) 2009, Apple Computer, Inc. All rights reserved.
4*48a54d36SAndroid Build Coastguard Worker *
5*48a54d36SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without
6*48a54d36SAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions are met:
7*48a54d36SAndroid Build Coastguard Worker *
8*48a54d36SAndroid Build Coastguard Worker * 1. Redistributions of source code must retain the above copyright notice,
9*48a54d36SAndroid Build Coastguard Worker * this list of conditions and the following disclaimer.
10*48a54d36SAndroid Build Coastguard Worker * 2. Redistributions in binary form must reproduce the above copyright notice,
11*48a54d36SAndroid Build Coastguard Worker * this list of conditions and the following disclaimer in the documentation
12*48a54d36SAndroid Build Coastguard Worker * and/or other materials provided with the distribution.
13*48a54d36SAndroid Build Coastguard Worker * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of its
14*48a54d36SAndroid Build Coastguard Worker * contributors may be used to endorse or promote products derived from this
15*48a54d36SAndroid Build Coastguard Worker * software without specific prior written permission.
16*48a54d36SAndroid Build Coastguard Worker *
17*48a54d36SAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18*48a54d36SAndroid Build Coastguard Worker * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19*48a54d36SAndroid Build Coastguard Worker * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20*48a54d36SAndroid Build Coastguard Worker * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21*48a54d36SAndroid Build Coastguard Worker * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22*48a54d36SAndroid Build Coastguard Worker * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23*48a54d36SAndroid Build Coastguard Worker * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24*48a54d36SAndroid Build Coastguard Worker * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25*48a54d36SAndroid Build Coastguard Worker * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26*48a54d36SAndroid Build Coastguard Worker * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27*48a54d36SAndroid Build Coastguard Worker */
28*48a54d36SAndroid Build Coastguard Worker
29*48a54d36SAndroid Build Coastguard Worker #include "DLLStub.h"
30*48a54d36SAndroid Build Coastguard Worker
31*48a54d36SAndroid Build Coastguard Worker static int g_defaultErrorCode = kDNSServiceErr_Unknown;
32*48a54d36SAndroid Build Coastguard Worker static DLLStub g_glueLayer;
33*48a54d36SAndroid Build Coastguard Worker
34*48a54d36SAndroid Build Coastguard Worker
35*48a54d36SAndroid Build Coastguard Worker // ------------------------------------------
36*48a54d36SAndroid Build Coastguard Worker // DLLStub implementation
37*48a54d36SAndroid Build Coastguard Worker // ------------------------------------------
38*48a54d36SAndroid Build Coastguard Worker DLLStub * DLLStub::m_instance;
39*48a54d36SAndroid Build Coastguard Worker
DLLStub()40*48a54d36SAndroid Build Coastguard Worker DLLStub::DLLStub()
41*48a54d36SAndroid Build Coastguard Worker :
42*48a54d36SAndroid Build Coastguard Worker m_library( LoadLibrary( TEXT( "dnssd.dll" ) ) )
43*48a54d36SAndroid Build Coastguard Worker {
44*48a54d36SAndroid Build Coastguard Worker m_instance = this;
45*48a54d36SAndroid Build Coastguard Worker }
46*48a54d36SAndroid Build Coastguard Worker
47*48a54d36SAndroid Build Coastguard Worker
~DLLStub()48*48a54d36SAndroid Build Coastguard Worker DLLStub::~DLLStub()
49*48a54d36SAndroid Build Coastguard Worker {
50*48a54d36SAndroid Build Coastguard Worker if ( m_library != NULL )
51*48a54d36SAndroid Build Coastguard Worker {
52*48a54d36SAndroid Build Coastguard Worker FreeLibrary( m_library );
53*48a54d36SAndroid Build Coastguard Worker m_library = NULL;
54*48a54d36SAndroid Build Coastguard Worker }
55*48a54d36SAndroid Build Coastguard Worker
56*48a54d36SAndroid Build Coastguard Worker m_instance = NULL;
57*48a54d36SAndroid Build Coastguard Worker }
58*48a54d36SAndroid Build Coastguard Worker
59*48a54d36SAndroid Build Coastguard Worker
60*48a54d36SAndroid Build Coastguard Worker bool
GetProcAddress(FARPROC * func,LPCSTR lpProcName)61*48a54d36SAndroid Build Coastguard Worker DLLStub::GetProcAddress( FARPROC * func, LPCSTR lpProcName )
62*48a54d36SAndroid Build Coastguard Worker {
63*48a54d36SAndroid Build Coastguard Worker if ( m_instance && m_instance->m_library )
64*48a54d36SAndroid Build Coastguard Worker {
65*48a54d36SAndroid Build Coastguard Worker // Only call ::GetProcAddress if *func is NULL. This allows
66*48a54d36SAndroid Build Coastguard Worker // the calling code to cache the funcptr value, and we get
67*48a54d36SAndroid Build Coastguard Worker // some performance benefit.
68*48a54d36SAndroid Build Coastguard Worker
69*48a54d36SAndroid Build Coastguard Worker if ( *func == NULL )
70*48a54d36SAndroid Build Coastguard Worker {
71*48a54d36SAndroid Build Coastguard Worker *func = ::GetProcAddress( m_instance->m_library, lpProcName );
72*48a54d36SAndroid Build Coastguard Worker }
73*48a54d36SAndroid Build Coastguard Worker }
74*48a54d36SAndroid Build Coastguard Worker else
75*48a54d36SAndroid Build Coastguard Worker {
76*48a54d36SAndroid Build Coastguard Worker *func = NULL;
77*48a54d36SAndroid Build Coastguard Worker }
78*48a54d36SAndroid Build Coastguard Worker
79*48a54d36SAndroid Build Coastguard Worker return ( *func != NULL );
80*48a54d36SAndroid Build Coastguard Worker }
81*48a54d36SAndroid Build Coastguard Worker
82*48a54d36SAndroid Build Coastguard Worker
83*48a54d36SAndroid Build Coastguard Worker int DNSSD_API
DNSServiceRefSockFD(DNSServiceRef sdRef)84*48a54d36SAndroid Build Coastguard Worker DNSServiceRefSockFD(DNSServiceRef sdRef)
85*48a54d36SAndroid Build Coastguard Worker {
86*48a54d36SAndroid Build Coastguard Worker typedef int (DNSSD_API * Func)(DNSServiceRef sdRef);
87*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
88*48a54d36SAndroid Build Coastguard Worker int ret = -1;
89*48a54d36SAndroid Build Coastguard Worker
90*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
91*48a54d36SAndroid Build Coastguard Worker {
92*48a54d36SAndroid Build Coastguard Worker ret = func( sdRef );
93*48a54d36SAndroid Build Coastguard Worker }
94*48a54d36SAndroid Build Coastguard Worker
95*48a54d36SAndroid Build Coastguard Worker return ret;
96*48a54d36SAndroid Build Coastguard Worker }
97*48a54d36SAndroid Build Coastguard Worker
98*48a54d36SAndroid Build Coastguard Worker
99*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceProcessResult(DNSServiceRef sdRef)100*48a54d36SAndroid Build Coastguard Worker DNSServiceProcessResult(DNSServiceRef sdRef)
101*48a54d36SAndroid Build Coastguard Worker {
102*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)(DNSServiceRef sdRef);
103*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
104*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
105*48a54d36SAndroid Build Coastguard Worker
106*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
107*48a54d36SAndroid Build Coastguard Worker {
108*48a54d36SAndroid Build Coastguard Worker ret = func( sdRef );
109*48a54d36SAndroid Build Coastguard Worker }
110*48a54d36SAndroid Build Coastguard Worker
111*48a54d36SAndroid Build Coastguard Worker return ret;
112*48a54d36SAndroid Build Coastguard Worker }
113*48a54d36SAndroid Build Coastguard Worker
114*48a54d36SAndroid Build Coastguard Worker
115*48a54d36SAndroid Build Coastguard Worker void DNSSD_API
DNSServiceRefDeallocate(DNSServiceRef sdRef)116*48a54d36SAndroid Build Coastguard Worker DNSServiceRefDeallocate(DNSServiceRef sdRef)
117*48a54d36SAndroid Build Coastguard Worker {
118*48a54d36SAndroid Build Coastguard Worker typedef void (DNSSD_API * Func)(DNSServiceRef sdRef);
119*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
120*48a54d36SAndroid Build Coastguard Worker
121*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
122*48a54d36SAndroid Build Coastguard Worker {
123*48a54d36SAndroid Build Coastguard Worker func( sdRef );
124*48a54d36SAndroid Build Coastguard Worker }
125*48a54d36SAndroid Build Coastguard Worker }
126*48a54d36SAndroid Build Coastguard Worker
127*48a54d36SAndroid Build Coastguard Worker
128*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceEnumerateDomains(DNSServiceRef * sdRef,DNSServiceFlags flags,uint32_t interfaceIndex,DNSServiceDomainEnumReply callBack,void * context)129*48a54d36SAndroid Build Coastguard Worker DNSServiceEnumerateDomains
130*48a54d36SAndroid Build Coastguard Worker (
131*48a54d36SAndroid Build Coastguard Worker DNSServiceRef *sdRef,
132*48a54d36SAndroid Build Coastguard Worker DNSServiceFlags flags,
133*48a54d36SAndroid Build Coastguard Worker uint32_t interfaceIndex,
134*48a54d36SAndroid Build Coastguard Worker DNSServiceDomainEnumReply callBack,
135*48a54d36SAndroid Build Coastguard Worker void *context
136*48a54d36SAndroid Build Coastguard Worker )
137*48a54d36SAndroid Build Coastguard Worker {
138*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)(DNSServiceRef*, DNSServiceFlags, uint32_t, DNSServiceDomainEnumReply, void* );
139*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
140*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
141*48a54d36SAndroid Build Coastguard Worker
142*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
143*48a54d36SAndroid Build Coastguard Worker {
144*48a54d36SAndroid Build Coastguard Worker ret = func( sdRef, flags, interfaceIndex, callBack, context );
145*48a54d36SAndroid Build Coastguard Worker }
146*48a54d36SAndroid Build Coastguard Worker
147*48a54d36SAndroid Build Coastguard Worker return ret;
148*48a54d36SAndroid Build Coastguard Worker }
149*48a54d36SAndroid Build Coastguard Worker
150*48a54d36SAndroid Build Coastguard Worker
151*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceRegister(DNSServiceRef * sdRef,DNSServiceFlags flags,uint32_t interfaceIndex,const char * name,const char * regtype,const char * domain,const char * host,uint16_t port,uint16_t txtLen,const void * txtRecord,DNSServiceRegisterReply callBack,void * context)152*48a54d36SAndroid Build Coastguard Worker DNSServiceRegister
153*48a54d36SAndroid Build Coastguard Worker (
154*48a54d36SAndroid Build Coastguard Worker DNSServiceRef *sdRef,
155*48a54d36SAndroid Build Coastguard Worker DNSServiceFlags flags,
156*48a54d36SAndroid Build Coastguard Worker uint32_t interfaceIndex,
157*48a54d36SAndroid Build Coastguard Worker const char *name,
158*48a54d36SAndroid Build Coastguard Worker const char *regtype,
159*48a54d36SAndroid Build Coastguard Worker const char *domain,
160*48a54d36SAndroid Build Coastguard Worker const char *host,
161*48a54d36SAndroid Build Coastguard Worker uint16_t port,
162*48a54d36SAndroid Build Coastguard Worker uint16_t txtLen,
163*48a54d36SAndroid Build Coastguard Worker const void *txtRecord,
164*48a54d36SAndroid Build Coastguard Worker DNSServiceRegisterReply callBack,
165*48a54d36SAndroid Build Coastguard Worker void *context
166*48a54d36SAndroid Build Coastguard Worker )
167*48a54d36SAndroid Build Coastguard Worker {
168*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)(DNSServiceRef*, DNSServiceFlags, uint32_t, const char*, const char*, const char*, const char*, uint16_t, uint16_t, const void*, DNSServiceRegisterReply, void* );
169*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
170*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
171*48a54d36SAndroid Build Coastguard Worker
172*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
173*48a54d36SAndroid Build Coastguard Worker {
174*48a54d36SAndroid Build Coastguard Worker ret = func( sdRef, flags, interfaceIndex, name, regtype, domain, host, port, txtLen, txtRecord, callBack, context );
175*48a54d36SAndroid Build Coastguard Worker }
176*48a54d36SAndroid Build Coastguard Worker
177*48a54d36SAndroid Build Coastguard Worker return ret;
178*48a54d36SAndroid Build Coastguard Worker }
179*48a54d36SAndroid Build Coastguard Worker
180*48a54d36SAndroid Build Coastguard Worker
181*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceAddRecord(DNSServiceRef sdRef,DNSRecordRef * RecordRef,DNSServiceFlags flags,uint16_t rrtype,uint16_t rdlen,const void * rdata,uint32_t ttl)182*48a54d36SAndroid Build Coastguard Worker DNSServiceAddRecord
183*48a54d36SAndroid Build Coastguard Worker (
184*48a54d36SAndroid Build Coastguard Worker DNSServiceRef sdRef,
185*48a54d36SAndroid Build Coastguard Worker DNSRecordRef *RecordRef,
186*48a54d36SAndroid Build Coastguard Worker DNSServiceFlags flags,
187*48a54d36SAndroid Build Coastguard Worker uint16_t rrtype,
188*48a54d36SAndroid Build Coastguard Worker uint16_t rdlen,
189*48a54d36SAndroid Build Coastguard Worker const void *rdata,
190*48a54d36SAndroid Build Coastguard Worker uint32_t ttl
191*48a54d36SAndroid Build Coastguard Worker )
192*48a54d36SAndroid Build Coastguard Worker {
193*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)(DNSServiceRef, DNSRecordRef*, DNSServiceFlags, uint16_t, uint16_t, const void*, uint32_t );
194*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
195*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
196*48a54d36SAndroid Build Coastguard Worker
197*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
198*48a54d36SAndroid Build Coastguard Worker {
199*48a54d36SAndroid Build Coastguard Worker ret = func( sdRef, RecordRef, flags, rrtype, rdlen, rdata, ttl );
200*48a54d36SAndroid Build Coastguard Worker }
201*48a54d36SAndroid Build Coastguard Worker
202*48a54d36SAndroid Build Coastguard Worker return ret;
203*48a54d36SAndroid Build Coastguard Worker }
204*48a54d36SAndroid Build Coastguard Worker
205*48a54d36SAndroid Build Coastguard Worker
206*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceUpdateRecord(DNSServiceRef sdRef,DNSRecordRef RecordRef,DNSServiceFlags flags,uint16_t rdlen,const void * rdata,uint32_t ttl)207*48a54d36SAndroid Build Coastguard Worker DNSServiceUpdateRecord
208*48a54d36SAndroid Build Coastguard Worker (
209*48a54d36SAndroid Build Coastguard Worker DNSServiceRef sdRef,
210*48a54d36SAndroid Build Coastguard Worker DNSRecordRef RecordRef, /* may be NULL */
211*48a54d36SAndroid Build Coastguard Worker DNSServiceFlags flags,
212*48a54d36SAndroid Build Coastguard Worker uint16_t rdlen,
213*48a54d36SAndroid Build Coastguard Worker const void *rdata,
214*48a54d36SAndroid Build Coastguard Worker uint32_t ttl
215*48a54d36SAndroid Build Coastguard Worker )
216*48a54d36SAndroid Build Coastguard Worker {
217*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)(DNSServiceRef, DNSRecordRef, DNSServiceFlags, uint16_t, const void*, uint32_t );
218*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
219*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
220*48a54d36SAndroid Build Coastguard Worker
221*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
222*48a54d36SAndroid Build Coastguard Worker {
223*48a54d36SAndroid Build Coastguard Worker ret = func( sdRef, RecordRef, flags, rdlen, rdata, ttl );
224*48a54d36SAndroid Build Coastguard Worker }
225*48a54d36SAndroid Build Coastguard Worker
226*48a54d36SAndroid Build Coastguard Worker return ret;
227*48a54d36SAndroid Build Coastguard Worker }
228*48a54d36SAndroid Build Coastguard Worker
229*48a54d36SAndroid Build Coastguard Worker
230*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceRemoveRecord(DNSServiceRef sdRef,DNSRecordRef RecordRef,DNSServiceFlags flags)231*48a54d36SAndroid Build Coastguard Worker DNSServiceRemoveRecord
232*48a54d36SAndroid Build Coastguard Worker (
233*48a54d36SAndroid Build Coastguard Worker DNSServiceRef sdRef,
234*48a54d36SAndroid Build Coastguard Worker DNSRecordRef RecordRef,
235*48a54d36SAndroid Build Coastguard Worker DNSServiceFlags flags
236*48a54d36SAndroid Build Coastguard Worker )
237*48a54d36SAndroid Build Coastguard Worker {
238*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)(DNSServiceRef, DNSRecordRef, DNSServiceFlags );
239*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
240*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
241*48a54d36SAndroid Build Coastguard Worker
242*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
243*48a54d36SAndroid Build Coastguard Worker {
244*48a54d36SAndroid Build Coastguard Worker ret = func( sdRef, RecordRef, flags );
245*48a54d36SAndroid Build Coastguard Worker }
246*48a54d36SAndroid Build Coastguard Worker
247*48a54d36SAndroid Build Coastguard Worker return ret;
248*48a54d36SAndroid Build Coastguard Worker }
249*48a54d36SAndroid Build Coastguard Worker
250*48a54d36SAndroid Build Coastguard Worker
251*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceBrowse(DNSServiceRef * sdRef,DNSServiceFlags flags,uint32_t interfaceIndex,const char * regtype,const char * domain,DNSServiceBrowseReply callBack,void * context)252*48a54d36SAndroid Build Coastguard Worker DNSServiceBrowse
253*48a54d36SAndroid Build Coastguard Worker (
254*48a54d36SAndroid Build Coastguard Worker DNSServiceRef *sdRef,
255*48a54d36SAndroid Build Coastguard Worker DNSServiceFlags flags,
256*48a54d36SAndroid Build Coastguard Worker uint32_t interfaceIndex,
257*48a54d36SAndroid Build Coastguard Worker const char *regtype,
258*48a54d36SAndroid Build Coastguard Worker const char *domain, /* may be NULL */
259*48a54d36SAndroid Build Coastguard Worker DNSServiceBrowseReply callBack,
260*48a54d36SAndroid Build Coastguard Worker void *context /* may be NULL */
261*48a54d36SAndroid Build Coastguard Worker )
262*48a54d36SAndroid Build Coastguard Worker {
263*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)(DNSServiceRef*, DNSServiceFlags, uint32_t, const char*, const char*, DNSServiceBrowseReply, void* );
264*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
265*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
266*48a54d36SAndroid Build Coastguard Worker
267*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
268*48a54d36SAndroid Build Coastguard Worker {
269*48a54d36SAndroid Build Coastguard Worker ret = func( sdRef, flags, interfaceIndex, regtype, domain, callBack, context );
270*48a54d36SAndroid Build Coastguard Worker }
271*48a54d36SAndroid Build Coastguard Worker
272*48a54d36SAndroid Build Coastguard Worker return ret;
273*48a54d36SAndroid Build Coastguard Worker }
274*48a54d36SAndroid Build Coastguard Worker
275*48a54d36SAndroid Build Coastguard Worker
276*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceResolve(DNSServiceRef * sdRef,DNSServiceFlags flags,uint32_t interfaceIndex,const char * name,const char * regtype,const char * domain,DNSServiceResolveReply callBack,void * context)277*48a54d36SAndroid Build Coastguard Worker DNSServiceResolve
278*48a54d36SAndroid Build Coastguard Worker (
279*48a54d36SAndroid Build Coastguard Worker DNSServiceRef *sdRef,
280*48a54d36SAndroid Build Coastguard Worker DNSServiceFlags flags,
281*48a54d36SAndroid Build Coastguard Worker uint32_t interfaceIndex,
282*48a54d36SAndroid Build Coastguard Worker const char *name,
283*48a54d36SAndroid Build Coastguard Worker const char *regtype,
284*48a54d36SAndroid Build Coastguard Worker const char *domain,
285*48a54d36SAndroid Build Coastguard Worker DNSServiceResolveReply callBack,
286*48a54d36SAndroid Build Coastguard Worker void *context /* may be NULL */
287*48a54d36SAndroid Build Coastguard Worker )
288*48a54d36SAndroid Build Coastguard Worker {
289*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)(DNSServiceRef*, DNSServiceFlags, uint32_t, const char*, const char*, const char*, DNSServiceResolveReply, void* );
290*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
291*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
292*48a54d36SAndroid Build Coastguard Worker
293*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
294*48a54d36SAndroid Build Coastguard Worker {
295*48a54d36SAndroid Build Coastguard Worker ret = func( sdRef, flags, interfaceIndex, name, regtype, domain, callBack, context );
296*48a54d36SAndroid Build Coastguard Worker }
297*48a54d36SAndroid Build Coastguard Worker
298*48a54d36SAndroid Build Coastguard Worker return ret;
299*48a54d36SAndroid Build Coastguard Worker }
300*48a54d36SAndroid Build Coastguard Worker
301*48a54d36SAndroid Build Coastguard Worker
302*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceConstructFullName(char * fullName,const char * service,const char * regtype,const char * domain)303*48a54d36SAndroid Build Coastguard Worker DNSServiceConstructFullName
304*48a54d36SAndroid Build Coastguard Worker (
305*48a54d36SAndroid Build Coastguard Worker char *fullName,
306*48a54d36SAndroid Build Coastguard Worker const char *service, /* may be NULL */
307*48a54d36SAndroid Build Coastguard Worker const char *regtype,
308*48a54d36SAndroid Build Coastguard Worker const char *domain
309*48a54d36SAndroid Build Coastguard Worker )
310*48a54d36SAndroid Build Coastguard Worker {
311*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)( char*, const char*, const char*, const char* );
312*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
313*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
314*48a54d36SAndroid Build Coastguard Worker
315*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
316*48a54d36SAndroid Build Coastguard Worker {
317*48a54d36SAndroid Build Coastguard Worker ret = func( fullName, service, regtype, domain );
318*48a54d36SAndroid Build Coastguard Worker }
319*48a54d36SAndroid Build Coastguard Worker
320*48a54d36SAndroid Build Coastguard Worker return ret;
321*48a54d36SAndroid Build Coastguard Worker }
322*48a54d36SAndroid Build Coastguard Worker
323*48a54d36SAndroid Build Coastguard Worker
324*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceCreateConnection(DNSServiceRef * sdRef)325*48a54d36SAndroid Build Coastguard Worker DNSServiceCreateConnection(DNSServiceRef *sdRef)
326*48a54d36SAndroid Build Coastguard Worker {
327*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)( DNSServiceRef* );
328*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
329*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
330*48a54d36SAndroid Build Coastguard Worker
331*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
332*48a54d36SAndroid Build Coastguard Worker {
333*48a54d36SAndroid Build Coastguard Worker ret = func( sdRef );
334*48a54d36SAndroid Build Coastguard Worker }
335*48a54d36SAndroid Build Coastguard Worker
336*48a54d36SAndroid Build Coastguard Worker return ret;
337*48a54d36SAndroid Build Coastguard Worker }
338*48a54d36SAndroid Build Coastguard Worker
339*48a54d36SAndroid Build Coastguard Worker
340*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceRegisterRecord(DNSServiceRef sdRef,DNSRecordRef * RecordRef,DNSServiceFlags flags,uint32_t interfaceIndex,const char * fullname,uint16_t rrtype,uint16_t rrclass,uint16_t rdlen,const void * rdata,uint32_t ttl,DNSServiceRegisterRecordReply callBack,void * context)341*48a54d36SAndroid Build Coastguard Worker DNSServiceRegisterRecord
342*48a54d36SAndroid Build Coastguard Worker (
343*48a54d36SAndroid Build Coastguard Worker DNSServiceRef sdRef,
344*48a54d36SAndroid Build Coastguard Worker DNSRecordRef *RecordRef,
345*48a54d36SAndroid Build Coastguard Worker DNSServiceFlags flags,
346*48a54d36SAndroid Build Coastguard Worker uint32_t interfaceIndex,
347*48a54d36SAndroid Build Coastguard Worker const char *fullname,
348*48a54d36SAndroid Build Coastguard Worker uint16_t rrtype,
349*48a54d36SAndroid Build Coastguard Worker uint16_t rrclass,
350*48a54d36SAndroid Build Coastguard Worker uint16_t rdlen,
351*48a54d36SAndroid Build Coastguard Worker const void *rdata,
352*48a54d36SAndroid Build Coastguard Worker uint32_t ttl,
353*48a54d36SAndroid Build Coastguard Worker DNSServiceRegisterRecordReply callBack,
354*48a54d36SAndroid Build Coastguard Worker void *context /* may be NULL */
355*48a54d36SAndroid Build Coastguard Worker )
356*48a54d36SAndroid Build Coastguard Worker {
357*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)(DNSServiceRef, DNSRecordRef*, DNSServiceFlags, uint32_t, const char*, uint16_t, uint16_t, uint16_t, const void*, uint16_t, DNSServiceRegisterRecordReply, void* );
358*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
359*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
360*48a54d36SAndroid Build Coastguard Worker
361*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
362*48a54d36SAndroid Build Coastguard Worker {
363*48a54d36SAndroid Build Coastguard Worker ret = func( sdRef, RecordRef, flags, interfaceIndex, fullname, rrtype, rrclass, rdlen, rdata, ttl, callBack, context );
364*48a54d36SAndroid Build Coastguard Worker }
365*48a54d36SAndroid Build Coastguard Worker
366*48a54d36SAndroid Build Coastguard Worker return ret;
367*48a54d36SAndroid Build Coastguard Worker }
368*48a54d36SAndroid Build Coastguard Worker
369*48a54d36SAndroid Build Coastguard Worker
370*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceQueryRecord(DNSServiceRef * sdRef,DNSServiceFlags flags,uint32_t interfaceIndex,const char * fullname,uint16_t rrtype,uint16_t rrclass,DNSServiceQueryRecordReply callBack,void * context)371*48a54d36SAndroid Build Coastguard Worker DNSServiceQueryRecord
372*48a54d36SAndroid Build Coastguard Worker (
373*48a54d36SAndroid Build Coastguard Worker DNSServiceRef *sdRef,
374*48a54d36SAndroid Build Coastguard Worker DNSServiceFlags flags,
375*48a54d36SAndroid Build Coastguard Worker uint32_t interfaceIndex,
376*48a54d36SAndroid Build Coastguard Worker const char *fullname,
377*48a54d36SAndroid Build Coastguard Worker uint16_t rrtype,
378*48a54d36SAndroid Build Coastguard Worker uint16_t rrclass,
379*48a54d36SAndroid Build Coastguard Worker DNSServiceQueryRecordReply callBack,
380*48a54d36SAndroid Build Coastguard Worker void *context /* may be NULL */
381*48a54d36SAndroid Build Coastguard Worker )
382*48a54d36SAndroid Build Coastguard Worker {
383*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)(DNSServiceRef*, DNSServiceFlags, uint32_t, const char*, uint16_t, uint16_t, DNSServiceQueryRecordReply, void* );
384*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
385*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
386*48a54d36SAndroid Build Coastguard Worker
387*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
388*48a54d36SAndroid Build Coastguard Worker {
389*48a54d36SAndroid Build Coastguard Worker ret = func( sdRef, flags, interfaceIndex, fullname, rrtype, rrclass, callBack, context );
390*48a54d36SAndroid Build Coastguard Worker }
391*48a54d36SAndroid Build Coastguard Worker
392*48a54d36SAndroid Build Coastguard Worker return ret;
393*48a54d36SAndroid Build Coastguard Worker }
394*48a54d36SAndroid Build Coastguard Worker
395*48a54d36SAndroid Build Coastguard Worker
396*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceReconfirmRecord(DNSServiceFlags flags,uint32_t interfaceIndex,const char * fullname,uint16_t rrtype,uint16_t rrclass,uint16_t rdlen,const void * rdata)397*48a54d36SAndroid Build Coastguard Worker DNSServiceReconfirmRecord
398*48a54d36SAndroid Build Coastguard Worker (
399*48a54d36SAndroid Build Coastguard Worker DNSServiceFlags flags,
400*48a54d36SAndroid Build Coastguard Worker uint32_t interfaceIndex,
401*48a54d36SAndroid Build Coastguard Worker const char *fullname,
402*48a54d36SAndroid Build Coastguard Worker uint16_t rrtype,
403*48a54d36SAndroid Build Coastguard Worker uint16_t rrclass,
404*48a54d36SAndroid Build Coastguard Worker uint16_t rdlen,
405*48a54d36SAndroid Build Coastguard Worker const void *rdata
406*48a54d36SAndroid Build Coastguard Worker )
407*48a54d36SAndroid Build Coastguard Worker {
408*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)( DNSServiceFlags, uint32_t, const char*, uint16_t, uint16_t, uint16_t, const void* );
409*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
410*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
411*48a54d36SAndroid Build Coastguard Worker
412*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
413*48a54d36SAndroid Build Coastguard Worker {
414*48a54d36SAndroid Build Coastguard Worker ret = func( flags, interfaceIndex, fullname, rrtype, rrclass, rdlen, rdata );
415*48a54d36SAndroid Build Coastguard Worker }
416*48a54d36SAndroid Build Coastguard Worker
417*48a54d36SAndroid Build Coastguard Worker return ret;
418*48a54d36SAndroid Build Coastguard Worker }
419*48a54d36SAndroid Build Coastguard Worker
420*48a54d36SAndroid Build Coastguard Worker
421*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceNATPortMappingCreate(DNSServiceRef * sdRef,DNSServiceFlags flags,uint32_t interfaceIndex,DNSServiceProtocol protocol,uint16_t internalPort,uint16_t externalPort,uint32_t ttl,DNSServiceNATPortMappingReply callBack,void * context)422*48a54d36SAndroid Build Coastguard Worker DNSServiceNATPortMappingCreate
423*48a54d36SAndroid Build Coastguard Worker (
424*48a54d36SAndroid Build Coastguard Worker DNSServiceRef *sdRef,
425*48a54d36SAndroid Build Coastguard Worker DNSServiceFlags flags,
426*48a54d36SAndroid Build Coastguard Worker uint32_t interfaceIndex,
427*48a54d36SAndroid Build Coastguard Worker DNSServiceProtocol protocol, /* TCP and/or UDP */
428*48a54d36SAndroid Build Coastguard Worker uint16_t internalPort, /* network byte order */
429*48a54d36SAndroid Build Coastguard Worker uint16_t externalPort, /* network byte order */
430*48a54d36SAndroid Build Coastguard Worker uint32_t ttl, /* time to live in seconds */
431*48a54d36SAndroid Build Coastguard Worker DNSServiceNATPortMappingReply callBack,
432*48a54d36SAndroid Build Coastguard Worker void *context /* may be NULL */
433*48a54d36SAndroid Build Coastguard Worker )
434*48a54d36SAndroid Build Coastguard Worker {
435*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)(DNSServiceRef*, DNSServiceFlags, uint32_t, DNSServiceProtocol, uint16_t, uint16_t, uint16_t, DNSServiceNATPortMappingReply, void* );
436*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
437*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
438*48a54d36SAndroid Build Coastguard Worker
439*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
440*48a54d36SAndroid Build Coastguard Worker {
441*48a54d36SAndroid Build Coastguard Worker ret = func( sdRef, flags, interfaceIndex, protocol, internalPort, externalPort, ttl, callBack, context );
442*48a54d36SAndroid Build Coastguard Worker }
443*48a54d36SAndroid Build Coastguard Worker
444*48a54d36SAndroid Build Coastguard Worker return ret;
445*48a54d36SAndroid Build Coastguard Worker }
446*48a54d36SAndroid Build Coastguard Worker
447*48a54d36SAndroid Build Coastguard Worker
448*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceGetAddrInfo(DNSServiceRef * sdRef,DNSServiceFlags flags,uint32_t interfaceIndex,DNSServiceProtocol protocol,const char * hostname,DNSServiceGetAddrInfoReply callBack,void * context)449*48a54d36SAndroid Build Coastguard Worker DNSServiceGetAddrInfo
450*48a54d36SAndroid Build Coastguard Worker (
451*48a54d36SAndroid Build Coastguard Worker DNSServiceRef *sdRef,
452*48a54d36SAndroid Build Coastguard Worker DNSServiceFlags flags,
453*48a54d36SAndroid Build Coastguard Worker uint32_t interfaceIndex,
454*48a54d36SAndroid Build Coastguard Worker DNSServiceProtocol protocol,
455*48a54d36SAndroid Build Coastguard Worker const char *hostname,
456*48a54d36SAndroid Build Coastguard Worker DNSServiceGetAddrInfoReply callBack,
457*48a54d36SAndroid Build Coastguard Worker void *context /* may be NULL */
458*48a54d36SAndroid Build Coastguard Worker )
459*48a54d36SAndroid Build Coastguard Worker {
460*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)(DNSServiceRef*, DNSServiceFlags, uint32_t, DNSServiceProtocol, const char*, DNSServiceGetAddrInfoReply, void* );
461*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
462*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
463*48a54d36SAndroid Build Coastguard Worker
464*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
465*48a54d36SAndroid Build Coastguard Worker {
466*48a54d36SAndroid Build Coastguard Worker ret = func( sdRef, flags, interfaceIndex, protocol, hostname, callBack, context );
467*48a54d36SAndroid Build Coastguard Worker }
468*48a54d36SAndroid Build Coastguard Worker
469*48a54d36SAndroid Build Coastguard Worker return ret;
470*48a54d36SAndroid Build Coastguard Worker }
471*48a54d36SAndroid Build Coastguard Worker
472*48a54d36SAndroid Build Coastguard Worker
473*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
DNSServiceGetProperty(const char * property,void * result,uint32_t * size)474*48a54d36SAndroid Build Coastguard Worker DNSServiceGetProperty
475*48a54d36SAndroid Build Coastguard Worker (
476*48a54d36SAndroid Build Coastguard Worker const char *property, /* Requested property (i.e. kDNSServiceProperty_DaemonVersion) */
477*48a54d36SAndroid Build Coastguard Worker void *result, /* Pointer to place to store result */
478*48a54d36SAndroid Build Coastguard Worker uint32_t *size /* size of result location */
479*48a54d36SAndroid Build Coastguard Worker )
480*48a54d36SAndroid Build Coastguard Worker {
481*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)( const char*, void*, uint32_t* );
482*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
483*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
484*48a54d36SAndroid Build Coastguard Worker
485*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
486*48a54d36SAndroid Build Coastguard Worker {
487*48a54d36SAndroid Build Coastguard Worker ret = func( property, result, size );
488*48a54d36SAndroid Build Coastguard Worker }
489*48a54d36SAndroid Build Coastguard Worker
490*48a54d36SAndroid Build Coastguard Worker return ret;
491*48a54d36SAndroid Build Coastguard Worker }
492*48a54d36SAndroid Build Coastguard Worker
493*48a54d36SAndroid Build Coastguard Worker
494*48a54d36SAndroid Build Coastguard Worker void DNSSD_API
TXTRecordCreate(TXTRecordRef * txtRecord,uint16_t bufferLen,void * buffer)495*48a54d36SAndroid Build Coastguard Worker TXTRecordCreate
496*48a54d36SAndroid Build Coastguard Worker (
497*48a54d36SAndroid Build Coastguard Worker TXTRecordRef *txtRecord,
498*48a54d36SAndroid Build Coastguard Worker uint16_t bufferLen,
499*48a54d36SAndroid Build Coastguard Worker void *buffer
500*48a54d36SAndroid Build Coastguard Worker )
501*48a54d36SAndroid Build Coastguard Worker {
502*48a54d36SAndroid Build Coastguard Worker typedef void (DNSSD_API * Func)( TXTRecordRef*, uint16_t, void* );
503*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
504*48a54d36SAndroid Build Coastguard Worker
505*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
506*48a54d36SAndroid Build Coastguard Worker {
507*48a54d36SAndroid Build Coastguard Worker func( txtRecord, bufferLen, buffer );
508*48a54d36SAndroid Build Coastguard Worker }
509*48a54d36SAndroid Build Coastguard Worker }
510*48a54d36SAndroid Build Coastguard Worker
511*48a54d36SAndroid Build Coastguard Worker
512*48a54d36SAndroid Build Coastguard Worker void DNSSD_API
TXTRecordDeallocate(TXTRecordRef * txtRecord)513*48a54d36SAndroid Build Coastguard Worker TXTRecordDeallocate
514*48a54d36SAndroid Build Coastguard Worker (
515*48a54d36SAndroid Build Coastguard Worker TXTRecordRef *txtRecord
516*48a54d36SAndroid Build Coastguard Worker )
517*48a54d36SAndroid Build Coastguard Worker {
518*48a54d36SAndroid Build Coastguard Worker typedef void (DNSSD_API * Func)( TXTRecordRef* );
519*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
520*48a54d36SAndroid Build Coastguard Worker
521*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
522*48a54d36SAndroid Build Coastguard Worker {
523*48a54d36SAndroid Build Coastguard Worker func( txtRecord );
524*48a54d36SAndroid Build Coastguard Worker }
525*48a54d36SAndroid Build Coastguard Worker }
526*48a54d36SAndroid Build Coastguard Worker
527*48a54d36SAndroid Build Coastguard Worker
528*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
TXTRecordSetValue(TXTRecordRef * txtRecord,const char * key,uint8_t valueSize,const void * value)529*48a54d36SAndroid Build Coastguard Worker TXTRecordSetValue
530*48a54d36SAndroid Build Coastguard Worker (
531*48a54d36SAndroid Build Coastguard Worker TXTRecordRef *txtRecord,
532*48a54d36SAndroid Build Coastguard Worker const char *key,
533*48a54d36SAndroid Build Coastguard Worker uint8_t valueSize, /* may be zero */
534*48a54d36SAndroid Build Coastguard Worker const void *value /* may be NULL */
535*48a54d36SAndroid Build Coastguard Worker )
536*48a54d36SAndroid Build Coastguard Worker {
537*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)( TXTRecordRef*, const char*, uint8_t, const void* );
538*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
539*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
540*48a54d36SAndroid Build Coastguard Worker
541*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
542*48a54d36SAndroid Build Coastguard Worker {
543*48a54d36SAndroid Build Coastguard Worker ret = func( txtRecord, key, valueSize, value );
544*48a54d36SAndroid Build Coastguard Worker }
545*48a54d36SAndroid Build Coastguard Worker
546*48a54d36SAndroid Build Coastguard Worker return ret;
547*48a54d36SAndroid Build Coastguard Worker }
548*48a54d36SAndroid Build Coastguard Worker
549*48a54d36SAndroid Build Coastguard Worker
550*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
TXTRecordRemoveValue(TXTRecordRef * txtRecord,const char * key)551*48a54d36SAndroid Build Coastguard Worker TXTRecordRemoveValue
552*48a54d36SAndroid Build Coastguard Worker (
553*48a54d36SAndroid Build Coastguard Worker TXTRecordRef *txtRecord,
554*48a54d36SAndroid Build Coastguard Worker const char *key
555*48a54d36SAndroid Build Coastguard Worker )
556*48a54d36SAndroid Build Coastguard Worker {
557*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)( TXTRecordRef*, const char* );
558*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
559*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
560*48a54d36SAndroid Build Coastguard Worker
561*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
562*48a54d36SAndroid Build Coastguard Worker {
563*48a54d36SAndroid Build Coastguard Worker ret = func( txtRecord, key );
564*48a54d36SAndroid Build Coastguard Worker }
565*48a54d36SAndroid Build Coastguard Worker
566*48a54d36SAndroid Build Coastguard Worker return ret;
567*48a54d36SAndroid Build Coastguard Worker }
568*48a54d36SAndroid Build Coastguard Worker
569*48a54d36SAndroid Build Coastguard Worker
570*48a54d36SAndroid Build Coastguard Worker int DNSSD_API
TXTRecordContainsKey(uint16_t txtLen,const void * txtRecord,const char * key)571*48a54d36SAndroid Build Coastguard Worker TXTRecordContainsKey
572*48a54d36SAndroid Build Coastguard Worker (
573*48a54d36SAndroid Build Coastguard Worker uint16_t txtLen,
574*48a54d36SAndroid Build Coastguard Worker const void *txtRecord,
575*48a54d36SAndroid Build Coastguard Worker const char *key
576*48a54d36SAndroid Build Coastguard Worker )
577*48a54d36SAndroid Build Coastguard Worker {
578*48a54d36SAndroid Build Coastguard Worker typedef int (DNSSD_API * Func)( uint16_t, const void*, const char* );
579*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
580*48a54d36SAndroid Build Coastguard Worker int ret = 0;
581*48a54d36SAndroid Build Coastguard Worker
582*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
583*48a54d36SAndroid Build Coastguard Worker {
584*48a54d36SAndroid Build Coastguard Worker ret = func( txtLen, txtRecord, key );
585*48a54d36SAndroid Build Coastguard Worker }
586*48a54d36SAndroid Build Coastguard Worker
587*48a54d36SAndroid Build Coastguard Worker return ret;
588*48a54d36SAndroid Build Coastguard Worker }
589*48a54d36SAndroid Build Coastguard Worker
590*48a54d36SAndroid Build Coastguard Worker
591*48a54d36SAndroid Build Coastguard Worker uint16_t DNSSD_API
TXTRecordGetCount(uint16_t txtLen,const void * txtRecord)592*48a54d36SAndroid Build Coastguard Worker TXTRecordGetCount
593*48a54d36SAndroid Build Coastguard Worker (
594*48a54d36SAndroid Build Coastguard Worker uint16_t txtLen,
595*48a54d36SAndroid Build Coastguard Worker const void *txtRecord
596*48a54d36SAndroid Build Coastguard Worker )
597*48a54d36SAndroid Build Coastguard Worker {
598*48a54d36SAndroid Build Coastguard Worker typedef uint16_t (DNSSD_API * Func)( uint16_t, const void* );
599*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
600*48a54d36SAndroid Build Coastguard Worker uint16_t ret = 0;
601*48a54d36SAndroid Build Coastguard Worker
602*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
603*48a54d36SAndroid Build Coastguard Worker {
604*48a54d36SAndroid Build Coastguard Worker ret = func( txtLen, txtRecord );
605*48a54d36SAndroid Build Coastguard Worker }
606*48a54d36SAndroid Build Coastguard Worker
607*48a54d36SAndroid Build Coastguard Worker return ret;
608*48a54d36SAndroid Build Coastguard Worker }
609*48a54d36SAndroid Build Coastguard Worker
610*48a54d36SAndroid Build Coastguard Worker
611*48a54d36SAndroid Build Coastguard Worker uint16_t DNSSD_API
TXTRecordGetLength(const TXTRecordRef * txtRecord)612*48a54d36SAndroid Build Coastguard Worker TXTRecordGetLength
613*48a54d36SAndroid Build Coastguard Worker (
614*48a54d36SAndroid Build Coastguard Worker const TXTRecordRef *txtRecord
615*48a54d36SAndroid Build Coastguard Worker )
616*48a54d36SAndroid Build Coastguard Worker {
617*48a54d36SAndroid Build Coastguard Worker typedef uint16_t (DNSSD_API * Func)( const TXTRecordRef* );
618*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
619*48a54d36SAndroid Build Coastguard Worker uint16_t ret = 0;
620*48a54d36SAndroid Build Coastguard Worker
621*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
622*48a54d36SAndroid Build Coastguard Worker {
623*48a54d36SAndroid Build Coastguard Worker ret = func( txtRecord );
624*48a54d36SAndroid Build Coastguard Worker }
625*48a54d36SAndroid Build Coastguard Worker
626*48a54d36SAndroid Build Coastguard Worker return ret;
627*48a54d36SAndroid Build Coastguard Worker }
628*48a54d36SAndroid Build Coastguard Worker
629*48a54d36SAndroid Build Coastguard Worker
630*48a54d36SAndroid Build Coastguard Worker const void * DNSSD_API
TXTRecordGetBytesPtr(const TXTRecordRef * txtRecord)631*48a54d36SAndroid Build Coastguard Worker TXTRecordGetBytesPtr
632*48a54d36SAndroid Build Coastguard Worker (
633*48a54d36SAndroid Build Coastguard Worker const TXTRecordRef *txtRecord
634*48a54d36SAndroid Build Coastguard Worker )
635*48a54d36SAndroid Build Coastguard Worker {
636*48a54d36SAndroid Build Coastguard Worker typedef const void* (DNSSD_API * Func)( const TXTRecordRef* );
637*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
638*48a54d36SAndroid Build Coastguard Worker const void* ret = NULL;
639*48a54d36SAndroid Build Coastguard Worker
640*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
641*48a54d36SAndroid Build Coastguard Worker {
642*48a54d36SAndroid Build Coastguard Worker ret = func( txtRecord );
643*48a54d36SAndroid Build Coastguard Worker }
644*48a54d36SAndroid Build Coastguard Worker
645*48a54d36SAndroid Build Coastguard Worker return ret;
646*48a54d36SAndroid Build Coastguard Worker }
647*48a54d36SAndroid Build Coastguard Worker
648*48a54d36SAndroid Build Coastguard Worker
649*48a54d36SAndroid Build Coastguard Worker const void * DNSSD_API
TXTRecordGetValuePtr(uint16_t txtLen,const void * txtRecord,const char * key,uint8_t * valueLen)650*48a54d36SAndroid Build Coastguard Worker TXTRecordGetValuePtr
651*48a54d36SAndroid Build Coastguard Worker (
652*48a54d36SAndroid Build Coastguard Worker uint16_t txtLen,
653*48a54d36SAndroid Build Coastguard Worker const void *txtRecord,
654*48a54d36SAndroid Build Coastguard Worker const char *key,
655*48a54d36SAndroid Build Coastguard Worker uint8_t *valueLen
656*48a54d36SAndroid Build Coastguard Worker )
657*48a54d36SAndroid Build Coastguard Worker {
658*48a54d36SAndroid Build Coastguard Worker typedef const void* (DNSSD_API * Func)( uint16_t, const void*, const char*, uint8_t* );
659*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
660*48a54d36SAndroid Build Coastguard Worker const void* ret = NULL;
661*48a54d36SAndroid Build Coastguard Worker
662*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
663*48a54d36SAndroid Build Coastguard Worker {
664*48a54d36SAndroid Build Coastguard Worker ret = func( txtLen, txtRecord, key, valueLen );
665*48a54d36SAndroid Build Coastguard Worker }
666*48a54d36SAndroid Build Coastguard Worker
667*48a54d36SAndroid Build Coastguard Worker return ret;
668*48a54d36SAndroid Build Coastguard Worker }
669*48a54d36SAndroid Build Coastguard Worker
670*48a54d36SAndroid Build Coastguard Worker
671*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType DNSSD_API
TXTRecordGetItemAtIndex(uint16_t txtLen,const void * txtRecord,uint16_t itemIndex,uint16_t keyBufLen,char * key,uint8_t * valueLen,const void ** value)672*48a54d36SAndroid Build Coastguard Worker TXTRecordGetItemAtIndex
673*48a54d36SAndroid Build Coastguard Worker (
674*48a54d36SAndroid Build Coastguard Worker uint16_t txtLen,
675*48a54d36SAndroid Build Coastguard Worker const void *txtRecord,
676*48a54d36SAndroid Build Coastguard Worker uint16_t itemIndex,
677*48a54d36SAndroid Build Coastguard Worker uint16_t keyBufLen,
678*48a54d36SAndroid Build Coastguard Worker char *key,
679*48a54d36SAndroid Build Coastguard Worker uint8_t *valueLen,
680*48a54d36SAndroid Build Coastguard Worker const void **value
681*48a54d36SAndroid Build Coastguard Worker )
682*48a54d36SAndroid Build Coastguard Worker {
683*48a54d36SAndroid Build Coastguard Worker typedef DNSServiceErrorType (DNSSD_API * Func)( uint16_t, const void*, uint16_t, uint16_t, char*, uint8_t*, const void** );
684*48a54d36SAndroid Build Coastguard Worker static Func func = NULL;
685*48a54d36SAndroid Build Coastguard Worker DNSServiceErrorType ret = g_defaultErrorCode;
686*48a54d36SAndroid Build Coastguard Worker
687*48a54d36SAndroid Build Coastguard Worker if ( DLLStub::GetProcAddress( ( FARPROC* ) &func, __FUNCTION__ ) )
688*48a54d36SAndroid Build Coastguard Worker {
689*48a54d36SAndroid Build Coastguard Worker ret = func( txtLen, txtRecord, itemIndex, keyBufLen, key, valueLen, value );
690*48a54d36SAndroid Build Coastguard Worker }
691*48a54d36SAndroid Build Coastguard Worker
692*48a54d36SAndroid Build Coastguard Worker return ret;
693*48a54d36SAndroid Build Coastguard Worker }