DNS Service Discovery Library Functions
DNSServiceBrowse(3DNS_SD)
NAME
DNSServiceBrowse - browse service instances with DNS
SYNOPSIS
cc [ flag ... ] file ... -ldns_sd [ library ... ]
#include
DNSServiceErrorType DNSServiceBrowse(DNSServiceRef *sdRef,
DNSServiceFlags flags, uint32_t interfaceIndex,
const char *regtype, const char *domain, DNSServiceServiceBrowseReply callBack, void *context);typedef void(*DNSServiceBrowseReply)(DNSServiceRef sdRef,
DNSServiceFlags flags, uint32_t interfaceIndex,
DNSServiceErrorType errorCode, const char *serviceName, const char *regtype, const char *replyDomain, void *context);DESCRIPTION
The DNSServiceBrowse() function is used to browse for ser-
vice instances of a particular service and protocol type. The sdRef argument points to an uninitialized DNSServiceRef.If the call to DNSServiceBrowse succeeds sdRef is initial-
ized. The flags argument to DNSServiceBrowse() is currently
unused and reserved for future use. A nonzero value tointerfaceIndex indicates DNSServiceBrowse() should do a
browse on all interfaces. Most applications will use aninterfaceIndex value of 0 to perform a browse on all inter-
faces. See the section "Constants for specifying an inter-
face index" in
The callback function is invoked for every service instance found matching the service type and protocol. The callbackfor more details. argument points to a function of type DNSServiceBrowseReply
listed above. The DNSServiceBrowse() call returns browse
results asynchronously. The service browse call can be ter-
minated by applications with a call to DNSServiceRefDeallo-
cate(). The regtype parameter is used to specify the service typeand protocol (e.g. _ftp._tcp). The protocol type must be TCP
or UDP. The domain argument to DNSServiceBrowse() specifies
the domain on which to browse for services. Most applica-
tions will not specify a domain and will perform a browse on the default domain(s). The context argument can be NULL and points to a value passed to the callback function.SunOS 5.11 Last change: 20 Aug 2007 1
DNS Service Discovery Library FunctionsDNSServiceBrowse(3DNS_SD)
The sdRef argument passed to the callback function is ini-
tialized by DNSServiceBrowse() call. The possible values
passed to flags in the callback function are: kDNSServi-
ceFlagsMoreComing and kDNSServiceFlagsAdd. The kDNSServi-
ceFlagsMoreComing value indicates to a callback that atleast one more result is immediately available. The kDNSSer-
viceFlagsAdd value indicates that a service instance wasfound. The errorCode argument will be kDNSServiceErr_NoError
on success. Otherwise, failure is indicated. The discovered service name is returned to the callback via the serviceName argument. The regtype argument in the callback holds the service type of the found service instance. The discovered service type can be different from the requested service type in the browse request when the discovered service type has subtypes. The domain argument to the callback holds the domain name of the discovered service instance. The service type and the domain name must be stored and passed along with the service name to resolve a service instance using DNSServiceResolve().RETURN VALUES
The DNSServiceBrowse function returns kDNSServiceErr_NoError
on success. Otherwise, an error code defined in
is returned to indicate an error has occurred. When an erroris returned by DNSServiceBrowse, the callback function is
not invoked and the DNSServiceRef argument is not initial-
ized.ATTRIBUTES
See attributes(5) for description of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | Safe |
|_____________________________|_____________________________|
SEE ALSO
DNSServiceRefDeallocate(3DNS_SD),
DNSServiceResolve(3DNS_SD), attributes(5)
SunOS 5.11 Last change: 20 Aug 2007 2
DNS Service Discovery Library FunctionsDNSServiceBrowse(3DNS_SD)
SunOS 5.11 Last change: 20 Aug 2007 3