Browse Source

1.[ssl_server] add 401 code
2. change add in log event "Test UPS"

balbekova 5 years ago
parent
commit
c02208d7ea

+ 1 - 1
modules/Ethernet/netconf.c

@@ -288,7 +288,7 @@ void vTaskWebReinit(void *pvParameters)
             SetWebReinitFlag(false);
             HTTP_SaveSettings();
             vTaskDelay(1010);
-            Reboot(OTHER_RESET);
+            Reboot(OTHER_ACT);
         }
 
         if (fConfirmWebParams) {

+ 4 - 9
modules/Ethernet/private_mib_bt6703.c

@@ -7,6 +7,7 @@
 #include "log.h"
 #include "megatec.h"
 #include "web_params_api.h"
+#include "hal.h"
 
 #include "FreeRTOS.h"
 #include "task.h"
@@ -300,19 +301,13 @@ static snmp_err_t signal_set_value(struct snmp_node_instance *instance, u16_t le
             } else if (val > 0 && val < 100) {
                 TimeParam = val;
                 res = ups_metac_service_pdu(ups_test_time);
-                if (res == 1) {
-                    log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
-                }
+                set_act_source(SNMP_ACT);
             } else if (val == 100) {
                 res = ups_metac_service_pdu(ups_test_10sec);
-                if (res == 1) {
-                    log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
-                }
+                set_act_source(SNMP_ACT);
             } else if (val == 999) {
                 res = ups_metac_service_pdu(ups_test_low_bat);
-                if (res == 1) {
-                    log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
-                }
+                set_act_source(SNMP_ACT);
             }
             break;
         case 8: /* Shutdown UPS */

+ 4 - 10
modules/Ethernet/private_mib_bt6707.c

@@ -15,6 +15,7 @@
 #include "log.h"
 #include "megatec.h"
 #include "web_params_api.h"
+#include "hal.h"
 
 #include "FreeRTOS.h"
 #include "task.h"
@@ -326,19 +327,13 @@ static snmp_err_t signal_set_value(struct snmp_node_instance *instance, u16_t le
             } else if (val > 0 && val < 100) {
                 TimeParam = val;
                 res = ups_metac_service_pdu(ups_test_time);
-                if (res == 1) {
-                    log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
-                }
+                set_act_source(SNMP_ACT);
             } else if (val == 100) {
                 res = ups_metac_service_pdu(ups_test_10sec);
-                if (res == 1) {
-                    log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
-                }
+                set_act_source(SNMP_ACT);
             } else if (val == 999) {
                 res = ups_metac_service_pdu(ups_test_low_bat);
-                if (res == 1) {
-                    log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
-                }
+                set_act_source(SNMP_ACT);
             }
             break;
         case 9: /* Shutdown UPS */
@@ -432,7 +427,6 @@ static snmp_err_t signal_set_test(struct snmp_node_instance *instance, u16_t len
             break;
     };
 
-
     return ret;
 }
 

+ 4 - 9
modules/Ethernet/private_mib_bt6709.c

@@ -17,6 +17,7 @@
 #include "control_symbol.h"
 #include "sntp_api.h"
 #include "web_params_api.h"
+#include "hal.h"
 
 #include "FreeRTOS.h"
 #include "task.h"
@@ -562,19 +563,13 @@ static snmp_err_t signal_set_value(struct snmp_node_instance *instance, u16_t le
             } else if (val > 0 && val < 100) {
                 TimeParam = val;
                 res = ups_metac_service_pdu(ups_test_time);
-                if (res == 1) {
-                    log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
-                }
+                set_act_source(SNMP_ACT);
             } else if (val == 100) {
                 res = ups_metac_service_pdu(ups_test_10sec);
-                if (res == 1) {
-                    log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
-                }
+                set_act_source(SNMP_ACT);
             } else if (val == 999) {
                 res = ups_metac_service_pdu(ups_test_low_bat);
-                if (res == 1) {
-                    log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
-                }
+                set_act_source(SNMP_ACT);
             }
             break;
         case 8: /* Shutdown UPS */

