📄 cli_webif.c
字号:
return G_FAILURE;
}
/* 重置映射表 */
ulRet = CLI_LogMapReset();
if( G_SUCCESS != ulRet )
{
MT_ERRLOG(0);
return G_FAILURE;
}
pstMapCtrl = &m_astLogIndexMapCtrl[ucOprLevel];
*pulLogNum = pstMapCtrl->usMapCount;
return G_SUCCESS;
}
/*-----------------------------------------------------------------------------
函数名称 : CLI_WebGetLogNextIndex();
功能 : 获取指定用户权限级别的下一个(时间靠后)日志映射表的索引
输入参数 : ucOprLevel, 操作用户的权限级别;
ulCurMapIndex, 映射表的当前索引;
输出参数 : pulNextMapIndex, 相对于ulCurIndex的下一个映射表的索引;
返回值 : G_SUCCESS, 成功;
其他, 失败.
函数调用说明:
典型使用示例:
-----------------------------------------------------------------------------*/
_U32 CLI_WebGetLogNextIndex( _U8 ucOprLevel, _U32 ulCurMapIndex, _U32* pulNextMapIndex )
{
_U16 usCurMapIndex, usNextMapIndex;
ST_LOG_INDEX_MAP_CTRL *pstMapCtrl;
/* WIN32调试版本, 做一下检查 */
#if (EOS_OS_TYPE == EOS_WIN32)
DBG_ASSERT( CLI_LogTableCheck() == G_SUCCESS );
DBG_ASSERT( G_SUCCESS == CLI_LogMapCheck() );
#endif
/* 入口指针的合法性检查 */
if( G_NULL == pulNextMapIndex )
{
MT_ERRLOG(0);
return G_FAILURE;
}
/* 操作用户的权限级别的合法性检查 */
if( CT_AL_NULL <= ucOprLevel )
{
MT_ERRLOG(ucOprLevel);
return G_FAILURE;
}
/* 输入映射表索引的合法性检查 */
if( LOG_MAX_NUM <= ulCurMapIndex )
{
MT_ERRLOG(ulCurMapIndex);
return G_FAILURE;
}
else
{
usCurMapIndex = (_U16)ulCurMapIndex;
}
pstMapCtrl = &m_astLogIndexMapCtrl[ucOprLevel];
/* 映射表无记录 */
if( 0 == pstMapCtrl->usMapCount )
{
MT_ERRLOG(0);
return G_FAILURE;
}
/* 获取下一个映射表索引 */
usNextMapIndex = CLI_INCCYCLE( usCurMapIndex, LOG_MAX_NUM );
if( LOG_MAX_NUM <= usNextMapIndex )
{
MT_ERRLOG(usNextMapIndex);
return G_FAILURE;
}
if( usNextMapIndex == pstMapCtrl->usMapTail )
{
MT_ERRLOG(0);
return G_FAILURE;
}
*pulNextMapIndex = usNextMapIndex;
return G_SUCCESS;
}
/*-----------------------------------------------------------------------------
函数名称 : CLI_WebGetLogPrevIndex();
功能 : 获取指定用户权限级别的上一个(时间靠前)日志映射表的索引
输入参数 : ucOprLevel, 操作用户的权限级别;
ulCurMapIndex, 映射表的当前索引;
输出参数 : pulPrevMapIndex, 相对于ulCurIndex的上一个映射表索引;
返回值 : G_SUCCESS, 成功;
其他, 失败.
函数调用说明:
典型使用示例:
-----------------------------------------------------------------------------*/
_U32 CLI_WebGetLogPrevIndex( _U8 ucOprLevel, _U32 ulCurMapIndex, _U32* pulPrevMapIndex )
{
_U16 usCurMapIndex, usPrevMapIndex;
ST_LOG_INDEX_MAP_CTRL *pstMapCtrl;
/* WIN32调试版本, 做一下检查 */
#if (EOS_OS_TYPE == EOS_WIN32)
DBG_ASSERT( CLI_LogTableCheck() == G_SUCCESS );
DBG_ASSERT( G_SUCCESS == CLI_LogMapCheck() );
#endif
/* 入口指针的合法性检查 */
if( G_NULL == pulPrevMapIndex )
{
MT_ERRLOG(0);
return G_FAILURE;
}
/* 操作用户的权限级别的合法性检查 */
if( CT_AL_NULL <= ucOprLevel )
{
MT_ERRLOG(ucOprLevel);
return G_FAILURE;
}
/* 输入映射表索引的合法性检查 */
if( LOG_MAX_NUM <= ulCurMapIndex )
{
MT_ERRLOG(ulCurMapIndex);
return G_FAILURE;
}
else
{
usCurMapIndex = (_U16)ulCurMapIndex;
}
pstMapCtrl = &m_astLogIndexMapCtrl[ucOprLevel];
/* 映射表无记录 */
if( 0 == pstMapCtrl->usMapCount )
{
MT_ERRLOG(0);
return G_FAILURE;
}
/* 到尾了 */
if( usCurMapIndex == pstMapCtrl->usMapTail )
{
MT_ERRLOG(0);
return G_FAILURE;
}
/* 获取上一个映射表索引 */
usPrevMapIndex = CLI_DECCYCLE( usCurMapIndex, LOG_MAX_NUM );
if( LOG_MAX_NUM <= usPrevMapIndex )
{
MT_ERRLOG(usPrevMapIndex);
return G_FAILURE;
}
*pulPrevMapIndex = usPrevMapIndex;
return G_SUCCESS;
}
/*-----------------------------------------------------------------------------
函数名称 : CLI_WebGetLogIndexByPageNo();
功能 : 获取指定页码、指定用户权限级别的日志映射表的起始索引和结束索引.
输入参数 : ucOprLevel, 操作用户的权限级别;
ulPageNo, 指定的页码, 从0开始;
ulItemNumPerPage, 每一页显示的告警条目的数目;
输出参数 : pulBeginMapIndex, 指定页面的起始映射表索引;
pulEndMapIndex, 指定页面的结束映射表索引;;
pulItemNum, 指定页面显示的日志条目的实际数目;
返回值 : G_SUCCESS, 成功;
其他, 失败.
函数调用说明: 逆序显示;
典型使用示例:
-----------------------------------------------------------------------------*/
_U32 CLI_WebGetLogIndexByPageNo(
_U8 ucOprLevel,
_U32 ulPageNo, _U32 ulItemNumPerPage,
_U32 *pulBeginMapIndex, _U32 *pulEndMapIndex,
_U32 *pulItemNum )
{
_U32 ulTotalPageNum, ulLastPageNo;
_U32 ulBeginIndex, ulEndIndex, ulItemNum;
ST_LOG_INDEX_MAP_CTRL *pstMapCtrl;
/* WIN32调试版本, 做一下检查 */
#if (EOS_OS_TYPE == EOS_WIN32)
DBG_ASSERT( CLI_LogTableCheck() == G_SUCCESS );
DBG_ASSERT( G_SUCCESS == CLI_LogMapCheck() );
#endif
/* 入口参数的合法性检查 */
if( ( G_NULL == pulBeginMapIndex )
|| ( G_NULL == pulEndMapIndex )
|| ( G_NULL == pulItemNum )
)
{
MT_ERRLOG(0);
return G_FAILURE;
}
if( 0 == ulItemNumPerPage )
{
MT_ERRLOG(0);
return G_FAILURE;
}
/* 操作用户的权限级别的合法性检查 */
if( CT_AL_NULL <= ucOprLevel )
{
MT_ERRLOG(ucOprLevel);
return G_FAILURE;
}
pstMapCtrl = &m_astLogIndexMapCtrl[ucOprLevel];
/* 无记录 */
if( 0 == pstMapCtrl->usMapCount )
{
return G_FAILURE;
}
/* 总页数 */
ulTotalPageNum = ( pstMapCtrl->usMapCount + ulItemNumPerPage - 1 ) / ulItemNumPerPage;
DBG_ASSERT( 0 != ulTotalPageNum );
/* 最后一页的页码(时间最前) */
ulLastPageNo = ulTotalPageNum - 1;
if( ulPageNo > ulLastPageNo )
{
DBG_ASSERT(0);
ulPageNo = ulLastPageNo;
}
/* 如果是最后一页, 显示的日志条数 */
if( ulLastPageNo == ulPageNo )
{
ulItemNum = pstMapCtrl->usMapCount % ulItemNumPerPage;
if( 0 == ulItemNum )
{
ulItemNum = ulItemNumPerPage;
}
}
/* 如果不最后一页, 显示的日志条数 */
else
{
ulItemNum = ulItemNumPerPage;
}
ulBeginIndex = ( pstMapCtrl->usMapTail + LOG_MAX_NUM - 1 - ulPageNo * ulItemNumPerPage )
% LOG_MAX_NUM;
ulEndIndex = ( ulBeginIndex + LOG_MAX_NUM + 1 - ulItemNum ) % LOG_MAX_NUM;
*pulBeginMapIndex = ulBeginIndex;
*pulEndMapIndex = ulEndIndex;
*pulItemNum = ulItemNum;
return G_SUCCESS;
}
/*-----------------------------------------------------------------------------
函数名称 : CLI_WebGetLogInfo();
功能 : 获取指定索引的日志信息;
输入参数 : ucOprLevel, 操作用户的权限级别;
ulMapIndex, 映射表的索引;
输出参数 : szName, 用户名;
pulLogmode, 用户登录方式;
pulIP, 登录客户端的IP地址;
szContent, 日志操作内容字符串;
szTime, 操作时间字符串;
返回值 : G_SUCCESS, 成功;
其他, 失败.
函数调用说明:
典型使用示例:
-----------------------------------------------------------------------------*/
_U32 CLI_WebGetLogInfo( _U8 ucOprLevel, _U32 ulMapIndex, _S8* szName, _U32* pulLogmode, _U32* pulIP, _S8* szContent, _S8* szTime )
{
_U32 ulRet;
_U16 usMapIndex, usLogIndex;
P_ST_LOG_ITEM pstLogIterm;
ST_LOG_INDEX_MAP_CTRL *pstMapCtrl;
_U16 *ausMapTbl;
/* WIN32调试版本, 做一下检查 */
#if (EOS_OS_TYPE == EOS_WIN32)
DBG_ASSERT( CLI_LogTableCheck() == G_SUCCESS );
DBG_ASSERT( G_SUCCESS == CLI_LogMapCheck() );
#endif
/* 入口指针的合法性检查 */
if( ( G_NULL == szName )
|| ( G_NULL == pulLogmode )
|| ( G_NULL == pulIP )
|| ( G_NULL == szContent )
|| ( G_NULL == szTime )
)
{
MT_ERRLOG(0);
return G_FAILURE;
}
/* 操作用户的权限级别的合法性检查 */
if( CT_AL_NULL <= ucOprLevel )
{
MT_ERRLOG(ucOprLevel);
return G_FAILURE;
}
/* 输入映射表索引的合法性检查 */
if( LOG_MAX_NUM <= ulMapIndex )
{
MT_ERRLOG(ulMapIndex);
return G_FAILURE;
}
else
{
usMapIndex = (_U16)ulMapIndex;
}
pstMapCtrl = &m_astLogIndexMapCtrl[ucOprLevel];
/* 无记录 */
if( 0 == pstMapCtrl->usMapCount )
{
return G_FAILURE;
}
/* 映射表索引转换为日志表索引 */
ausMapTbl = m_ausLogMapIndexTable[ucOprLevel];
usLogIndex = ausMapTbl[usMapIndex];
/* 日志表索引的合法性检查 */
if( LOG_MAX_NUM <= usLogIndex )
{
MT_ERRLOG(usLogIndex);
return G_FAILURE;
}
pstLogIterm = CLI_GetOneLog( usLogIndex );
/* 日志的合法性检查 */
ulRet = CLI_LogItemCheck( pstLogIterm );
if( G_SUCCESS != ulRet )
{
return G_FAILURE;
}
/* 如果操作者的权限比所查询的日志的用户权限小,不允许查询 */
if( ucOprLevel < (_U8)pstLogIterm->ulLevel )
{
DBG_ErrLog( 0, EN_ERR_LEVEL_GENERAL, ucOprLevel, pstLogIterm->ulLevel );
return G_FAILURE;
}
/* 填写输出参数 */
*pulLogmode = pstLogIterm->ulLogMode;
*pulIP = pstLogIterm->ulClientIp;
(_VOID)EOS_StrNCpy( szName, pstLogIterm->szUserName, ( USERNAME_LEN - 1 ) );
szName[USERNAME_LEN - 1] = '\0';
(_VOID)EOS_StrNCpy( szContent, pstLogIterm->szCommand, ( MT_LOG_CMD_LEN - 1 ) );
szContent[MT_LOG_CMD_LEN - 1] = '\0';
(_VOID)EOS_Sprintf( szTime,
"%02d-%02d-%02d %02d:%02d:%02d",
(pstLogIterm->ulLogDate >> 16) & 0xff,
((pstLogIterm->ulLogDate >> 8) & 0xff) + 1,
(pstLogIterm->ulLogDate ) & 0xff,
(pstLogIterm->ulLogTime >> 16) & 0xff,
(pstLogIterm->ulLogTime >> 8) & 0xff,
(pstLogIterm->ulLogTime) & 0xff
);
return G_SUCCESS;
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -