bool Discovery::start(int broadcastPort) { if (m_broadcastPort) return false; // LOG(logDEBUG) << "default bind address set to " << NodeDevice::localAny; m_broadcastPort = broadcastPort; m_updateCounter = 0; auto hwid = getHwAddress(); if (hwid.empty()) { LOG(logERROR) << "Not hardware id available!"; return false; } LOG(logDEBUG4) << "HWID: " << hwid; initBroadcast(broadcastPort); //initMulticast(broadcastPort+1); return true; }
//start method bool com_objective_see_firewall::start(IOService *provider) { //return var bool result = false; //dbg msg IOLog("LULU: in %s\n", __FUNCTION__); //super if(TRUE != super::start(provider)) { //bail goto bail; } //alloc memory tag allocTag = OSMalloc_Tagalloc(BUNDLE_ID, OSMT_DEFAULT); if(NULL == allocTag) { //err msg IOLog("LULU ERROR: OSMalloc_Tagalloc() failed\n"); //bail goto bail; } //alloc // ->rule locks, etc if(true != initRules()) { //err msg IOLog("LULU ERROR: failed to init rules/locks\n"); //bail goto bail; } //init shared data queue sharedDataQueue = IOSharedDataQueue::withCapacity(sizeof(firewallEvent) * (MAX_FIREWALL_EVENTS + DATA_QUEUE_ENTRY_HEADER_SIZE)); if(NULL == sharedDataQueue) { //bail goto bail; } //get memory descriptor sharedMemoryDescriptor = sharedDataQueue->getMemoryDescriptor(); if(NULL == sharedMemoryDescriptor) { //bail goto bail; } //register service // allows clients to connect registerService(); //dbg msg IOLog("LULU: registered service %s\n", LULU_SERVICE_NAME); //set user class setProperty("IOUserClientClass", LULU_USER_CLIENT_CLASS); //init broadcast if(true != initBroadcast()) { //err msg IOLog("LULU ERROR: initBroadcast() failed\n"); //bail goto bail; } //all happy result = true; bail: return result; }