亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cli_user.c

?? 命令行在嵌入式系統的實現
?? C
?? 第 1 頁 / 共 3 頁
字號:
/********************************************************************/
_U32 CLI_CreatUserLink(_VOID)
{
    _U32 i;
    /* 增加調試用戶*/
    CLI_UserInfoCfg(&(m_sUserTable[0]),
                    g_csz_CFG_CLI_DBG_USER_NAME, g_csz_CFG_CLI_DBG_USER_PASSWORD,
                    CT_AL_DEBUG, USER_FOR_CLI, ML_CHS);

    /* 增加超級用戶*/
    CLI_UserInfoCfg(&(m_sUserTable[1]),
                    g_csz_CFG_CLI_SUPER_USER_NAME, g_csz_CFG_CLI_SUPER_USER_PASSWORD,
                    CT_AL_SUPER, USER_FOR_CLI, ML_ENG);

    /* 增加普通管理員用戶*/
    CLI_UserInfoCfg(&(m_sUserTable[2]),
                    g_csz_CFG_CLI_ADMIN_USER_NAME, g_csz_CFG_CLI_ADMIN_USER_PASSWORD,
                    CT_AL_ADMIN, USER_FOR_CLI, ML_ENG);

    for (i = 3; i< MAX_USER_NUM; i++)
    {
        CLI_UserInfoCfg(&m_sUserTable[i],
                        "", "", 0, USER_NOT_USED,  ML_GetDefaultLang());
    }

    return G_SUCCESS ;
}

/********************************************************************/
/*      函數名稱    :CLI_AddTermUser                                */
/*      函數功能    :增加一個用戶                                   */
/*      輸入參數    :_S8 *szUserName 用戶名                          */
/*                   _S8 *szPassword 用戶口令                        */
/*                   _U32 ulLevel    用戶權限                        */
/*      輸出參數    :無                                             */
/*      返回值      :成功、失敗                                     */
/*      調用函數    :                                               */
/*      被調函數    :該函數只能被命令行調用                         */
/********************************************************************/
_U32 CLI_AddTermUser(const _S8 *szUserName, const _S8 *szPassword, _U8 ucLevel, _U8 ucUserType, _U8 ucLan)
{
    _U32 i;
    PTerm_Data_S pTermStruct;
    _U8 ucCurLevel;

    if (EOS_StrLen(szUserName) >= USERNAME_LEN
     || EOS_StrLen(szPassword) >= PASSWORD_LEN)
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    /* 語種ID的合法性檢查 */
    if( ucLan >= ML_GetLangNum() )
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    if((pTermStruct = CLI_GetCurrentTaskData()) == G_NULL)
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    ucCurLevel = pTermStruct->ucUserLevel;

    if (ucCurLevel < ucLevel)
    {
        IO_Print(CLI_USER_HAS_NO_RIGHT);
        return G_FAILURE;
    }

    for (i = 0; i < MAX_USER_NUM; i++)
    {
        if (!EOS_StriCmp(m_sUserTable[i].szUserName, szUserName)
         && m_sUserTable[i].ucUserType != USER_NOT_USED)
        {
            IO_Print(CLI_USER_HAS_EXISTED);
            return G_FAILURE;
        }
    }
    /*調試用戶為固定用戶,不能被替換*/
    for (i = 1; i < MAX_USER_NUM; i++)
    {
        if (m_sUserTable[i].ucUserType == USER_NOT_USED)
            break;
    }
    if (i == MAX_USER_NUM)
    {
        IO_Print(CLI_USER_TABLE_FULL);
        return G_FAILURE;
    }
    CLI_UserInfoCfg(&m_sUserTable[i],
             szUserName, szPassword, ucLevel, ucUserType, ucLan);

    #if CLI_DBASE_SUPPORT
    /* 是否包含RDB模塊 */
    if( G_YES == g_ul_INCLUDE_MODULE_CLI_RDB )
    {
        /* 函數指針是否注冊 */
        if( G_NULL == g_pfn_CFG_CLI_RDB_RecordDirectInsert )
        {
            MT_ERRLOG(0);
            return G_FAILURE;
        }

        if (g_pfn_CFG_CLI_RDB_RecordDirectInsert(m_ulCliUserHandle, m_usUserTable, i, &m_sUserTable[i])!= G_SUCCESS)
        {
            m_sUserTable[i].ucUserType = USER_NOT_USED;
            return G_FAILURE;
        }
    }
    #endif

    return G_SUCCESS ;

}

