⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 app.c

📁 GNU环境下uC/OS-II的移植代码:BSP & OS部分
💻 C
📖 第 1 页 / 共 4 页
字号:
*/

static  void  DHCPc_PrintOptions (CPU_INT08U  *options)
{
    CPU_INT32U  opt;
    CPU_INT32U  optlen;
    CPU_INT32U  vsopt;
    CPU_INT32U  vsoptlen;
    CPU_INT32U  cookie;
    CPU_INT32U  safety;
    CPU_INT32U  i;


                                                                /* If DHCP_STD_MAGIC_COOKIE doesn't exist, then don't   */
                                                                /* process options...                                   */
    Mem_Copy(&cookie, options, 4);
    if (cookie != NET_UTIL_HOST_TO_NET_32(DHCP_STD_MAGIC_COOKIE)) {
        return;
    }
    options += 4;

    safety   = 0;
    while (*options  != 0xFF) {
        if (safety++  > 10000) {
            APP_TRACE_DEBUG(("Aborting, overflow likely.\n"));
            break;
        }
        opt = *options++;
        if (opt == 0) {                                         /* Padding.                                             */
            continue;
        }
        APP_TRACE_DEBUG(("    option %3d: ", opt));
        optlen  =  *options++;
        if (opt == DHCP_OPT_DHCP_MESSAGE_TYPE) {
            APP_TRACE_DEBUG(("DHCP%s", DHCPc_GetOptStr(*options++)));
        }
                                                                /* See Note (1).                                        */
        else if (opt == DHCP_OPT_VENDOR_SPECIFIC_INFORMATION) {
            APP_TRACE_DEBUG(("\n"));
            while(*options != 0xFF) {
                vsopt       = *options++;
                vsoptlen    = *options++;
                APP_TRACE_DEBUG(("       vso %3d: ",vsopt));
                APP_TRACE_DEBUG(("0x"));
                for(i = 0; i < vsoptlen; i++) {
                    APP_TRACE_DEBUG(("%02x", *options++));
                }
                if (*options != 0xFF) {
                    APP_TRACE_DEBUG(("\n"));
                }
            }
            options++;                                          /* Skip over the 0xff within this option subset.        */
        } else if ((opt <  DHCP_OPT_HOST_NAME)            ||
                   (opt == DHCP_OPT_BROADCAST_ADDRESS)    ||
                   (opt == DHCP_OPT_REQUESTED_IP_ADDRESS) ||
                   (opt == DHCP_OPT_SERVER_IDENTIFIER)    ||
                   (opt == DHCP_OPT_NETWORK_INFORMATION_SERVER)) {
            for (i = 0; i < optlen; i++) {
                APP_TRACE_DEBUG(("%d ", *options++));
            }
        } else if ((opt == DHCP_OPT_NETWORK_INFORMATION_SERVICE_DOMAIN) ||
                   (opt == DHCP_OPT_VENDOR_CLASS_IDENTIFIER)) {
            for (i = 0; i < optlen; i++) {
                APP_TRACE_DEBUG(("%c", *options++));
            }
        } else if (opt == DHCP_OPT_CLIENT_IDENTIFIER) {
            APP_TRACE_DEBUG(("%d 0x", *options++));
            for (i = 1; i < optlen; i++) {
                APP_TRACE_DEBUG(("%02x",*options++));
            }
        } else {
            APP_TRACE_DEBUG(("0x"));
            for (i = 0; i < optlen; i++) {
                APP_TRACE_DEBUG(("%02x", *options++));
            }
        }
        APP_TRACE_DEBUG(("\n"));
    }
}


/*
*********************************************************************************************************
*                                              DHCPc_GetOperStr()
*
* Description : DHCP packet printing function.
*********************************************************************************************************
*/

static  CPU_CHAR  *DHCPc_GetOperStr (CPU_INT32U  op)
{
    switch (op) {
        case DHCP_OP_REQUEST:
             return ("REQUEST");

        case DHCP_OP_REPLY:
             return ("REPLY");

        default:
             return ("???");
    }
}


/*
*********************************************************************************************************
*                                              DHCPc_GetOptStr()
*
* Description : DHCP packet printing function.
*********************************************************************************************************
*/

static  CPU_CHAR  *DHCPc_GetOptStr (CPU_INT32U  op)
{
    switch (op) {
        case DHCP_MSG_DISCOVER:
             return ("DISCOVER");

        case DHCP_MSG_OFFER:
             return ("OFFER");

        case DHCP_MSG_REQUEST:
             return ("REQUEST");

        case DHCP_MSG_DECLINE:
             return ("DECLINE");

        case DHCP_MSG_ACK:
             return ("ACK");

        case DHCP_MSG_NACK:
             return ("NACK");

        case DHCP_MSG_RELEASE:
             return ("RELEASE");

        default:
             return ("???");
    }
}
#endif  /* APP_DHCPc_EN */


