Important: The information in this document is obsolete and should not be used for new development.
This section describes the constants and data types used by the DNSServiceDiscovery API:
These flags and data types are used by most DNSServiceDiscovery functions and callbacks.
/* Opaque internal data type */ typedef struct _dns_service_discovery_t * dns_service_discovery_ref; /* possible reply flags values */ enum { kDNSServiceDiscoveryNoFlags= 0, kDNSServiceDiscoveryMoreRepliesImmediately= 1 << 0, }; // If the kDNSServiceDiscoveryMoreRepliesImmediately flag is set, // do not update your UI /* possible error code values */ typedef enum { kDNSServiceDiscoveryWaiting = 1, kDNSServiceDiscoveryNoError = 0, // mDNS Error codes are in the range // FFFE FF00 (-65792) to FFFE FFFF (-65537) kDNSServiceDiscoveryUnknownErr = -65537, // 0xFFFE FFFF kDNSServiceDiscoveryNoSuchNameErr = -65538, kDNSServiceDiscoveryNoMemoryErr = -65539, kDNSServiceDiscoveryBadParamErr = -65540, kDNSServiceDiscoveryBadReferenceErr = -65541, kDNSServiceDiscoveryBadStateErr = -65542, kDNSServiceDiscoveryBadFlagsErr = -65543, kDNSServiceDiscoveryUnsupportedErr = -65544, kDNSServiceDiscoveryNotInitializedErr = -65545, kDNSServiceDiscoveryNoCache = -65546, kDNSServiceDiscoveryAlreadyRegistered = -65547, kDNSServiceDiscoveryNameConflict = -65548, kDNSServiceDiscoveryInvalid = -65549, kDNSServiceDiscoveryMemFree = -65792 // 0xFFFE FF00 } DNSServiceRegistrationReplyErrorType;
These types are used for DNS registration and update.
typedef void (*DNSServiceRegistrationReply) ( DNSServiceRegistrationReplyErrorType errorCode, void *context ); typedef uint32_t DNSRecordReference;
These types and flags are used when resolving the IP address for a service.
typedef void (*DNSServiceResolverReply) ( struct sockaddr *interface, // Host interface IP addr--needed if multiple LAN connections struct sockaddr *address, // Service link-local IP address, including port number const char *txtRecord, DNSServiceDiscoveryReplyFlags flags, void *context );
These constants are used when determining the domain(s) in which you should search for or register a service
typedef enum { DNSServiceDomainEnumerationReplyAddDomain, // Domain found DNSServiceDomainEnumerationReplyAddDomainDefault, // Domain found (and should be selected by default) DNSServiceDomainEnumerationReplyRemoveDomain, // Domain has been removed from network } DNSServiceDomainEnumerationReplyResultType; typedef enum { DNSServiceDiscoverReplyFlagsFinished, DNSServiceDiscoverReplyFlagsMoreComing, } DNSServiceDiscoveryReplyFlags; typedef void (*DNSServiceDomainEnumerationReply) ( DNSServiceDomainEnumerationReplyResultType resultType, const char *replyDomain, DNSServiceDiscoveryReplyFlags flags, void *context );
These types and constants are used when browsing for services
typedef enum { DNSServiceBrowserReplyAddInstance, // Instance of service found DNSServiceBrowserReplyRemoveInstance // Instance has been removed from network } DNSServiceBrowserReplyResultType; typedef void (*DNSServiceBrowserReply) ( DNSServiceBrowserReplyResultType resultType, // Add or remove const char *replyName, const char *replyType, const char *replyDomain, DNSServiceDiscoveryReplyFlags flags, void *context );
© 2001, 2005 Apple Computer, Inc. All Rights Reserved. (Last updated: 2005-04-29)