/********************************************************************/
/*      函數名稱    :CLI_DelTermUser                                */
/*      函數功能    :刪除一個用戶                                   */
/*      輸入參數    :_S8 *szUserName 刪除的用戶名                    */
/*      輸出參數    :無                                             */
/*      返回值      :成功、失敗                                     */
/*      調用函數    :                                               */
/*      被調函數    :                                               */
/********************************************************************/
_U32 CLI_DelTermUser(const _S8 *szUserName)
{
    _U32 i;
    _U8 ucTmp;
    PTerm_Data_S pTermStruct;
    _U8 ucLevel;

    if((pTermStruct = CLI_GetCurrentTaskData()) == G_NULL)
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }
    ucLevel = pTermStruct->ucUserLevel;

    for (i = 0; i < MAX_USER_NUM; i++)
    {
        if (!EOS_StriCmp(m_sUserTable[i].szUserName, szUserName)
         && m_sUserTable[i].ucUserType != USER_NOT_USED)
        {
            if (m_sUserTable[i].ulLevel >= CT_AL_SUPER
             || ucLevel < m_sUserTable[i].ulLevel)
            {
                IO_Print(CLI_USER_HAS_NO_RIGHT);
                return G_FAILURE;
            }
            else if (m_sUserTable[i].ulTermId != 0)
            {
                IO_Print(CLI_USER_DEL_ONLINE);
                return G_FAILURE;
            }
            else
                break;
        }
    }
    if (i == MAX_USER_NUM)
    {
        IO_Print(CLI_USER_NOT_EXISTED);
        return G_FAILURE;
    }
    ucTmp = m_sUserTable[i].ucUserType;
    m_sUserTable[i].ucUserType = USER_NOT_USED;

    #if CLI_DBASE_SUPPORT
    /* 是否包含RDB模塊 */
    if( G_YES == g_ul_INCLUDE_MODULE_CLI_RDB )
    {
        /* 函數指針是否注冊 */
        if( G_NULL == g_pfn_CFG_CLI_RDB_RecordDirectDelete )
        {
            MT_ERRLOG(0);
            return G_FAILURE;
        }

        if (g_pfn_CFG_CLI_RDB_RecordDirectDelete( m_ulCliUserHandle, m_usUserTable, i) != G_SUCCESS)
        {
            m_sUserTable[i].ucUserType = ucTmp;
            MT_ERRLOG(0);
            return G_FAILURE;
        }
    }
    #endif

    return G_SUCCESS;
}

/********************************************************************/
/*      函數名稱    :CLI_LoadTermUser                               */
/*      函數功能    :從flash中裝載所有的用戶信息到用戶數據表        */
/*      輸入參數    :無                                             */
/*      輸出參數    :無                                             */
/*      返回值      :成功、失敗                                     */
/*      調用函數    :                                               */
/*      被調函數    :                                               */
/********************************************************************/
_U32 CLI_LoadTermUser(_VOID)
{
    _U8 ucType;
    _U32 i;
    /*將用戶數據讀到用戶信息表*/
    #if CLI_DBASE_SUPPORT
    /* 是否包含RDB模塊 */
    if( G_YES == g_ul_INCLUDE_MODULE_CLI_RDB )
    {
        if (G_SUCCESS != CLI_UserRead())
        {
            CLI_CreatUserLink();
            CLI_UserWrite();
        }
    }
    else
    {
        CLI_CreatUserLink();
    }
    #else
        CLI_CreatUserLink();
    #endif

    for (i = 0; i < MAX_USER_NUM; i++)
    {
        ucType = m_sUserTable[i].ucUserType;
        if (ucType > USER_NOT_USED)
        {
            return G_FAILURE;
        }
    }
    return G_SUCCESS;
}

/********************************************************************/
/*      函數名稱    :CLI_GetUserByName                              */
/*      函數功能    :取得某一用戶的信息                             */
/*      輸入參數    :_S8 *szUserName 用戶名                         */
/*      輸出參數    :無                                             */
/*      返回值      :PTermUserItem: 取得的用戶信息指針              */
/*      調用函數    :                                               */
/*      被調函數    :                                               */
/********************************************************************/
PTermUserItem CLI_GetUserByName(const _S8 *szUserName)
{
    _U32 i;

    CLI_ASSURE_OR_NULL( szUserName != G_NULL );

    for (i = 0; i < MAX_USER_NUM; i++)
    {
        if (!EOS_StriCmp(m_sUserTable[i].szUserName, szUserName)
         && m_sUserTable[i].ucUserType != USER_NOT_USED)
        {
            return &m_sUserTable[i];
        }
    }
    return G_NULL ;
}

