Просмотр исходного кода

Merge branch 'master' of https://gowone.dy.takin.cc/liyuezong/SmartPDCode

chenyuanjie 1 год назад
Родитель
Сommit
6a673d5657
7 измененных файлов с 91 добавлено и 55 удалено
  1. 8 0
      pro/config/cfg.h
  2. 80 1
      pro/src/appweb_handle.c
  3. 0 51
      pro/src/common.c
  4. 0 2
      pro/src/common.h
  5. 1 1
      pro/src/language_common.c
  6. 1 0
      pro/src/lock.h
  7. 1 0
      pub

+ 8 - 0
pro/config/cfg.h

@@ -291,6 +291,14 @@
 
     #define USE_UI
 
+    
+    #define USE_WATCHDOG
+
+    #define USE_BEEP                            1
+    #define USE_LED                             1
+
+     #define FLIP_TIME                           5
+
 #elif defined PRJ_TEST_AC_I3_O1
     #define LANGUAGE                            0           //chinese
     #define SMPLE_TIME                          30          //ms

+ 80 - 1
pro/src/appweb_handle.c

@@ -92,6 +92,64 @@ static web_handle_t webHandle;
 static int webSetCallback(void);
 
 ///////////////////////////////////////////////////
+static char* getUserNamebyToken(char* Token)
+{
+    char* userName = NULL;
+
+    if (Token==NULL)
+    {
+        return NULL;
+    }
+    
+    lock_s_hold(LOCK_ID_USER_LOGIN);
+    _User_Log *_UserInfoTemp = NULL;
+    list_for_each_entry(_UserInfoTemp, &_GlobalUserLoginInfo.list, list)
+    {
+        if (_UserInfoTemp == NULL)
+            break;
+
+        if (strcmp(_UserInfoTemp->user_token, Token) == 0)
+        {
+            userName = _UserInfoTemp->user_name;
+        }
+    }
+    lock_s_release(LOCK_ID_USER_LOGIN);
+
+    return userName;
+}
+
+static bool CheckLoginStatus(char* Token)
+{
+    //return true;//先不处理401授权错误,待前端处理后再加 20240625 lyz
+    
+    // 没有用户登录
+    int nLoginNum=0;
+    lock_s_hold(LOCK_ID_USER_LOGIN);
+    _User_Log *_UserInfoTemp = NULL;
+    list_for_each_entry(_UserInfoTemp, &_GlobalUserLoginInfo.list, list)
+    {
+        if (_UserInfoTemp == NULL)
+            break;
+        nLoginNum++;
+    }
+    lock_s_release(LOCK_ID_USER_LOGIN);
+
+    if (nLoginNum==0)
+    {
+         return false;
+    }
+    // 根据Token查询不到登录的用户
+    if (Token != NULL && strcmp(Token, "") != 0 && getUserNamebyToken(Token) == NULL)
+    {
+        return false;
+    }
+
+    return true;
+    // return __globalDeviceManage._globalDevInfo.login_status;
+}
+
+
+
 static int upload_file(void *conn, char *path)
 {
     int r=-1,flag=0;
@@ -578,13 +636,18 @@ static void loginFunc(void* conn)
     int ack_code=0;
     if (!LoginFlag) 
     {
+        free(_newUserLogin);
         ack_str = log_LoginFailedinfo_to_json();
         ack_code = 201;
     }
     else
     {
         strcpy(_GlobalUserToken,g_token);
+
+        lock_s_hold(LOCK_ID_USER_LOGIN);
         list_add_tail(&_newUserLogin->list, &_GlobalUserLoginInfo.list);
+        lock_s_release(LOCK_ID_USER_LOGIN);
+
         ack_str = log_info_to_json(g_token);
         ack_code = 200;
     }
@@ -609,7 +672,23 @@ static void loginOutFunc(void* conn)
         http_reply(conn, 400, NULL);
         return ;        
     }