+ 1 - 1
modules/Ethernet/udp_netsetting.c

@@ -207,7 +207,7 @@ void udp_recieve_parser(char *buf, u16_t rcvlen)
 		SaveWEBparam();
 		HTTP_SaveSettings();
 
-		Reboot(OTHER_RESET);
+		Reboot(OTHER_ACT);
 	  }
   }
 }

+ 8 - 13
modules/HTTP_Server/http_server.c

@@ -1133,7 +1133,7 @@ void HTTP_SetSettings(char *buf, uint16_t lenBuf)
         /* Блокируем управление ключем на тау секунд*/
         //IO_KeyBlockOn();
         vTaskDelay(1010);
-        Reboot(WEB_RESET);
+        Reboot(WEB_ACT);
     }
 
     telnet_act = false;
@@ -1445,37 +1445,32 @@ char *HTTP_UPSTest(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn
     if (strcmp(tempValue, "stop") == 0) {
         res = ups_metac_service_pdu(ups_cancel_test);
         if (res == 1 || res == 0) {
-            strcat(bufOut, "Тест остановлен!");
+            strcat(bufOut, "Команда \"Останов теста\" принята ИБП!");
             strcpy(log_string, name_login);
             strcat(log_string, " (Останов)");
             log_event_data(LOG_TEST_UPS, log_string);
         }
         if (res == -1) {
-            strcat(bufOut, "Тест не удалось остановить!");
+            strcat(bufOut, "Команда \"Останов теста\" отклонена ИБП!");
         }
     } else if (strcmp(tempValue, "discharge") == 0) {
         res = ups_metac_service_pdu(ups_test_low_bat);
+        set_act_source(WEB_ACT);
         if (res == 1 || res == 0) {
-            strcat(bufOut, "Тест запущен!");
-            strcpy(log_string, name_login);
-            strcat(log_string, " (Запущен)");
-            log_event_data(LOG_TEST_UPS, log_string);
+            strcat(bufOut, "Команда \"Запуск теста\" принята ИБП!");
         }
         if (res == -1) {
-            strcat(bufOut, "Тест не удалось запустить!");
+            strcat(bufOut, "Команда \"Запуск теста\" отклонена ИБП!");
         }
     } else if (strncmp(tempValue, "time", 6) == 0) {
         GetParamValue(bufIn, "=", tempValue2, &valueLen);
         TimeParam = atoi(tempValue2);
         res = ups_metac_service_pdu(ups_test_time);
         if (res == 1 || res == 0) {
-            strcat(bufOut, "Тест запущен!");
-            strcpy(log_string, name_login);
-            strcat(log_string, " (Запущен)");
-            log_event_data(LOG_TEST_UPS, log_string);
+            strcat(bufOut, "Команда \"Запуск теста\" принята ИБП!");
         }
         if (res == -1) {
-            strcat(bufOut, "Тест не удалось запустить!");
+            strcat(bufOut, "Команда \"Запуск теста\" отклонена ИБП!");
         }
     }
     *lenBufOut = strlen(bufOut);

+ 16 - 17
modules/HTTP_Server/my_ssl_server.c

@@ -126,6 +126,7 @@ static const char Content_Length[17] =
 
 const char HTTP_304_NOT_MODIFIED[] = "HTTP/1.1 304 Not Modified\r\n\r\n";
 const char HTTP_403_NOT_WHITE_LIST[] = "HTTP/1.1 403 Forbidden\r\n\r\n";
+const char HTTP_401_NO_AUTH[] = "HTTP/1.1 401 No authorization\r\n\r\n";
 const char HTTP_500_SERVER_ERROR[] = "HTTP/1.1 500 Internal Server Error\r\n\r\n";
 const char HTTP_200_OK[] = "HTTP/1.1 200 OK\r\n\r\n";
 /* utf-8 marker to support MS Excel */
@@ -852,12 +853,15 @@ char *SSL_ProcessingRoutine(uint16_t *sendLen)
         if (strncmp(receiveBuf, h->client_req, h->len) == 0) {
 #ifdef HTTP_AUTH_ENABLE
             if (h->accsess == TIME_ACCESS && !Authenticated) {
+                strcpy(sendBuf, HTTP_401_NO_AUTH);
                 if((sSettings.sRADIUS.RDSEnable == true) && (fl_raddius_net_err == false))
-                    fs_open("/rslogin.html", &file);
+                     strcat(sendBuf,
+                    "<!DOCTYPE html><html lang=""><head><meta http-equiv=\"refresh\" content=\"0;url=/rslogin.html\"/></head></html>\r\n");
                 else
-                    fs_open("/login.html", &file);
-                *sendLen = (uint16_t)file.len;
-                return file.data;
+                    strcat(sendBuf,
+                    "<!DOCTYPE html><html lang=""><head><meta http-equiv=\"refresh\" content=\"0;url=/login.html\"/></head></html>\r\n");
+                *sendLen = strlen(sendBuf);
+                return sendBuf;
             }
 #endif
             return h->handler(0, receiveBuf, sendBuf, receivedBufLen, sendLen);
@@ -1306,7 +1310,7 @@ void HTTP_SetSettings(char *buf, uint16_t lenBuf)
         /* Блокируем управление ключем на тау секунд*/
         //IO_KeyBlockOn();
         vTaskDelay(1010);
-        Reboot(WEB_RESET);
+        Reboot(WEB_ACT);
     }
 
     HTTP_SaveSettings();
@@ -1537,37 +1541,32 @@ char *HTTP_UPSTest(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn
     if (strcmp(tempValue, "stop") == 0) {
         res = ups_metac_service_pdu(ups_cancel_test);
         if (res == 1 || res == 0) {
-            strcat(bufOut, "Тест остановлен!");
+            strcat(bufOut, "Команда \"Останов теста\" принята ИБП!");
             strcpy(log_string, name_login);
             strcat(log_string, " (Останов)");
             log_event_data(LOG_TEST_UPS, log_string);
         }
         if (res == -1) {
-            strcat(bufOut, "Тест не удалось остановить!");
+            strcat(bufOut, "Команда \"Останов теста\" отклонена ИБП!");
         }
     } else if (strcmp(tempValue, "discharge") == 0) {
         res = ups_metac_service_pdu(ups_test_low_bat);
+        set_act_source(WEB_ACT);
         if (res == 1 || res == 0) {
-            strcat(bufOut, "Тест запущен!");
-            strcpy(log_string, name_login);
-            strcat(log_string, " (Запущен)");
-            log_event_data(LOG_TEST_UPS, log_string);
+            strcat(bufOut, "Команда \"Запуск теста\" принята ИБП!");
         }
         if (res == -1) {
-            strcat(bufOut, "Тест не удалось запустить!");
+            strcat(bufOut, "Команда \"Запуск теста\" отклонена ИБП!");
         }
     } else if (strncmp(tempValue, "time", 6) == 0) {
         GetParamValue(bufIn, "=", tempValue2, &valueLen);
         TimeParam = atoi(tempValue2);
         res = ups_metac_service_pdu(ups_test_time);
         if (res == 1 || res == 0) {
-            strcat(bufOut, "Тест запущен!");
-            strcpy(log_string, name_login);
-            strcat(log_string, " (Запущен)");
-            log_event_data(LOG_TEST_UPS, log_string);
+            strcat(bufOut, "Команда \"Запуск теста\" принята ИБП!");
         }
         if (res == -1) {
-            strcat(bufOut, "Тест не удалось запустить!");
+            strcat(bufOut, "Команда \"Запуск теста\" отклонена ИБП!");
         }
     }
     *lenBufOut = strlen(bufOut);

+ 2 - 2
modules/HTTP_Server/web_params_api.c

@@ -795,11 +795,11 @@ void vTaskReboot(void *pvParameters)
             HTTP_SaveSettings();
             vTaskDelay(2000);
             vTaskDelay(1010);
-            Reboot(WEB_RESET);
+            Reboot(WEB_ACT);
         } else {
             vTaskDelay(1000);
             vTaskDelay(1010);
-            Reboot(SNMP_RESET);
+            Reboot(SNMP_ACT);
         }
     }
 }

