This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
mbed/Net.cpp@109:18f12ac01097, 2014-11-19 (annotated)
- Committer:
- nyatla
- Date:
- Wed Nov 19 14:45:17 2014 +0000
- Revision:
- 109:18f12ac01097
- Parent:
- 108:8dae2a2682e7
- Child:
- 110:257739f9b31e
new MiMicIP API;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nyatla | 3:0a94993be1f6 | 1 | //////////////////////////////////////////////////////////////////////////////// |
nyatla | 3:0a94993be1f6 | 2 | // Net.h |
nyatla | 3:0a94993be1f6 | 3 | //////////////////////////////////////////////////////////////////////////////// |
nyatla | 3:0a94993be1f6 | 4 | #include "Net.h" |
nyatla | 3:0a94993be1f6 | 5 | #include "NetConfig.h" |
nyatla | 37:fc4b4fd6a649 | 6 | #include "mbed.h" |
nyatla | 108:8dae2a2682e7 | 7 | |
nyatla | 3:0a94993be1f6 | 8 | namespace MiMic |
nyatla | 3:0a94993be1f6 | 9 | { |
nyatla | 51:45d42af201c2 | 10 | |
nyatla | 50:35e765380772 | 11 | const char* Net::UPNP_ROOT_PATH="upnp"; |
nyatla | 50:35e765380772 | 12 | |
nyatla | 37:fc4b4fd6a649 | 13 | Net::Net() |
nyatla | 3:0a94993be1f6 | 14 | { |
nyatla | 109:18f12ac01097 | 15 | NyLPC_cNetIf_initialize(); |
nyatla | 37:fc4b4fd6a649 | 16 | this->_mdns=NULL; |
nyatla | 48:00d211aac2ec | 17 | this->_upnp=NULL; |
nyatla | 3:0a94993be1f6 | 18 | } |
nyatla | 3:0a94993be1f6 | 19 | Net::~Net() |
nyatla | 3:0a94993be1f6 | 20 | { |
nyatla | 109:18f12ac01097 | 21 | NyLPC_cNetIf_finalize(); |
nyatla | 3:0a94993be1f6 | 22 | } |
nyatla | 37:fc4b4fd6a649 | 23 | void Net::start(NetConfig& i_cfg) |
nyatla | 37:fc4b4fd6a649 | 24 | { |
nyatla | 48:00d211aac2ec | 25 | NyLPC_TcNetConfig_t* base_cfg=i_cfg.refBaseInstance(); |
nyatla | 37:fc4b4fd6a649 | 26 | //DHCP & autoIP request |
nyatla | 108:8dae2a2682e7 | 27 | if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_MASK)!=0){ |
nyatla | 37:fc4b4fd6a649 | 28 | for(;;){ |
nyatla | 37:fc4b4fd6a649 | 29 | //DHCP |
nyatla | 48:00d211aac2ec | 30 | if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_DHCP)!=0){ |
nyatla | 109:18f12ac01097 | 31 | if(NyLPC_cNetIf_requestAddrDhcp(&(base_cfg->super),3)){ |
nyatla | 37:fc4b4fd6a649 | 32 | break; |
nyatla | 37:fc4b4fd6a649 | 33 | } |
nyatla | 37:fc4b4fd6a649 | 34 | } |
nyatla | 37:fc4b4fd6a649 | 35 | //AUTOIP |
nyatla | 48:00d211aac2ec | 36 | if((base_cfg->tcp_mode & NyLPC_TcNetConfig_IPV4_FLAG_MODE_AUTOIP)!=0){ |
nyatla | 109:18f12ac01097 | 37 | if(NyLPC_cNetIf_requestAddrApipa(&(base_cfg->super),3)){ |
nyatla | 37:fc4b4fd6a649 | 38 | break; |
nyatla | 37:fc4b4fd6a649 | 39 | } |
nyatla | 37:fc4b4fd6a649 | 40 | } |
nyatla | 37:fc4b4fd6a649 | 41 | } |
nyatla | 37:fc4b4fd6a649 | 42 | } |
nyatla | 37:fc4b4fd6a649 | 43 | //start mDNS |
nyatla | 51:45d42af201c2 | 44 | if((base_cfg->services.flags & NyLPC_TcNetConfig_SERVICE_FLAG_MDNS) !=0){ |
nyatla | 37:fc4b4fd6a649 | 45 | this->_mdns=(NyLPC_TcMDnsServer_t*)malloc(sizeof(NyLPC_TcMDnsServer_t)); |
nyatla | 48:00d211aac2ec | 46 | NyLPC_cMDnsServer_initialize(this->_mdns,i_cfg.refMdnsRecord()); |
nyatla | 37:fc4b4fd6a649 | 47 | } |
nyatla | 48:00d211aac2ec | 48 | //start UPnP |
nyatla | 51:45d42af201c2 | 49 | if((base_cfg->services.flags & NyLPC_TcNetConfig_SERVICE_FLAG_UPNP) !=0){ |
nyatla | 48:00d211aac2ec | 50 | this->_upnp=(NyLPC_TcUPnP_t*)malloc(sizeof(NyLPC_TcUPnP_t)); |
nyatla | 50:35e765380772 | 51 | NyLPC_cUPnP_initialize(this->_upnp,i_cfg.getHttpPort(),UPNP_ROOT_PATH,i_cfg.refUPnPDevDesc()); |
nyatla | 48:00d211aac2ec | 52 | |
nyatla | 48:00d211aac2ec | 53 | } |
nyatla | 109:18f12ac01097 | 54 | NyLPC_cNetIf_start(&(base_cfg->super)); |
nyatla | 49:d4334acc3ec3 | 55 | if(this->_upnp!=NULL){ |
nyatla | 49:d4334acc3ec3 | 56 | NyLPC_cUPnP_start(this->_upnp); |
nyatla | 50:35e765380772 | 57 | } |
nyatla | 37:fc4b4fd6a649 | 58 | } |
nyatla | 37:fc4b4fd6a649 | 59 | void Net::stop() |
nyatla | 37:fc4b4fd6a649 | 60 | { |
nyatla | 109:18f12ac01097 | 61 | NyLPC_cNetIf_stop(); |
nyatla | 37:fc4b4fd6a649 | 62 | //stop mDNS |
nyatla | 37:fc4b4fd6a649 | 63 | if(this->_mdns!=NULL){ |
nyatla | 37:fc4b4fd6a649 | 64 | NyLPC_cMDnsServer_finalize(this->_mdns); |
nyatla | 37:fc4b4fd6a649 | 65 | free(this->_mdns); |
nyatla | 37:fc4b4fd6a649 | 66 | this->_mdns=NULL; |
nyatla | 37:fc4b4fd6a649 | 67 | } |
nyatla | 37:fc4b4fd6a649 | 68 | } |
nyatla | 37:fc4b4fd6a649 | 69 | |
nyatla | 109:18f12ac01097 | 70 | } |