-    
+
+    lock_s_hold(LOCK_ID_USER_LOGIN);
+    _User_Log *_UserInfoTemp = NULL;
+    _User_Log * pos;
+    list_for_each_entry_safe(_UserInfoTemp, pos,&_GlobalUserLoginInfo.list, list)
+    {
+        if (_UserInfoTemp == NULL)
+            break;
+
+        if (g_token && strcmp(_UserInfoTemp->user_token, g_token) == 0)
+        {
+            list_del(&_UserInfoTemp->list);
+            free(_UserInfoTemp);
+        }
+    }
+    lock_s_release(LOCK_ID_USER_LOGIN);
+
     ack_str = log_info_to_json(g_token);
     http_reply(conn, 200, ack_str);
     free(g_token);

+ 0 - 51
pro/src/common.c

@@ -606,29 +606,6 @@ int get_curtime_str2(char *s, int len)
 }
 
 
-char* getUserNamebyToken(char* Token)
-{
-    char* userName = NULL;
-
-    if (Token==NULL)
-    {
-        return NULL;
-    }
-    
-    _User_Log *_UserInfoTemp = NULL;
-    list_for_each_entry(_UserInfoTemp, &_GlobalUserLoginInfo.list, list)
-    {
-        if (_UserInfoTemp == NULL)
-            break;
-
-        if (strcmp(_UserInfoTemp->user_token, Token) == 0)
-        {
-            userName=_UserInfoTemp->user_name;
-        }
-    }
-
-    return userName;
-}
 
 
 typedef struct {
@@ -723,34 +700,6 @@ int is_process_running(const char *process_name)
     return 0; // 进程未启动  
 }
 
-bool CheckLoginStatus(char* Token)
-{
-    //return true;//先不处理401授权错误,待前端处理后再加 20240625 lyz
-    
-    // 没有用户登录
-    int nLoginNum=0;
-    _User_Log *_UserInfoTemp = NULL;
-    list_for_each_entry(_UserInfoTemp, &_GlobalUserLoginInfo.list, list)
-    {
-        if (_UserInfoTemp == NULL)
-            break;
-        nLoginNum++;
-    }
-
-    if (nLoginNum==0)
-    {
-         return false;
-    }
-    // 根据Token查询不到登录的用户
-    if (Token != NULL && strcmp(Token, "") != 0 && getUserNamebyToken(Token) == NULL)
-    {
-        return false;
-    }
-
-    return true;
-    // return __globalDeviceManage._globalDevInfo.login_status;
-}
-
 // 辅助函数:判断是否是闰年  
 int is_leap_year(int year) {  
     return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);  

+ 0 - 2
pro/src/common.h

@@ -1417,9 +1417,7 @@ int get_bldtime2(char *dst, char *ori);
 void print_time(char *s, struct tm *tm);
 void print_utc(char *s, time_t t);
 
-char* getUserNamebyToken(char* Token);
 int is_process_running(const char *process_name);
-bool CheckLoginStatus(char* Token);
 
 // 辅助函数:判断是否是闰年  
 int is_leap_year(int year);  

+ 1 - 1
pro/src/language_common.c

@@ -476,7 +476,7 @@ const char* language_Device_restart[LANG_MAX] =
 const char* language_firmware_upgrade[LANG_MAX] = 
 {
     "固件升级",
-    "Return to factory settings",
+    "Firmware upgrade",
     "Обновление прошивки",
     "Actualización de firmware",
     "Atualização de firmware",

+ 1 - 0
pro/src/lock.h

@@ -12,6 +12,7 @@ enum {
     LOCK_ID_NETSWITCH,
     LOCK_ID_POWER_TIMER,
     LOCK_ID_POWER_UPDATE,
+    LOCK_ID_USER_LOGIN,
     
     LOCK_ID_MAX
 };

+ 1 - 0
pub

@@ -189,6 +189,7 @@ function do_copy()
         name=ac_yunnan_in1_out1_release
     elif [ "$1" = "PRJ_GOWONE_125A_AC_I3_O1" ];then
         name=ac_in3_out1_gowone_125A
+	cp -f $custdir/logo/logo_gowone.png $appdir/image/logo.png
     elif [ "$1" = "PRJ_DUALWIRES_AC_I3_O2" ];then
         name=ac_DualWires_in3_out2_release
     elif [ "$1" = "PRJ_TIDA_AC_I3_O1" ];then