This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
mbed/Net.cpp
- Committer:
- furutani
- Date:
- 2017-02-24
- Revision:
- 115:fa79286d8ea4
- Parent:
- 110:257739f9b31e
File content as of revision 115:fa79286d8ea4:
//////////////////////////////////////////////////////////////////////////////// // Net.h //////////////////////////////////////////////////////////////////////////////// #include "Net.h" #include "NetConfig.h" #include "mbed.h" namespace MiMic { const char* Net::UPNP_ROOT_PATH="upnp"; Net::Net(INetif& i_netif) { NyLPC_cNet_initialize(i_netif.getInterface()); this->_mdns=NULL; this->_upnp=NULL; } Net::~Net() { NyLPC_cNet_finalize(); } void Net::start(NetConfig& i_cfg) { NyLPC_TcNetConfig_t* base_cfg=i_cfg.refBaseInstance(); //DHCP & autoIP request if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_MASK)!=0){ for(;;){ //DHCP if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_DHCP)!=0){ if(NyLPC_cNet_requestAddrDhcp(&(base_cfg->super),3)){ break; } } //AUTOIP if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_AUTOIP)!=0){ if(NyLPC_cNet_requestAddrApipa(&(base_cfg->super),3)){ break; } } } } //start mDNS if((base_cfg->services.flags & NyLPC_TcNetConfig_SERVICE_FLAG_MDNS) !=0){ this->_mdns=(NyLPC_TcMDnsServer_t*)malloc(sizeof(NyLPC_TcMDnsServer_t)); NyLPC_cMDnsServer_initialize(this->_mdns,i_cfg.refMdnsRecord()); } //start UPnP if((base_cfg->services.flags & NyLPC_TcNetConfig_SERVICE_FLAG_UPNP) !=0){ this->_upnp=(NyLPC_TcUPnP_t*)malloc(sizeof(NyLPC_TcUPnP_t)); NyLPC_cUPnP_initialize(this->_upnp,i_cfg.getHttpPort(),UPNP_ROOT_PATH,i_cfg.refUPnPDevDesc()); } NyLPC_cNet_start(&(base_cfg->super)); if(this->_upnp!=NULL){ NyLPC_cUPnP_start(this->_upnp); } } void Net::stop() { NyLPC_cNet_stop(); //stop mDNS if(this->_mdns!=NULL){ NyLPC_cMDnsServer_finalize(this->_mdns); free(this->_mdns); this->_mdns=NULL; } } }