int NDInstanceBase::Open(int session_size ) { ND_TRACE_FUNC() ; size_t size = session_size ; if (pListen){ Close(1) ; } //create listener pListen = ConstructListener() ; if(!pListen) { return -1 ; } if(-1==pListen->Create(m_config.l_cfg.listen_name,m_config.l_cfg.max_connect, size) ) { DestructListener() ; return -1 ; } OnListenerCreate() ; pListen->SetAccept(1) ; int ret = pListen->Open(m_config.l_cfg.port,m_config.l_cfg.thread_pool_num) ; if (ret != 0) { return -1 ; } //set listen config if (m_config.l_cfg.connected_tmout){ nd_set_connection_timeout(pListen->GetHandle(),m_config.l_cfg.connected_tmout) ; } if (m_config.l_cfg.empty_close_tmout){ pListen->SetEmptyConnTimeout(m_config.l_cfg.empty_close_tmout) ; } if (m_config.l_cfg.closed_unknown){ nd_net_set_unregmsg_handler(pListen->GetHandle(),1) ; } if (m_config.l_cfg.cloase_unauthorize){ nd_net_set_unauthorize_handler(pListen->GetHandle(),1) ; } pListen->m_inst = this ; OnInitilize() ; pListen->SetAccept(0) ; return ret; }
// --------------------------------------------------------------------------- // From class MDunLocalMediaPlugin. // Gets called when server changes a plugin's state // --------------------------------------------------------------------------- // TInt CDunIrPlugin::NotifyServerStateChange( TDunPluginState aPluginState ) { FTRACE(FPrint(_L("CDunIrPlugin::NotifyServerStateChange()"))); TInt retTemp; switch ( aPluginState ) { case EDunStateTryListen: if ( PluginState() != EDunStateLoaded ) { FTRACE(FPrint(_L("CDunIrPlugin::NotifyServerStateChange() (not ready) complete"))); return KErrNotReady; } // Change to listening mode retTemp = ConstructListener(); if ( retTemp != KErrNone ) { FTRACE(FPrint(_L("CDunIrPlugin::NotifyServerStateChange() (ERROR) complete (%d)"), retTemp)); return retTemp; } break; case EDunStateTryUninitialize: if ( PluginState() == EDunStateUninitialized ) { FTRACE(FPrint(_L("CDunIrPlugin::NotifyServerStateChange() (not ready) complete"))); return KErrNotReady; } // Uninitialize retTemp = Uninitialize(); if ( retTemp != KErrNone ) { FTRACE(FPrint(_L("CDunIrPlugin::NotifyServerStateChange() (ERROR) complete (%d)"), retTemp)); return retTemp; } break; default: FTRACE(FPrint(_L("CDunIrPlugin::NotifyServerStateChange() (unknown state) complete"))); return KErrNotSupported; } FTRACE(FPrint(_L("CDunIrPlugin::NotifyServerStateChange() complete"))); return KErrNone; }