fix smartconfig issue when router reply arp late

This commit is contained in:
dongyou
2021-02-05 11:57:48 +08:00
parent d8082b7f39
commit c505fe650f

View File

@ -118,25 +118,21 @@ static void sc_ack_send_task(void *pvParameters)
vTaskDelay(100 / portTICK_RATE_MS); vTaskDelay(100 / portTICK_RATE_MS);
sendlen = sendto(send_sock, &ack->ctx, ack_len, 0, (struct sockaddr*) &server_addr, sin_size); sendlen = sendto(send_sock, &ack->ctx, ack_len, 0, (struct sockaddr*) &server_addr, sin_size);
if (sendlen > 0) {
/* Totally send 30 smartconfig ACKs. Then smartconfig is successful. */ if (sendlen <= 0) {
if (packet_count++ >= SC_ACK_MAX_COUNT) {
if (ack->link_flag) {
*ack->link_flag = 1;
}
if (ack->cb) {
ack->cb(SC_STATUS_LINK_OVER, remote_ip);
}
goto _end;
}
}
else {
err = sc_ack_send_get_errno(send_sock); err = sc_ack_send_get_errno(send_sock);
if (err == ENOMEM || err == EAGAIN) { ESP_LOGD(TAG, "send failed, errno %d", err);
ESP_LOGD(TAG, "send failed, errno %d", err); vTaskDelay(100 / portTICK_RATE_MS);
continue; }
/* Send 30 smartconfig ACKs. Then smartconfig is successful. */
if (packet_count++ >= SC_ACK_MAX_COUNT) {
if (ack->link_flag) {
*ack->link_flag = 1;
}
if (ack->cb) {
ack->cb(SC_STATUS_LINK_OVER, remote_ip);
} }
ESP_LOGE(TAG, "send failed, errno %d", err);
goto _end; goto _end;
} }
} }