Exemplo n.º 1
0
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);
    }
}