Bläddra i källkod

ssh: add the configuration options in the web backend

Sergey Alirzaev 5 år sedan
förälder
incheckning
be54f9bdd9
4 ändrade filer med 93 tillägg och 1 borttagningar
  1. 10 0
      modules/HTTP_Server/http_server.c
  2. 8 0
      modules/HTTP_Server/web_params_api.c
  3. 50 1
      modules/parameters.c
  4. 25 0
      modules/parameters.h

+ 10 - 0
modules/HTTP_Server/http_server.c

@@ -1002,6 +1002,16 @@ void HTTP_SetSettings(char *buf, uint16_t lenBuf)
         memset(value, 0, len);
     }
     memset(value, 0, len);
+    GetParamValue(buf, "ssh_enabled=", value, &valueLen);
+    SetSSHEnableStateStr(value);
+    if (strncmp(value, "on", 2) == 0) {
+        memset(value, 0, len);
+
+        GetParamValue(buf, "ssh_port=", value, &valueLen);
+        SetSSHPortStr(value);
+        memset(value, 0, len);
+    }
+    memset(value, 0, len);
 #ifndef HARDWARE_BT6709
     // Параметры реле и сухих контактов
     GetParamValue(buf, "di1=", value, &valueLen);

+ 8 - 0
modules/HTTP_Server/web_params_api.c

@@ -257,6 +257,14 @@ char *HTTP_GetSettingsPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t
     GetTelnetEnableStateStr(str, &len);
     strcat(bufOut, "\",\"tn_enabled\":");
     strncat(bufOut, str, len);
+
+    GetSSHPortStr(str, &len);
+    strcat(bufOut, ",\"ssh_port\":\"");
+    strncat(bufOut, str, len);
+
+    GetSSHEnableStateStr(str, &len);
+    strcat(bufOut, "\",\"ssh_enabled\":");
+    strncat(bufOut, str, len);
 #endif
 
 #ifdef HARDWARE_BT6703

+ 50 - 1
modules/parameters.c

@@ -1051,6 +1051,32 @@ void GetTelnetEnableStateStr(char *str, uint8_t *len)
     *len = 1;
 }
 
+// ************************************************************************** //
+//                             Параметры SSH
+
+/**
+  * @brief Текущий Порт
+  */
+void GetSSHPortStr(char *str, uint8_t *len)
+{
+    sprintf(str, "%d", sSettings.sSSH.port);
+
+    *len = strlen(str);
+}
+
+/**
+  * @brief  Настройка вкл/ выкл SSH сервера
+  */
+void GetSSHEnableStateStr(char *str, uint8_t *len)
+{
+    if (sSettings.sSSH.SSHEnable) {
+        *str = '1';
+    } else {
+        *str = '0';
+    }
+
+    *len = 1;
+}
 #endif
 
 // ************************************************************************** //
@@ -1575,9 +1601,9 @@ void SetAuthEnableStateStr(char *str)
 #endif
 
 #if defined HARDWARE_BT6707 || HARDWARE_BT6709
+#ifndef BT6702_SERVICE
 // ************************************************************************** //
 //                             Параметры Telnet
-#ifndef BT6702_SERVICE
 /**
   * @brief Текущий Порт
   */
@@ -1597,6 +1623,29 @@ void SetTelnetEnableStateStr(char *str)
         sSettings.sTelnet.TelnetEnable = 0;
     }
 
+}
+
+// ************************************************************************** //
+//                             Параметры SSH
+/**
+  * @brief Текущий Порт
+  */
+void SetSSHPortStr(char *str)
+{
+    sSettings.sSSH.port = atoi(str);
+}
+
+/**
+  * @brief  Настройка вкл/ выкл SSH сервера
+  */
+void SetSSHEnableStateStr(char *str)
+{
+    if (strncmp(str, "on", 2) == 0) {
+        sSettings.sSSH.SSHEnable = 1;
+    } else {
+        sSettings.sSSH.SSHEnable = 0;
+    }
+
 }
 #endif
 #endif

+ 25 - 0
modules/parameters.h

@@ -425,6 +425,18 @@ void GetTelnetPortStr(char *str, uint8_t *len);
   */
 void GetTelnetEnableStateStr(char *str, uint8_t *len);
 
+// ************************************************************************** //
+//                             Параметры SSH
+
+/**
+  * @brief Текущий Порт
+  */
+void GetSSHPortStr(char *str, uint8_t *len);
+
+/**
+  * @brief  Настройка вкл/ выкл SSH сервера
+  */
+void GetSSHEnableStateStr(char *str, uint8_t *len);
 #endif
 
 // ************************************************************************** //
@@ -695,6 +707,19 @@ void SetTelnetPortStr(char *str);
   * @brief  Настройка вкл/ выкл Telnet сервера
   */
 void SetTelnetEnableStateStr(char *str);
+
+// ************************************************************************** //
+//                             Параметры SSH
+
+/**
+  * @brief Текущий Порт
+  */
+void SetSSHPortStr(char *str);
+
+/**
+  * @brief  Настройка вкл/ выкл SSH сервера
+  */
+void SetSSHEnableStateStr(char *str);
 #endif
 
 // ************************************************************************** //