+ 11 - 13
modules/Telnet_Server/CLI_Commands.c

@@ -701,7 +701,7 @@ static portBASE_TYPE prvTaskRebootCommand( int8_t *pcWriteBuffer, size_t xWriteB
         return pdTRUE;
     } else {
         telnet_act = true;
-        Reboot(TELNET_RESET);
+        Reboot(TELNET_ACT);
         return pdFALSE;
     }
 }
@@ -2326,7 +2326,7 @@ static portBASE_TYPE prvTaskNetConfigCommand( int8_t *pcWriteBuffer, size_t xWri
                 telnet_act = true;
                 start = 0;
                 vTaskDelay(1010);
-                Reboot(TELNET_RESET);
+                Reboot(TELNET_ACT);
             }
             break;
         case ARG_NETCONFIG_CONFIRM:
@@ -2780,36 +2780,34 @@ static portBASE_TYPE prvTaskUPSCommand( int8_t *pcWriteBuffer, size_t xWriteBuff
             val = atoi(str);
             if (val == 0) {
                 res = ups_metac_service_pdu(ups_cancel_test);
+                set_act_source(TELNET_ACT);
                 if (res == 1) {
                     log_event_data(LOG_TEST_UPS, "Администратор (Останов)");
-                    strcpy( ( char * ) pcWriteBuffer, "\t\tТест остановлен!\r\n");
+                    strcpy( ( char * ) pcWriteBuffer, "\t\tКоманда \"Останов теста\" принята ИБП!\r\n");
                 } else {
-                    strcpy( ( char * ) pcWriteBuffer, "\t\tТест не удалось остановить!\r\n");
+                    strcpy( ( char * ) pcWriteBuffer, "\t\tКоманда \"Останов теста\" отклонена ИБП!\r\n");
                 }
             } else if (val > 0 && val < 100) {
                 TimeParam = val;
                 res = ups_metac_service_pdu(ups_test_time);
                 if (res == 1) {
-                    log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
-                    strcpy( ( char * ) pcWriteBuffer, "\t\tТест запущен!\r\n");
+                    strcpy( ( char * ) pcWriteBuffer, "\t\tКоманда \"Запуск теста\" принята ИБП!\r\n");
                 } else {
-                    strcpy( ( char * ) pcWriteBuffer, "\t\tТест не удалось запустить!\r\n");
+                    strcpy( ( char * ) pcWriteBuffer, "\t\tКоманда \"Запуск теста\" отклонена ИБП!\r\n");
                 }
             } else if (val == 100) {
                 res = ups_metac_service_pdu(ups_test_10sec);
                 if (res == 1) {
-                    log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
-                    strcpy( ( char * ) pcWriteBuffer, "\t\tТест запущен!\r\n");
+                    strcpy( ( char * ) pcWriteBuffer, "\t\tКоманда \"Запуск теста\" принята ИБП!\r\n");
                 } else {
-                    strcpy( ( char * ) pcWriteBuffer, "\t\tТест не удалось запустить!\r\n");
+                    strcpy( ( char * ) pcWriteBuffer, "\t\tКоманда \"Запуск теста\" отклонена ИБП!\r\n");
                 }
             } else if (val == 999) {
                 res = ups_metac_service_pdu(ups_test_low_bat);
                 if (res == 1) {
-                    log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
-                    strcpy( ( char * ) pcWriteBuffer, "\t\tТест запущен!\r\n");
+                    strcpy( ( char * ) pcWriteBuffer, "\t\tКоманда \"Запуск теста\" принята ИБП!\r\n");
                 } else {
-                    strcpy( ( char * ) pcWriteBuffer, "\t\tТест не удалось запустить!\r\n");
+                    strcpy( ( char * ) pcWriteBuffer, "\t\tКоманда \"Запуск теста\" отклонена ИБП!\r\n");
                 }
             } else {
                 strncpy( ( char * ) pcWriteBuffer, ( const char * ) pcInvalidCommand, strlen( ( char * ) pcInvalidCommand ) );

+ 1 - 1
modules/buttons/buttons.c

@@ -173,7 +173,7 @@ void BUTTON_DEF_DownHandler(void)
   SETTINGS_Save();
 
   vTaskDelay(1010);
-  Reboot(OTHER_RESET);
+  Reboot(OTHER_ACT);
   
   //taskEXIT_CRITICAL();
 }

+ 17 - 5
modules/common/hal.c

@@ -16,20 +16,22 @@
 #include "FreeRTOS.h"
 #include "task.h"
 
-void Reboot(source_reset_t source_reset)
+static source_act_t source_act = OTHER_ACT;
+
+void Reboot(source_act_t source_reset)
 {
 #ifndef BT6702_SERVICE
     SNMP_SendUserTrap(DEVICE_REBOOTED);
     switch (source_reset) {
-        case WEB_RESET:
+        case WEB_ACT:
             log_event_data(LOG_SYSTEM_BOOT, name_login);
             break;
-        case SNMP_RESET:
-        case OTHER_RESET:
+        case SNMP_ACT:
+        case OTHER_ACT:
             log_event_data(LOG_SYSTEM_BOOT, "Администратор");
             break;
 #if defined HARDWARE_BT6707 || HARDWARE_BT6709
-        case TELNET_RESET:
+        case TELNET_ACT:
             log_event_data(LOG_SYSTEM_BOOT, name_login_telnet);
             break;
 #endif
@@ -42,3 +44,13 @@ void Reboot(source_reset_t source_reset)
     NVIC_SystemReset();
 }
 
+void set_act_source(source_act_t source)
+{
+    source_act = source;
+}
+
+source_act_t get_act_source(void)
+{
+    return source_act;
+}
+

+ 8 - 7
modules/common/hal.h

@@ -9,13 +9,14 @@
 #define HAL_H_
 
 typedef enum {
-    WEB_RESET = 0,
-    SNMP_RESET,
-    TELNET_RESET,
-    OTHER_RESET
-} source_reset_t;
-
-void Reboot(source_reset_t source_reset);
+    WEB_ACT = 0,
+    SNMP_ACT,
+    TELNET_ACT,
+    OTHER_ACT
+} source_act_t;
 
+void Reboot(source_act_t source_reset);
+void set_act_source(source_act_t source);
+source_act_t get_act_source(void);
 
 #endif /* HAL_H_ */

+ 23 - 0
modules/monitor/ups_monitor.c

@@ -18,6 +18,7 @@
 #include "led.h"
 #include "log.h"
 #include "rtc.h"
+#include "hal.h"
 
 #include "FreeRTOS.h"
 #include "task.h"
@@ -337,6 +338,7 @@ void UPS_TestFinishMonitor(void)
 {
   static uint8_t TestFinishState = 0;
   uint8_t TestFinishStateCurrent;
+  char log_string[50];
 
   TestFinishStateCurrent = (UPS.Status >> 2) & 0x01;
 
@@ -346,6 +348,27 @@ void UPS_TestFinishMonitor(void)
     if (!TestFinishStateCurrent){
       log_event_data(LOG_TEST_UPS, "Завершен");
       flUpdateLog = true;
+    } else {
+      memset(log_string, 0, sizeof(log_string));
+      switch (get_act_source()) {
+        case WEB_ACT:
+            strcpy(log_string, name_login);
+            break;
+        case SNMP_ACT:
+        case OTHER_ACT:
+            strcpy(log_string, "Администратор");
+            break;
+#if defined HARDWARE_BT6707 || HARDWARE_BT6709
+        case TELNET_ACT:
+            strcpy(log_string, name_login_telnet);
+            break;
+#endif
+        default:
+            break;
+      }
+      strcat(log_string, " (Запущен)");
+      log_event_data(LOG_TEST_UPS, log_string);
+      flUpdateLog = true;
     }
   }