#if APP_FTPs_EN
/*
*********************************************************************************************************
*                                     FTPs AUTHENTICATION CALLBACK
*********************************************************************************************************
*/

CPU_BOOLEAN  FTPs_AuthUser (FTPs_SESSION_STRUCT  *ftp_session)
{
                                                                /* This authentication is trivial, accepts              */
                                                                /* everyone sets BasePath and RelPath to ROOT           */
                                                                /* allowing access to the whole filesystem.  This       */
                                                                /* MUST be modified according to your security          */
                                                                /* policies.                                            */

                                                                /* Initialize BasePath to ROOT.                         */
    Str_FmtPrint((char *)ftp_session->BasePath,
        sizeof(ftp_session->BasePath),
       "%c",
        FTPs_PATH_SEP_CHAR);

                                                                /* Initialize RelPath to ROOT.                          */
    Str_FmtPrint((char *)ftp_session->RelPath,
        sizeof(ftp_session->RelPath),
       "%c",
        FTPs_PATH_SEP_CHAR);

    return (DEF_OK);
}
#endif  /* APP_FTPs_EN */


#if APP_HTTPs_EN
/*
*********************************************************************************************************
*                                          HTTPs VALUE REQUEST
*********************************************************************************************************
*/

CPU_BOOLEAN  HTTPs_ValReq (CPU_CHAR     *Variable,
                           CPU_CHAR    **Val)
{
    static  CPU_CHAR  buf[20];
            CPU_FP32  ver;
            CPU_FP32  time;
            NET_ERR   err;


    Str_Copy(&buf[0], "%%%%%%%%");
   *Val = &buf[0];

                                                                        /* ----------------- OS VALS ------------------ */
    if (       Str_Cmp(Variable, "OS_VERSION"            ) == 0) {
        ver = (CPU_FP32)OS_VERSION / 100;
        Str_FmtNbr_32(ver,                                       2,  2, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "OS_NBR_TASKS"          ) == 0) {
        Str_FmtNbr_32(OSTaskCtr,                                 2,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "OS_CPU_USAGE"          ) == 0) {
        Str_FmtNbr_32(OSCPUUsage,                                3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "OS_CPU_USAGE_MAX"      ) == 0) {
        Str_FmtNbr_32(OSCPUUsageMax,                             3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "OS_TIME"               ) == 0) {
        time = (CPU_FP32)OSTime / DEF_TIME_NBR_mS_PER_SEC;
        Str_FmtNbr_32(time,                                      7,  3, DEF_NO, DEF_YES, &buf[0]);

                                                                        /* ----------------- NET VALS ----------------- */
    } else if (Str_Cmp(Variable, "NET_VERSION"           ) == 0) {
        ver = (CPU_FP32)NET_VERSION / 100;
        Str_FmtNbr_32(ver,                                       2,  2, DEF_NO, DEF_YES, &buf[0]);

                                                                        /* ---------------- ADDR VALS ----------------- */
    } else if (Str_Cmp(Variable, "MAC"                   ) == 0) {
        NetASCII_MAC_to_Str(&NetIF_MAC_Addr[0], &buf[0], DEF_NO, &err);

    } else if (Str_Cmp(Variable, "IP"                    ) == 0) {
        NetASCII_IP_to_Str(App_IP_Addr,         &buf[0], DEF_NO, &err);

    } else if (Str_Cmp(Variable, "MASK"                  ) == 0) {
        NetASCII_IP_to_Str(App_IP_Mask,         &buf[0], DEF_NO, &err);

    } else if (Str_Cmp(Variable, "GW"                    ) == 0) {
        NetASCII_IP_to_Str(App_IP_DfltGateway,  &buf[0], DEF_NO, &err);

                                                                        /* ---------------- CONN VALS ----------------- */
    } else if (Str_Cmp(Variable, "NBR_SOCK"              ) == 0) {
        Str_FmtNbr_32(NET_SOCK_CFG_NBR_SOCK,                     3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_SOCK_AVAIL"        ) == 0) {
        Str_FmtNbr_32(NetSock_PoolStat.EntriesAvail,             3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_SOCK_USED"         ) == 0) {
        Str_FmtNbr_32(NetSock_PoolStat.EntriesUsed,              3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_SOCK_USED_MAX"     ) == 0) {
        Str_FmtNbr_32(NetSock_PoolStat.EntriesUsedMax,           3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_SOCK_USED_TOT"     ) == 0) {
        Str_FmtNbr_32(NetSock_PoolStat.EntriesAllocatedCtr,      5,  0, DEF_NO, DEF_YES, &buf[0]);


    } else if (Str_Cmp(Variable, "NBR_TCP_CONN"          ) == 0) {
        Str_FmtNbr_32(NET_TCP_CFG_NBR_CONN,                      3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_TCP_CONN_AVAIL"    ) == 0) {
        Str_FmtNbr_32(NetTCP_ConnPoolStat.EntriesAvail,          3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_TCP_CONN_USED"     ) == 0) {
        Str_FmtNbr_32(NetTCP_ConnPoolStat.EntriesUsed,           3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_TCP_CONN_USED_MAX" ) == 0) {
        Str_FmtNbr_32(NetTCP_ConnPoolStat.EntriesUsedMax,        3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_TCP_CONN_USED_TOT" ) == 0) {
        Str_FmtNbr_32(NetTCP_ConnPoolStat.EntriesAllocatedCtr,   5,  0, DEF_NO, DEF_YES, &buf[0]);


    } else if (Str_Cmp(Variable, "NBR_CONN"              ) == 0) {
        Str_FmtNbr_32(NET_CONN_CFG_NBR_CONN,                     3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_CONN_AVAIL"        ) == 0) {
        Str_FmtNbr_32(NetConn_PoolStat.EntriesAvail,             3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_CONN_USED"         ) == 0) {
        Str_FmtNbr_32(NetConn_PoolStat.EntriesUsed,              3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_CONN_USED_MAX"     ) == 0) {
        Str_FmtNbr_32(NetConn_PoolStat.EntriesUsedMax,           3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_CONN_USED_TOT"     ) == 0) {
        Str_FmtNbr_32(NetConn_PoolStat.EntriesAllocatedCtr,      5,  0, DEF_NO, DEF_YES, &buf[0]);


                                                                        /* ---------------- BUF VALS ------------------ */
    } else if (Str_Cmp(Variable, "NBR_BUF_SMALL"         ) == 0) {
        Str_FmtNbr_32(NET_BUF_CFG_NBR_SMALL,                     3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_BUF_SMALL_AVAIL"   ) == 0) {
        Str_FmtNbr_32(NetBuf_SmallPoolStat.EntriesAvail,         3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_BUF_SMALL_USED"    ) == 0) {
        Str_FmtNbr_32(NetBuf_SmallPoolStat.EntriesUsed,          3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_BUF_SMALL_USED_MAX") == 0) {
        Str_FmtNbr_32(NetBuf_SmallPoolStat.EntriesUsedMax,       3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_BUF_SMALL_USED_TOT") == 0) {
        Str_FmtNbr_32(NetBuf_SmallPoolStat.EntriesAllocatedCtr,  6,  0, DEF_NO, DEF_YES, &buf[0]);


    } else if (Str_Cmp(Variable, "NBR_BUF_LARGE"         ) == 0) {
        Str_FmtNbr_32(NET_BUF_CFG_NBR_LARGE,                     3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_BUF_LARGE_AVAIL"   ) == 0) {
        Str_FmtNbr_32(NetBuf_LargePoolStat.EntriesAvail,         3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_BUF_LARGE_USED"    ) == 0) {
        Str_FmtNbr_32(NetBuf_LargePoolStat.EntriesUsed,          3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_BUF_LARGE_USED_MAX") == 0) {
        Str_FmtNbr_32(NetBuf_LargePoolStat.EntriesUsedMax,       3,  0, DEF_NO, DEF_YES, &buf[0]);

    } else if (Str_Cmp(Variable, "NBR_BUF_LARGE_USED_TOT") == 0) {
        Str_FmtNbr_32(NetBuf_LargePoolStat.EntriesAllocatedCtr,  6,  0, DEF_NO, DEF_YES, &buf[0]);

    }

    HTTPs_TRACE_INFO(("HTTP-s: VALUE REQUESTED: %s = %s.\n", Variable, *Val));

    return (DEF_OK);
}


/*
*********************************************************************************************************
*                                         HTTPs VALUE RECEIVED
*********************************************************************************************************
*/

CPU_BOOLEAN  HTTPs_ValRx (CPU_CHAR  *Variable,
                          CPU_CHAR  *Val)
{
    HTTPs_TRACE_INFO(("HTTP-s: VALUE RECEIVED: %s = %s.\n", Variable, Val));
    return (DEF_OK);
}
#endif  /* APP_HTTPs_EN */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -