bool TCPIP_Commands_Initialize(const TCPIP_STACK_MODULE_CTRL* const stackCtrl, const TCPIPCMD_MODULE_CONFIG* const pCmdInit) { if(stackCtrl->stackAction == TCPIP_STACK_ACTION_IF_UP) { // interface restart return true; } // stack init initialNetIfs = stackCtrl->nIfs; initialHeapH = stackCtrl->memH; // create command group if (!_SYS_COMMAND_ADDGRP(tcpipCmdTbl, sizeof(tcpipCmdTbl)/sizeof(*tcpipCmdTbl), "tcpip", ": stack commands")) { SYS_ERROR(SYS_ERROR_ERROR, "Failed to create TCPIP Commands\r\n"); return false; } #if defined(TCPIP_STACK_COMMANDS_STORAGE_ENABLE) // get storage for interfaces configuration // cannot be taken from the TCPIP-HEAP because we need it persistent after // TCPIP_STACK_Deinit() is called! if(pCmdStgDcpt == 0 && pCmdNetConf == 0) { pCmdStgDcpt = (TCPIP_COMMAND_STG_DCPT*)SystemCalloc(initialNetIfs, sizeof(*pCmdStgDcpt)); pCmdNetConf = (TCPIP_NETWORK_CONFIG*)SystemCalloc(initialNetIfs, sizeof(*pCmdNetConf)); if(pCmdStgDcpt == 0 || pCmdNetConf == 0) { // failure is not considered to be catastrophic SYS_ERROR(SYS_ERROR_WARN, "Failed to create TCPIP Commands Storage/Config\r\n"); } } #endif // defined(TCPIP_STACK_COMMANDS_STORAGE_ENABLE) #if defined(TCPIP_IF_MRF24W) && defined(TCPIP_STACK_COMMANDS_WIFI_ENABLE) WIFICommandsInit(); #endif #if defined(TCPIP_STACK_USE_ICMP_CLIENT) hIcmp = 0; icmptickH = _TCPIPStackAsyncHandlerRegister(TCPIPCommandsTask, 0, 0); if(icmptickH == 0) { // timer is not active now SYS_ERROR(SYS_ERROR_ERROR, "ICMP tick registration failed\r\n"); return false; } // else the timer will start when we send a query icmpCmdStat = TCPIP_PING_CMD_IDLE; icmpAckRecv = 0; #endif // defined(TCPIP_STACK_USE_ICMP_CLIENT) return true; }
bool TCPIPCommandsInit(const TCPIP_STACK_MODULE_CTRL* const stackCtrl, const TCPIPCMD_MODULE_CONFIG* const pCmdInit) { if(stackCtrl->stackAction == TCPIP_STACK_ACTION_IF_UP) { // interface restart return true; } // stack init initialNetIfs = stackCtrl->nIfs; initialHeapH = stackCtrl->memH; // create command group if (!_SYS_COMMAND_ADDGRP(tcpipCmdTbl, sizeof(tcpipCmdTbl)/sizeof(*tcpipCmdTbl), "tcpip", ": stack commands")) { SYS_ERROR(SYS_ERROR_ERROR, "Failed to create TCPIP Commands\r\n"); return false; } #if defined(TCPIP_STACK_COMMANDS_STORAGE_ENABLE) // get storage for interfaces configuration // cannot be taken from the TCPIP-HEAP because we need it persistent after // TCPIP_STACK_Deinit() is called! if(pCmdStgDcpt == 0 && pCmdNetConf == 0) { pCmdStgDcpt = (TCPIP_COMMAND_STG_DCPT*)SystemCalloc(initialNetIfs, sizeof(*pCmdStgDcpt)); pCmdNetConf = (TCPIP_NETWORK_CONFIG*)SystemCalloc(initialNetIfs, sizeof(*pCmdNetConf)); if(pCmdStgDcpt == 0 || pCmdNetConf == 0) { // failure is not considered to be catastrophic SYS_ERROR(SYS_ERROR_WARN, "Failed to create TCPIP Commands Storage/Config\r\n"); } } #endif // defined(TCPIP_STACK_COMMANDS_STORAGE_ENABLE) #if defined(TCPIP_IF_MRF24W) && defined(TCPIP_STACK_COMMANDS_WIFI_ENABLE) WIFICommandsInit(); #endif return true; }