// Done once on startup, and then again every time our address changes mDNSlocal OSStatus mDNSResponderTestSetup(mDNS *m) { char buffer[MAX_ESCAPED_DOMAIN_NAME]; mDNSv4Addr ip = m->HostInterfaces->ip.ip.v4; ConvertDomainNameToCString(&m->MulticastHostname, buffer); printf("Name %s\n", buffer); printf("IP %d.%d.%d.%d\n", ip.b[0], ip.b[1], ip.b[2], ip.b[3]); printf("\n"); printf("Registering Service Records\n"); // Create example printer discovery records //static ServiceRecordSet p1, p2; RegisterFakeServiceForTesting(m, &p1, "", "One", "_raop._tcp.", "local."); RegisterFakeServiceForTesting(m, &p2, "", "Two", "_raop._tcp.", "local."); return(kOTNoError); }
int main() { OSStatus err; RegisteredService *s; SIOUXSettings.asktosaveonclose = false; SIOUXSettings.userwindowtitle = "\pMulticast DNS Responder"; printf("Multicast DNS Responder\n\n"); printf("This software reports errors using MacsBug breaks,\n"); printf("so if you don't have MacsBug installed your Mac may crash.\n\n"); printf("******************************************************************************\n\n"); err = InitOpenTransport(); if (err) { printf("InitOpenTransport failed %d", err); return(err); } printf("Advertising Services...\n"); #define SRSET 0 #if SRSET==0 RegisterFakeServiceForTesting(&p1, "Web Server One", "_http._tcp.", "local.", "path=/index.html"); RegisterFakeServiceForTesting(&p2, "Web Server Two", "_http._tcp.", "local.", "path=/path.html"); #elif SRSET==1 RegisterFakeServiceForTesting(&p1, "Epson Stylus 900N", "_printer._tcp.", "local.", "rn=lpq1"); RegisterFakeServiceForTesting(&p2, "HP LaserJet", "_printer._tcp.", "local.", "rn=lpq2"); #else RegisterFakeServiceForTesting(&p1, "My Printer", "_printer._tcp.", "local.", "rn=lpq3"); RegisterFakeServiceForTesting(&p2, "My Other Printer", "_printer._tcp.", "local.", "lrn=pq4"); #endif // If AFP Server is running, register a record for it CreateProxyRegistrationForRealService(&afp, "_afpovertcp._tcp.", 548, ""); // If Web Server is running, register a record for it CreateProxyRegistrationForRealService(&http, "_http._tcp.", 80, "path=/index.html"); while (!YieldSomeTime(35)) for (s = services; s; s = s->next) if (s->gotresult) { printf("%s %s %s registered\n", s->namestr, s->typestr, s->domstr); s->gotresult = false; } for (s = services; s; s = s->next) if (s->sdRef) DNSServiceRefDeallocate(s->sdRef); CloseOpenTransport(); return(0); }
// Done once on startup, and then again every time our address changes mDNSlocal OSStatus mDNSResponderTestSetup(mDNS *m) { char buffer[MAX_ESCAPED_DOMAIN_NAME]; mDNSv4Addr ip = m->HostInterfaces->ip.ip.v4; ConvertDomainNameToCString(&m->MulticastHostname, buffer); printf("Name %s\n", buffer); printf("IP %d.%d.%d.%d\n", ip.b[0], ip.b[1], ip.b[2], ip.b[3]); printf("\n"); printf("Registering Service Records\n"); // Create example printer discovery records //static ServiceRecordSet p1, p2; #define SRSET 0 #if SRSET==0 RegisterFakeServiceForTesting(m, &p1, "path=/index.html", "Web Server One", "_http._tcp.", "local."); RegisterFakeServiceForTesting(m, &p2, "path=/path.html", "Web Server Two", "_http._tcp.", "local."); #elif SRSET==1 RegisterFakeServiceForTesting(m, &p1, "rn=lpq1", "Epson Stylus 900N", "_printer._tcp.", "local."); RegisterFakeServiceForTesting(m, &p2, "rn=lpq2", "HP LaserJet", "_printer._tcp.", "local."); #else RegisterFakeServiceForTesting(m, &p1, "rn=lpq3", "My Printer", "_printer._tcp.", "local."); RegisterFakeServiceForTesting(m, &p2, "lrn=pq4", "My Other Printer", "_printer._tcp.", "local."); #endif // If AFP Server is running, register a record for it CreateProxyRegistrationForRealService(m, 548, "", "_afpovertcp._tcp.", &afp); // If Web Server is running, register a record for it CreateProxyRegistrationForRealService(m, 80, "", "_http._tcp.", &http); // And pretend we always have an NJP server running on port 80 too //RegisterService(m, &njp, 80, "NJP/", &m->nicelabel, "_njp._tcp.", "local."); // Advertise that apple.com. is available for browsing mDNS_AdvertiseDomains(m, &browsedomain1, mDNS_DomainTypeBrowse, mDNSInterface_Any, "apple.com."); mDNS_AdvertiseDomains(m, &browsedomain2, mDNS_DomainTypeBrowse, mDNSInterface_Any, "IL 2\\4th Floor.apple.com."); return(kOTNoError); }