/********************************************************************/
/*      函數名稱    :CLI_GetPasswordByName                          */
/*      函數功能    :取得某一用戶的口令                             */
/*      輸入參數    :_S8 *szUserName 用戶名                          */
/*      輸出參數    :_S8 *szPassword用戶口令                         */
/*      返回值      :成功、失敗                                     */
/*      調用函數    :                                               */
/*      被調函數    :                                               */
/********************************************************************/
_U32 CLI_GetPasswordByName(_S8 *szUserName, _S8 *szPassword)
{
    PTermUserItem pTermUserItem ;

    CLI_ASSURE_OR_FAIL(( szUserName != G_NULL ) && ( szPassword != G_NULL ));

    pTermUserItem = CLI_GetUserByName(szUserName) ;
    if (G_NULL == pTermUserItem)
        return G_FAILURE ;
    EOS_MemCopy(szPassword, pTermUserItem->szPassword, PASSWORD_LEN) ;
    return G_SUCCESS ;
}
/********************************************************************/
/*      函數名稱    :CLI_CheckUserPassword                          */
/*      函數功能    :取得某一用戶的口令                             */
/*      輸入參數    :_S8 *szUserName 用戶名                         */
/*      輸出參數    :_S8 *szPassword用戶口令                        */
/*      返回值      :成功、失敗                                     */
/*      調用函數    :                                               */
/*      被調函數    :                                               */
/********************************************************************/
_U32 CLI_CheckUserPassword(const _S8 *szUserName, const _S8 *szPassword)
{
    PTermUserItem pTermUserItem ;
    _S8 szPswd[PASSWORD_LEN];

    CLI_ASSURE_OR_FAIL(( szUserName != G_NULL ) && ( szPassword != G_NULL ));

    pTermUserItem = CLI_GetUserByName(szUserName) ;
    if (G_NULL == pTermUserItem)
        return G_FAILURE ;
    CLI_Encrypt(szPswd, szPassword, 0);
    if (EOS_MemCmp(pTermUserItem->szPassword, szPswd, PASSWORD_LEN))
    {
        return G_FAILURE;
    }

    return G_SUCCESS ;
}

/********************************************************************/
/*      函數名稱    :CLI_GetUserLevel                               */
/*      函數功能    :取得某一用戶的權限                             */
/*      輸入參數    :_S8 *szUserName 用戶名                         */
/*                   _U32 *ulLevel用戶權限                          */
/*      輸出參數    :_U32 *ulLevel用戶權限                          */
/*      返回值      :成功、失敗                                     */
/*      調用函數    :                                               */
/*      被調函數    :                                               */
/********************************************************************/
_U32 CLI_GetUserLevel(const _S8 *szUserName, _U32 *ulLevel)
{
    PTermUserItem pTermUserItem ;

    CLI_ASSURE_OR_FAIL(( szUserName != G_NULL ) && ( ulLevel != G_NULL ));

    pTermUserItem = CLI_GetUserByName(szUserName) ;
    if (G_NULL == pTermUserItem)
        return G_FAILURE ;

    *ulLevel = pTermUserItem->ulLevel ;
    return G_SUCCESS ;
}

