static void foobar_deregister(ServiceRecordSet *srs) { mStatus status; status = mDNS_DeregisterService(&mDNSStorage, srs); assert(status == mStatus_NoError); }
int main() { mStatus err; Boolean DoneSetup = false; 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"); err = InitOpenTransport(); if (err) { debugf("InitOpenTransport failed %d", err); return(err); } err = mDNS_Init(&m, &p, mDNS_Init_NoCache, mDNS_Init_ZeroCacheSize, mDNS_Init_AdvertiseLocalAddresses, mDNS_Init_NoInitCallback, mDNS_Init_NoInitCallbackContext); if (err) return(err); while (!YieldSomeTime(35)) { #if MDNS_ONLYSYSTEMTASK // For debugging, use "#define MDNS_ONLYSYSTEMTASK 1" and call mDNSPlatformIdle() periodically. // For shipping code, don't define MDNS_ONLYSYSTEMTASK, and you don't need to call mDNSPlatformIdle() extern void mDNSPlatformIdle(mDNS *const m); mDNSPlatformIdle(&m); // Only needed for debugging version #endif if (m.mDNSPlatformStatus == mStatus_NoError && !DoneSetup) { DoneSetup = true; printf("\nListening for mDNS queries...\n"); mDNSResponderTestSetup(&m); } } if (p1.RR_SRV.resrec.RecordType ) mDNS_DeregisterService(&m, &p1); if (p2.RR_SRV.resrec.RecordType ) mDNS_DeregisterService(&m, &p2); if (afp.RR_SRV.resrec.RecordType ) mDNS_DeregisterService(&m, &afp); if (http.RR_SRV.resrec.RecordType) mDNS_DeregisterService(&m, &http); if (njp.RR_SRV.resrec.RecordType ) mDNS_DeregisterService(&m, &njp); mDNS_Close(&m); return(0); }
static void DNSServiceRegisterDispose(mDNS_DirectOP *op) { mDNS_DirectOP_Register *x = (mDNS_DirectOP_Register*)op; x->autorename = mDNSfalse; // If mDNS_DeregisterService() returns mStatus_NoError, that means that the service was found in the list, // is sending its goodbye packet, and we'll get an mStatus_MemFree message when we can free the memory. // If mDNS_DeregisterService() returns an error, it means that the service had already been removed from // the list, so we should go ahead and free the memory right now if (mDNS_DeregisterService(&mDNSStorage, &x->s) != mStatus_NoError) FreeDNSServiceRegistration(x); }
static void DeregisterOurServices(void) { PosixService *thisServ; int thisServID; while (gServiceList != NULL) { thisServ = gServiceList; gServiceList = thisServ->next; thisServID = thisServ->serviceID; mDNS_DeregisterService(&mDNSStorage, &thisServ->coreServ); DPRINTF(E_DBG,L_REND, "Deregistered service %d\n", thisServ->serviceID); } }
static void DeregisterOurServices(void) { PosixService *thisServ; int thisServID; while (gServiceList != NULL) { thisServ = gServiceList; gServiceList = thisServ->next; thisServID = thisServ->serviceID; mDNS_DeregisterService(&mDNSStorage, &thisServ->coreServ); if (gMDNSPlatformPosixVerboseLevel > 0) { fprintf(stderr, "%s: Deregistered service %d\n", gProgramName, thisServ->serviceID); } } }
int main() { mStatus err; Boolean DoneSetup = false; mDNSs32 nextAvail, nextBusy; 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"); err = InitOpenTransport(); if (err) { debugf("InitOpenTransport failed %d", err); return(err); } err = mDNS_Init(&m, &p, mDNS_Init_NoCache, mDNS_Init_ZeroCacheSize, mDNS_Init_AdvertiseLocalAddresses, mDNS_Init_NoInitCallback, mDNS_Init_NoInitCallbackContext); if (err) return(err); while (!YieldSomeTime(35)) { #if MDNS_ONLYSYSTEMTASK // For debugging, use "#define MDNS_ONLYSYSTEMTASK 1" and call mDNSPlatformIdle() periodically. // For shipping code, don't define MDNS_ONLYSYSTEMTASK, and you don't need to call mDNSPlatformIdle() extern void mDNSPlatformIdle(mDNS *const m); mDNSPlatformIdle(&m); // Only needed for debugging version #endif if (m.mDNSPlatformStatus == mStatus_NoError && !DoneSetup) { DoneSetup = true; printf("\nListening for mDNS queries...\n"); mDNSResponderTestSetup(&m); mDNSResponderSetAvail(&m, &availRec1, &p1); availRec2Active = false; nextAvail = mDNS_TimeNow(&m) + mDNSPlatformOneSecond * 10; nextBusy = mDNS_TimeNow(&m) + mDNSPlatformOneSecond * 15; } if (DoneSetup) { // We check availRec2.RecordType because we don't want to re-register this record // if the previous mDNS_Deregister() has not yet completed if (mDNS_TimeNow(&m) - nextAvail > 0 && !availRec2Active) { printf("Setting Two now available\n"); availRec2Active = true; mDNSResponderSetAvail(&m, &availRec2, &p2); nextAvail = nextBusy + mDNSPlatformOneSecond * 10; } else if (mDNS_TimeNow(&m) - nextBusy > 0) { printf("Setting Two now busy\n"); mDNS_Deregister(&m, &availRec2); nextBusy = nextAvail + mDNSPlatformOneSecond * 5; } } } if (p1.RR_SRV.resrec.RecordType) mDNS_DeregisterService(&m, &p1); if (p2.RR_SRV.resrec.RecordType) mDNS_DeregisterService(&m, &p2); if (availRec1.resrec.RecordType) mDNS_Deregister(&m, &availRec1); if (availRec2Active) mDNS_Deregister(&m, &availRec2); mDNS_Close(&m); return(0); }