|
@@ -723,7 +723,7 @@ char *HTTP_HistoryPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
|
|
ClearParamString(bufIn);
|
|
ClearParamString(bufIn);
|
|
|
|
|
|
memset(value, 0, 20);
|
|
memset(value, 0, 20);
|
|
- GetParamValue(bufIn, "page=", value, &valueLen);
|
|
|
|
|
|
+ GetParamValue(bufIn, "page", value, &valueLen);
|
|
|
|
|
|
if (strcmp(value, "all") == 0) {
|
|
if (strcmp(value, "all") == 0) {
|
|
if (!LOG_IsInit()) {
|
|
if (!LOG_IsInit()) {
|
|
@@ -773,7 +773,7 @@ char *HTTP_UpsHistoryPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t l
|
|
ClearParamString(bufIn);
|
|
ClearParamString(bufIn);
|
|
|
|
|
|
memset(value, 0, 20);
|
|
memset(value, 0, 20);
|
|
- GetParamValue(bufIn, "page=", value, &valueLen);
|
|
|
|
|
|
+ GetParamValue(bufIn, "page", value, &valueLen);
|
|
|
|
|
|
if (strcmp(value, "all") == 0) {
|
|
if (strcmp(value, "all") == 0) {
|
|
if (!LOG_IsInit()) {
|
|
if (!LOG_IsInit()) {
|
|
@@ -827,7 +827,7 @@ void HTTP_Prodate(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn,
|
|
ClearParamString(bufIn);
|
|
ClearParamString(bufIn);
|
|
|
|
|
|
memset(value, 0, 20);
|
|
memset(value, 0, 20);
|
|
- GetParamValue(bufIn, "prodate=", value, &valueLen);
|
|
|
|
|
|
+ GetParamValue(bufIn, "prodate", value, &valueLen);
|
|
/*
|
|
/*
|
|
printf("Prodate: ");
|
|
printf("Prodate: ");
|
|
printf(value);
|
|
printf(value);
|
|
@@ -862,6 +862,7 @@ char *HTTP_SetSettingsPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t
|
|
if (DataFlag2 == 0) {
|
|
if (DataFlag2 == 0) {
|
|
TotalReceived = 0;
|
|
TotalReceived = 0;
|
|
memset(bufOut, 0, strlen(bufOut));
|
|
memset(bufOut, 0, strlen(bufOut));
|
|
|
|
+ bufOut[0] = '0';
|
|
// parse packet for Content-length field
|
|
// parse packet for Content-length field
|
|
size = Parse_Content_Length(bufIn, lenBufIn);
|
|
size = Parse_Content_Length(bufIn, lenBufIn);
|
|
DataOffset = strstr(bufIn, "managerIP");
|
|
DataOffset = strstr(bufIn, "managerIP");
|
|
@@ -1029,6 +1030,7 @@ char *HTTP_SetInfoPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
|
|
if (DataFlag == 0) {
|
|
if (DataFlag == 0) {
|
|
TotalReceived = 0;
|
|
TotalReceived = 0;
|
|
memset(bufOut, 0, strlen(bufOut));
|
|
memset(bufOut, 0, strlen(bufOut));
|
|
|
|
+ bufOut[0] = '0';
|
|
// parse packet for Content-length field
|
|
// parse packet for Content-length field
|
|
size = Parse_Content_Length(bufIn, lenBufIn);
|
|
size = Parse_Content_Length(bufIn, lenBufIn);
|
|
DataOffset = strstr(bufIn, "sysname");
|
|
DataOffset = strstr(bufIn, "sysname");
|
|
@@ -1093,25 +1095,25 @@ void HTTP_SetInfo(char *buf, uint16_t lenBuf)
|
|
memset(value, 0, len);
|
|
memset(value, 0, len);
|
|
|
|
|
|
/* Название устройства */
|
|
/* Название устройства */
|
|
- GetParamValue(buf, "sysname=", value, &valueLen);
|
|
|
|
|
|
+ GetParamValue(buf, "sysname", value, &valueLen);
|
|
url_decode(str, sizeof(str), value);
|
|
url_decode(str, sizeof(str), value);
|
|
SetNameDeviceStr(str);
|
|
SetNameDeviceStr(str);
|
|
memset(value, 0, len);
|
|
memset(value, 0, len);
|
|
|
|
|
|
/* Владелец */
|
|
/* Владелец */
|
|
- GetParamValue(buf, "owner=", value, &valueLen);
|
|
|
|
|
|
+ GetParamValue(buf, "owner", value, &valueLen);
|
|
url_decode(str, sizeof(str), value);
|
|
url_decode(str, sizeof(str), value);
|
|
SetOwner(str);
|
|
SetOwner(str);
|
|
memset(value, 0, len);
|
|
memset(value, 0, len);
|
|
|
|
|
|
/* Владелец */
|
|
/* Владелец */
|
|
- GetParamValue(buf, "sysLocation=", value, &valueLen);
|
|
|
|
|
|
+ GetParamValue(buf, "sysLocation", value, &valueLen);
|
|
url_decode(str, sizeof(str), value);
|
|
url_decode(str, sizeof(str), value);
|
|
SetLocation(str);
|
|
SetLocation(str);
|
|
memset(value, 0, len);
|
|
memset(value, 0, len);
|
|
|
|
|
|
/* Комментарий */
|
|
/* Комментарий */
|
|
- GetParamValue(buf, "comment=", value, &valueLen);
|
|
|
|
|
|
+ GetParamValue(buf, "comment", value, &valueLen);
|
|
url_decode(str, sizeof(str), value);
|
|
url_decode(str, sizeof(str), value);
|
|
SetComment(str);
|
|
SetComment(str);
|
|
memset(value, 0, len);
|
|
memset(value, 0, len);
|
|
@@ -1236,7 +1238,7 @@ char *HTTP_UPSTest(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn
|
|
|
|
|
|
strcpy(bufOut, HTTP_200_OK);
|
|
strcpy(bufOut, HTTP_200_OK);
|
|
|
|
|
|
- GetParamValue(bufIn, "func=", tempValue, &valueLen);
|
|
|
|
|
|
+ GetParamValue(bufIn, "func", tempValue, &valueLen);
|
|
if (strcmp(tempValue, "stop") == 0) {
|
|
if (strcmp(tempValue, "stop") == 0) {
|
|
res = ups_metac_service_pdu(ups_cancel_test);
|
|
res = ups_metac_service_pdu(ups_cancel_test);
|
|
if (res == 1 || res == 0) {
|
|
if (res == 1 || res == 0) {
|
|
@@ -1258,7 +1260,7 @@ char *HTTP_UPSTest(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn
|
|
strcat(bufOut, "Команда \"Запуск теста\" отклонена ИБП!");
|
|
strcat(bufOut, "Команда \"Запуск теста\" отклонена ИБП!");
|
|
}
|
|
}
|
|
} else if (strncmp(tempValue, "time", 6) == 0) {
|
|
} else if (strncmp(tempValue, "time", 6) == 0) {
|
|
- GetParamValue(bufIn, "=", tempValue2, &valueLen);
|
|
|
|
|
|
+ GetParamValue(bufIn, "time", tempValue2, &valueLen);
|
|
TimeParam = atoi(tempValue2);
|
|
TimeParam = atoi(tempValue2);
|
|
res = ups_metac_service_pdu(ups_test_time);
|
|
res = ups_metac_service_pdu(ups_test_time);
|
|
if (res == 1 || res == 0) {
|
|
if (res == 1 || res == 0) {
|
|
@@ -1297,7 +1299,7 @@ char *HTTP_UPSshutdown(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
|
|
|
|
|
|
strcpy(bufOut, HTTP_200_OK);
|
|
strcpy(bufOut, HTTP_200_OK);
|
|
|
|
|
|
- GetParamValue(bufIn, "func=", tempValue, &valueLen);
|
|
|
|
|
|
+ GetParamValue(bufIn, "func", tempValue, &valueLen);
|
|
if (strcmp(tempValue, "reboot") == 0) {
|
|
if (strcmp(tempValue, "reboot") == 0) {
|
|
res = ups_metac_service_pdu(ups_cancel_shut_down);
|
|
res = ups_metac_service_pdu(ups_cancel_shut_down);
|
|
if (res == 1) {
|
|
if (res == 1) {
|
|
@@ -1310,7 +1312,7 @@ char *HTTP_UPSshutdown(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenB
|
|
}
|
|
}
|
|
} else if (strncmp(tempValue, "off", 5) == 0) {
|
|
} else if (strncmp(tempValue, "off", 5) == 0) {
|
|
memset(tempValue2, 0, 50);
|
|
memset(tempValue2, 0, 50);
|
|
- GetParamValue(bufIn, "after=", tempValue2, &valueLen);
|
|
|
|
|
|
+ GetParamValue(bufIn, "after", tempValue2, &valueLen);
|
|
TimeParamFloat = atof(tempValue2);
|
|
TimeParamFloat = atof(tempValue2);
|
|
res = ups_metac_service_pdu(ups_shutdown);
|
|
res = ups_metac_service_pdu(ups_shutdown);
|
|
if (res == 1) {
|
|
if (res == 1) {
|
|
@@ -1364,7 +1366,7 @@ void LoginTimerCallback(TimerHandle_t pxTimer)
|
|
*/
|
|
*/
|
|
int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
|
|
int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut)
|
|
{
|
|
{
|
|
- char tempStr[50];
|
|
|
|
|
|
+ char tempStr[52];
|
|
char login[20];
|
|
char login[20];
|
|
char password[20];
|
|
char password[20];
|
|
char tmp_password[33];
|
|
char tmp_password[33];
|
|
@@ -1376,17 +1378,18 @@ int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *l
|
|
memset(login, 0, 20);
|
|
memset(login, 0, 20);
|
|
memset(password, 0, 20);
|
|
memset(password, 0, 20);
|
|
memset(tmp_password, 0, 33);
|
|
memset(tmp_password, 0, 33);
|
|
- memset(tempStr, 0, 50);
|
|
|
|
|
|
+ memset(tempStr, 0, 52);
|
|
|
|
|
|
memset(name_login, 0, 50);
|
|
memset(name_login, 0, 50);
|
|
|
|
|
|
|
|
+ tempStr[0] = '0';
|
|
/* Get first 50 bytes of string */
|
|
/* Get first 50 bytes of string */
|
|
- strncpy(tempStr, bufIn, 49);
|
|
|
|
|
|
+ strncat(tempStr, bufIn, 49);
|
|
|
|
|
|
/* Add " " to the string in order GetParamValue() can be able to parse the param */
|
|
/* Add " " to the string in order GetParamValue() can be able to parse the param */
|
|
strcat(tempStr, " ");
|
|
strcat(tempStr, " ");
|
|
- GetParamValue(tempStr, "login=", login, &valueLen);
|
|
|
|
- GetParamValue(tempStr, "password=", tmp_password, &valueLen);
|
|
|
|
|
|
+ GetParamValue(tempStr, "login", login, &valueLen);
|
|
|
|
+ GetParamValue(tempStr, "password", tmp_password, &valueLen);
|
|
url_decode(password, sizeof(password), tmp_password);
|
|
url_decode(password, sizeof(password), tmp_password);
|
|
valueLen = strlen(password);
|
|
valueLen = strlen(password);
|
|
|
|
|
|
@@ -1555,8 +1558,8 @@ char *HTTP_ChangeUserPwd(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t le
|
|
|
|
|
|
strcpy(bufOut, HTTP_200_OK);
|
|
strcpy(bufOut, HTTP_200_OK);
|
|
|
|
|
|
- if (GetParamValue(tempStr, "username=", login, &valueLen) &&
|
|
|
|
- GetParamValue(tempStr, "oldpass=", tmp, &valueLen)) {
|
|
|
|
|
|
+ if (GetParamValue(tempStr, "username", login, &valueLen) &&
|
|
|
|
+ GetParamValue(tempStr, "oldpass", tmp, &valueLen)) {
|
|
url_decode(password, sizeof(password), tmp);
|
|
url_decode(password, sizeof(password), tmp);
|
|
for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
|
|
for (user_id = 0; user_id < MAX_WEB_USERS; user_id++) {
|
|
memset(value, 0, 20);
|
|
memset(value, 0, 20);
|
|
@@ -1568,7 +1571,7 @@ char *HTTP_ChangeUserPwd(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t le
|
|
(memcmp(password, value, 11) == 0)) {
|
|
(memcmp(password, value, 11) == 0)) {
|
|
memset(tmp, 0, sizeof(tmp));
|
|
memset(tmp, 0, sizeof(tmp));
|
|
memset(password, 0, 20);
|
|
memset(password, 0, 20);
|
|
- if (GetParamValue(tempStr, "newpass=", tmp, &valueLen)) {
|
|
|
|
|
|
+ if (GetParamValue(tempStr, "newpass", tmp, &valueLen)) {
|
|
url_decode(password, sizeof(password), tmp);
|
|
url_decode(password, sizeof(password), tmp);
|
|
valueLen = strlen(password);
|
|
valueLen = strlen(password);
|
|
memcpy(sSettings.sAuth[user_id].password, password, sizeof(sSettings.sAuth[user_id].password));
|
|
memcpy(sSettings.sAuth[user_id].password, password, sizeof(sSettings.sAuth[user_id].password));
|
|
@@ -1914,12 +1917,30 @@ uint8_t GetParamValue(char *inStr, char *paramName, char *paramValue, uint8_t *p
|
|
char *endValue = 0;
|
|
char *endValue = 0;
|
|
int len = 0;
|
|
int len = 0;
|
|
char *strPtr = 0;
|
|
char *strPtr = 0;
|
|
-
|
|
|
|
- strPtr = strstr(inStr, paramName);
|
|
|
|
|
|
+ char paramName_tmp[50];
|
|
|
|
+
|
|
|
|
+ memset(paramName_tmp, 0, sizeof(paramName_tmp));
|
|
|
|
+ paramName_tmp[0] = '&';
|
|
|
|
+ strncat(paramName_tmp, paramName, strlen(paramName));
|
|
|
|
+ strcat(paramName_tmp, "=");
|
|
|
|
+
|
|
|
|
+ strPtr = strstr(inStr, paramName_tmp);
|
|
|
|
+ if (strPtr == 0) {
|
|
|
|
+ paramName_tmp[0] = '0';
|
|
|
|
+ strPtr = strstr(inStr, paramName_tmp);
|
|
|
|
+ if (strPtr == 0) {
|
|
|
|
+ paramName_tmp[0] = '\n';
|
|
|
|
+ strPtr = strstr(inStr, paramName_tmp);
|
|
|
|
+ }
|
|
|
|
+ if (strPtr == 0) {
|
|
|
|
+ paramName_tmp[0] = '?';
|
|
|
|
+ strPtr = strstr(inStr, paramName_tmp);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
if (strPtr != 0) {
|
|
if (strPtr != 0) {
|
|
beginValue = strpbrk(strPtr, "=");
|
|
beginValue = strpbrk(strPtr, "=");
|
|
- endValue = strpbrk(strPtr, "&");
|
|
|
|
|
|
+ endValue = strpbrk(&strPtr[1], "&");
|
|
if (endValue == 0) {
|
|
if (endValue == 0) {
|
|
endValue = strpbrk(strPtr, " ");
|
|
endValue = strpbrk(strPtr, " ");
|
|
}
|
|
}
|