static int _Command_DefaultInterfaceSet (_CMDIO_DEV_NODE* pCmdIO, int argc, char** argv) { TCPIP_NET_HANDLE netH; const void* cmdIoParam = pCmdIO->cmdIoParam; if (argc != 2) { (*pCmdIO->pCmdApi->msg)(cmdIoParam, "Usage: defnet <interface>\r\n"); (*pCmdIO->pCmdApi->msg)(cmdIoParam, "Ex: defnet PIC32INT\r\n"); return false; } netH = TCPIP_STACK_NetHandleGet(argv[1]); if (netH == 0) { (*pCmdIO->pCmdApi->msg)(cmdIoParam, "Unknown interface specified \r\n"); return false; } if(TCPIP_STACK_NetDefaultSet(netH)) { (*pCmdIO->pCmdApi->msg)(cmdIoParam, "Default interface set successful\r\n"); } else { (*pCmdIO->pCmdApi->msg)(cmdIoParam, "Operation not accepted\r\n"); } return true; }
static void PingCallbackFunction(TCPIP_NET_HANDLE hNetIf, IPV4_ADDR* remoteIP, void* data) { // process request from interface hNetIf and remoteIP address // uint16_t* pReply = (uint16_t*)data; // uint16_t myRecvId = *pReply; // uint16_t myRecvSequenceNumber = *(pReply + 1); if(!ping_probe_reply_received) { // check that the sequence number, ID and IP address match, etc. ping_probe_reply_received = true; // set as default TCPIP_STACK_NetDefaultSet(hNetIf); } }