fix(vd960DBN): IoT socket 重复创建 + broker IP 解析错误
- iot_connect_broker: 删除 memcpy,get_ipstr_to_array 已正确解析 IP 之前 memcpy 把原始 ASCII 字节覆写到 broker_ip,导致 IP 变成 49.50.49.46 - peripheral_main.c: IoT 模式下跳过 WCHNET_CreateTcpMqttSocket, 由 iot_connect_broker() 统一管理 socket 生命周期,避免重复创建
This commit is contained in:
@@ -484,8 +484,7 @@ static void iot_connect_broker(void) {
|
|||||||
|
|
||||||
// 解析 broker 地址
|
// 解析 broker 地址
|
||||||
if (get_ipstr_to_array((char *)iot_net_info.remote_addr, broker_ip) == 0) {
|
if (get_ipstr_to_array((char *)iot_net_info.remote_addr, broker_ip) == 0) {
|
||||||
// 是 IP 地址
|
// 是 IP 地址 — get_ipstr_to_array 已将结果写入 broker_ip,无需 memcpy
|
||||||
memcpy(broker_ip, iot_net_info.remote_addr, 4);
|
|
||||||
PRINT("IOT: broker IP %d.%d.%d.%d:%d\n",
|
PRINT("IOT: broker IP %d.%d.%d.%d:%d\n",
|
||||||
broker_ip[0], broker_ip[1], broker_ip[2], broker_ip[3],
|
broker_ip[0], broker_ip[1], broker_ip[2], broker_ip[3],
|
||||||
iot_net_info.mqtt_port);
|
iot_net_info.mqtt_port);
|
||||||
|
|||||||
@@ -238,15 +238,9 @@ void Main_Circulation(void)
|
|||||||
if(g_net_state.flag == 2)
|
if(g_net_state.flag == 2)
|
||||||
{
|
{
|
||||||
if(g_sub_code_enable.iot_enable){
|
if(g_sub_code_enable.iot_enable){
|
||||||
if(iot_net_info.mode == IOT_Addr_IP_Mode){
|
// IoT MQTT 模式由 iot_connect_broker() 自行管理 socket,
|
||||||
if(get_ipstr_to_array(iot_net_info.remote_addr, RemoteIP) == 0){
|
// 不要在此重复创建,直接推进状态
|
||||||
WCHNET_CreateTcpMqttSocket();
|
g_net_state.flag = 3;
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
//DNS
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user