|
@@ -9,7 +9,6 @@
|
|
|
#include "task.h"
|
|
|
|
|
|
#include "lwip/api.h"
|
|
|
-
|
|
|
#include "udp_netsetting.h"
|
|
|
#include "stm32_uid.h"
|
|
|
#include "parameters.h"
|
|
@@ -141,17 +140,24 @@ void udp_recieve_parser(char *buf, u16_t rcvlen)
|
|
|
const uint8_t len = 100;
|
|
|
char value[100];
|
|
|
char str[100];
|
|
|
+ char work_buf[DATA_BUF_LEN1];
|
|
|
|
|
|
memset(str, 0, 100);
|
|
|
|
|
|
- // ClearParamString(buf);
|
|
|
+ memset(work_buf, 0, DATA_BUF_LEN1);
|
|
|
+
|
|
|
+ //ClearParamString(buf);
|
|
|
|
|
|
memset(value, 0, len);
|
|
|
memset(str, 0, len);
|
|
|
+ if(rcvlen < (DATA_BUF_LEN1 - 1))
|
|
|
+ strncpy(work_buf, buf, rcvlen);
|
|
|
+ else
|
|
|
+ strncpy(work_buf, buf, (DATA_BUF_LEN1 - 1));
|
|
|
|
|
|
DBG buf[rcvlen]='\0';
|
|
|
DBG printf("Rcvd (%d bytes): \t%s\r\n", rcvlen, buf);
|
|
|
- GetUDPParamValue(buf, "\"serno\"", value, &valueLen);
|
|
|
+ GetUDPParamValue(work_buf, "\"serno\"", value, &valueLen);
|
|
|
if(valueLen != 0)
|
|
|
GetSerialNumberStr(str, &len2);
|
|
|
else
|
|
@@ -161,11 +167,11 @@ void udp_recieve_parser(char *buf, u16_t rcvlen)
|
|
|
{
|
|
|
memset(str, 0, len);
|
|
|
|
|
|
- GetUDPParamValue(buf, "\"dhcp\"", str, &valueLen);
|
|
|
+ GetUDPParamValue(work_buf, "\"dhcp\"", str, &valueLen);
|
|
|
|
|
|
// memset(str, 0, len);
|
|
|
memset(value, 0, len);
|
|
|
- GetUDPParamValue(buf, "\"ipaddress\"", value, &valueLen);
|
|
|
+ GetUDPParamValue(work_buf, "\"ipaddress\"", value, &valueLen);
|
|
|
if(valueLen != 0)
|
|
|
{
|
|
|
SetUDPDhcpStateStr(str);
|
|
@@ -180,12 +186,12 @@ void udp_recieve_parser(char *buf, u16_t rcvlen)
|
|
|
{
|
|
|
memset(value, 0, len);
|
|
|
|
|
|
- GetUDPParamValue(buf, "\"gateway\"", value, &valueLen);
|
|
|
+ GetUDPParamValue(work_buf, "\"gateway\"", value, &valueLen);
|
|
|
if(valueLen != 0)
|
|
|
SetGatewayStr(value);
|
|
|
memset(value, 0, len);
|
|
|
|
|
|
- GetUDPParamValue(buf, "\"mask\"", value, &valueLen);
|
|
|
+ GetUDPParamValue(work_buf, "\"mask\"", value, &valueLen);
|
|
|
if(valueLen != 0)
|
|
|
SetMaskStr(value);
|
|
|
memset(value, 0, len);
|
|
@@ -224,6 +230,7 @@ bool http_server_serve(struct netconn *conn)
|
|
|
if (res == ERR_OK)
|
|
|
{
|
|
|
netbuf_data(inbuf, (void**)&buf, &buflen);
|
|
|
+ //buf[buflen] = 0;
|
|
|
udp_recieve_parser(buf, buflen);
|
|
|
flag = true;
|
|
|
netbuf_delete(inbuf);
|