This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
mbed/Net.cpp
- Committer:
- nyatla
- Date:
- 2013-08-09
- Revision:
- 51:45d42af201c2
- Parent:
- 50:35e765380772
- Child:
- 65:38049208ea29
- Child:
- 66:ee7866efe5e6
- Child:
- 68:f7def7eb5504
File content as of revision 51:45d42af201c2:
#pragma once //////////////////////////////////////////////////////////////////////////////// // Net.h //////////////////////////////////////////////////////////////////////////////// #include "Net.h" #include "NetConfig.h" #include "mbed.h" namespace MiMic { const char* Net::UPNP_ROOT_PATH="upnp"; Net::Net() { NyLPC_cNet_initialize(&(this->_inst)); this->_mdns=NULL; this->_upnp=NULL; } Net::~Net() { NyLPC_cNet_finalize(&(this->_inst)); } 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(&(this->_inst),&(base_cfg->super),3)){ break; } } //AUTOIP if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_AUTOIP)!=0){ NyLPC_TcApipa_t apipa; NyLPC_cApipa_initialize(&apipa); if(NyLPC_cApipa_requestAddr(&apipa,&(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(&(this->_inst),base_cfg); if(this->_upnp!=NULL){ NyLPC_cUPnP_start(this->_upnp); } } void Net::stop() { NyLPC_cNet_stop(&(this->_inst)); //stop mDNS if(this->_mdns!=NULL){ NyLPC_cMDnsServer_finalize(this->_mdns); free(this->_mdns); this->_mdns=NULL; } } }