/********************************************************************/
/*      函數名稱    :CLI_SetUserName                                */
/*      函數功能    :設定某一用戶的口令                             */
/*      輸入參數    :ulIndex: 用戶數據索引                          */
/*                   _S8 *szUserName 用戶名                         */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级韩国三级日本一级| 国产成人一区在线| 欧美伦理电影网| 午夜精品久久久久久久蜜桃app| 欧美丝袜自拍制服另类| 五月婷婷综合激情| 日韩欧美一级二级三级久久久 | 一区二区三区日本| 欧美性猛片aaaaaaa做受| 日本中文一区二区三区| 日韩一区二区在线看| 国产原创一区二区三区| 中文一区二区在线观看| 色婷婷精品久久二区二区蜜臀av| 亚洲在线观看免费| 日韩欧美一区二区三区在线| 国产精品一品视频| 亚洲精选免费视频| 精品国产乱码久久久久久老虎| 国产精品中文欧美| 亚洲综合成人在线视频| 日韩欧美专区在线| 99在线热播精品免费| 日韩精品1区2区3区| 2020国产精品自拍| 色哟哟一区二区在线观看| 日本不卡一区二区三区| 国产日本欧美一区二区| 欧美伊人精品成人久久综合97| 久久69国产一区二区蜜臀| 国产精品乱码人人做人人爱| 91精品免费观看| 不卡av在线免费观看| 天天色天天操综合| 国产精品电影院| 精品久久免费看| 在线亚洲精品福利网址导航| 国产麻豆精品久久一二三| 亚洲国产中文字幕在线视频综合 | 午夜伊人狠狠久久| 中文字幕精品—区二区四季| 欧美无人高清视频在线观看| 国产成人aaaa| 美女被吸乳得到大胸91| 亚洲男同性视频| 久久久久久免费| 欧美一区二区三区四区视频| 色综合天天综合网国产成人综合天| 激情五月婷婷综合网| 五月天欧美精品| 亚洲免费在线看| 国产精品日日摸夜夜摸av| 日韩一区二区电影在线| 欧洲国内综合视频| 91首页免费视频| 国产成人综合亚洲网站| 激情深爱一区二区| 日韩激情视频网站| 天堂一区二区在线免费观看| 亚洲最快最全在线视频| 亚洲柠檬福利资源导航| 中文字幕在线观看一区| 国产精品人成在线观看免费| 久久综合九色综合97婷婷女人 | 国内偷窥港台综合视频在线播放| 亚洲午夜电影网| 亚洲一区二区三区美女| 亚洲黄色小说网站| 亚洲尤物在线视频观看| 一区二区三区国产| 一级做a爱片久久| 亚洲综合丝袜美腿| 怡红院av一区二区三区| 亚洲人成网站在线| 1024成人网| 亚洲日穴在线视频| 亚洲激情一二三区| 一区二区三区四区乱视频| 亚洲女子a中天字幕| 亚洲精品亚洲人成人网 | 欧美精品欧美精品系列| 欧美日韩日日骚| 欧美一三区三区四区免费在线看| 欧美精品九九99久久| 91精品国产综合久久精品性色| 9191精品国产综合久久久久久| 欧美肥大bbwbbw高潮| 日韩视频中午一区| 精品国产污污免费网站入口| 国产免费久久精品| 亚洲天天做日日做天天谢日日欢 | 亚洲国产裸拍裸体视频在线观看乱了| 亚洲日本成人在线观看| 亚洲福利一区二区三区| 免费三级欧美电影| 伦理电影国产精品| 懂色av一区二区在线播放| 成人免费观看av| 欧美在线不卡一区| 欧美一级高清大全免费观看| 久久亚洲二区三区| 亚洲欧美一区二区三区国产精品| 午夜精品一区在线观看| 国产精品66部| 在线免费观看成人短视频| 欧美一级高清大全免费观看| 国产三区在线成人av| 亚洲综合激情小说| 国产资源精品在线观看| 91一区二区在线| 日韩欧美国产一区二区三区| 国产精品美女久久福利网站| 亚洲国产日韩一级| 国产成人亚洲综合a∨婷婷图片 | 欧美欧美午夜aⅴ在线观看| 久久在线免费观看| 亚洲一二三四久久| 国产91精品久久久久久久网曝门| 欧美性极品少妇| 国产视频一区在线观看| 日韩不卡一二三区| 不卡视频一二三四| 欧美第一区第二区| 一区二区三区毛片| 国产精品一级片| 欧美人与禽zozo性伦| 欧美激情中文字幕| 免费成人你懂的| 色一情一伦一子一伦一区| 精品国产1区二区| 香蕉加勒比综合久久| 白白色 亚洲乱淫| 欧美大片一区二区| 久久综合久久久久88| 亚洲一区二区三区爽爽爽爽爽 | 成人动漫一区二区在线| 欧美日韩国产一级| 亚洲色图视频免费播放| 国产传媒一区在线| 欧美一二三四在线| 亚洲黄一区二区三区| 成人一区二区三区视频在线观看| 欧美一区在线视频| 性做久久久久久免费观看| 色婷婷综合久久| 亚洲欧洲精品一区二区三区| 国产精品白丝jk黑袜喷水| 欧美成人国产一区二区| 偷拍自拍另类欧美| 欧美日韩一区二区三区在线| 亚洲自拍偷拍欧美| 91网站在线观看视频| 国产精品伦理在线| eeuss鲁一区二区三区| 国产欧美日韩另类视频免费观看| 九一九一国产精品| 欧美成人乱码一区二区三区| 日韩精品电影在线| 欧美一区二区三区公司| 日本欧洲一区二区| 6080午夜不卡| 日本不卡一区二区三区| 欧美一区二区三区啪啪| 日本午夜精品一区二区三区电影| 欧美视频精品在线| 午夜精品久久久久| 欧美一区二区三区四区视频| 日本sm残虐另类| 欧美一区在线视频| 久久超碰97人人做人人爱| 欧美v国产在线一区二区三区| 看电影不卡的网站| 久久久国产精华| 丁香另类激情小说| 中文字幕在线不卡一区| 欧洲生活片亚洲生活在线观看| 亚洲一区二区在线免费观看视频| 91国产免费观看| 视频在线在亚洲| 精品国产乱码久久久久久久| 从欧美一区二区三区| 成人欧美一区二区三区在线播放| 91丨porny丨国产| 视频一区免费在线观看| 精品久久久久久最新网址| 国产精品一卡二卡| 亚洲日本在线a| 欧美日韩国产乱码电影| 青青草97国产精品免费观看 | 欧美经典一区二区| www.成人在线| 亚洲超碰97人人做人人爱| 日韩欧美第一区| 成人午夜电影网站| 一区二区三区四区国产精品| 欧美xxxxxxxxx| 91在线观看高清| 日韩经典中文字幕一区| 欧美国产在线观看| 欧美系列在线观看|