Esempio n. 1
0
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;
}
Esempio n. 2
0
//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;
}