📄 app.c
字号:
*/
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 + -