DNSSERVICECREATECONNECTION(3DNS_SD)DNSSERVICECREATECONNECTION(3DNS_SD)NAME
DNSServiceCreateConnection, DNSServiceRegisterRecord, DNSServiceAd‐
dRecord, DNSServiceUpdateRecord, DNSServiceRemoveRecord - registering
multiple records
SYNOPSIS
cc [ flag ... ] file ... -ldns_sd [ library ... ]
#include <dns_sd.h>
DNSServiceErrorType DNSServiceCreateConnection(DNSServiceRef *sdRef);
DNSServiceErrorType 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,
DNSServiceServiceRegisterRecordReply callBack,
void *context);
typedef void(*DNSServiceRegisterRecordReply)(DNSServiceRef sdRef,
DNSServiceRecordRef RecordRef, DNSServiceFlags flags,
DNSServiceErrorType errorCode, void *context);
DNSServiceErrorType DNSServiceAddRecord(DNSServiceRef sdRef,
DNSRecordRef *RecordRef, DNSServiceFlags flags,
uint16_t rrtype, uint16_t rdlen, const void *rdata,
uint32_t ttl);
DNSServiceErrorType DNSServiceUpdateRecord(DNSServiceRef sdRef,
DNSRecordRef RecordRef, DNSServiceFlags flags,
uint16_t rdlen, const void *rdata,
uint32_t ttl);
DNSServiceErrorType DNSServiceRemoveRecord(DNSServiceRef sdRef,
DNSRecordRef RecordRef, DNSServiceFlags flags);
DESCRIPTION
The DNSServiceCreateConnection() function allows the creation of a con‐
nection to the mDNS daemon in order to register multiple individual
records.
The DNSServiceRegisterRecord() function uses the connection created by
DNSServiceCreateConnection() to register a record. Name conflicts that
occur from this function should be handled by the client in the call‐
back.
The DNSServiceAddRecord() call adds a DNS record to a registered ser‐
vice. The name of the record is the same as registered service name.
The RecordRef argument to DNSServiceAddRecord() points to an uninitial‐
ized DNSRecordRef. After successful completion of DNSServiceAd‐
dRecord(), the DNS record can be updated or deregistered by passing the
DNSRecordRef initialized by DNSServiceAddRecord() to DNSServiceUp‐
dateRecord() or to DNSServiceRemoveRecord().
The DNSServiceUpdateRecords() call updates the DNS record of the regis‐
tered service. The DNS record must be the primary resource record reg‐
istered using DNSServiceRegister() or a record added to a registered
service using DNSServiceAddRecord() or an individual record added via
DNSServiceRegisterRecord().
The DNSServiceRemoveRecord() call removes a record that was added using
DNSServiceAddRecord() or DNSServiceRegisterRecord().
The sdRef argument points to DNSServiceRef initialized from a call to
DNSServiceRegister(). If the sdRef argument is passed to DNSSer‐
viceRefDeallocate() and the service is deregistered DNS records added
via DNSServiceAddRecord() are invalidated and cannot be further used.
The flags argument is currently ignored and reserved for future use.
The rrtype parameter value indicates the type of the DNS record. Suit‐
able values for the rrtype parameter are defined in <dns_sd.h>:
kDNSServiceType_TXT, for example. The rdata argument points to the raw
rdata to be contained in the resource record. The ttl value indicates
the time to live of the resource record in seconds. A ttl value of 0
should be passed to use a default value.
RETURN VALUES
The DNSServiceCreateConnection function returns kDNSServiceErr_NoError
on success. Otherwise, an error code defined in <dns_sd.h> is returned
to indicate the specific failure that occurred.
ATTRIBUTES
See attributes(5) for description of the following attributes:
┌────────────────────┬─────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├────────────────────┼─────────────────┤
│Interface Stability │ Committed │
├────────────────────┼─────────────────┤
│MT-Level │ Safe │
└────────────────────┴─────────────────┘
SEE ALSODNSServiceRefDeallocate(3DNS_SD), DNSServiceRegister(3DNS_SD),
attributes(5)
Aug 20, 20DNSSERVICECREATECONNECTION(3DNS_SD)