@@ -479,6 +479,7 @@ AsyncUDP::AsyncUDP()
479
479
{
480
480
_pcb = NULL ;
481
481
_connected = false ;
482
+ _lastErr = ERR_OK;
482
483
_handler = NULL ;
483
484
}
484
485
@@ -517,8 +518,8 @@ bool AsyncUDP::connect(const ip_addr_t *addr, uint16_t port)
517
518
}
518
519
close ();
519
520
UDP_MUTEX_LOCK ();
520
- err_t err = _udp_connect (_pcb, addr, port);
521
- if (err != ERR_OK) {
521
+ _lastErr = _udp_connect (_pcb, addr, port);
522
+ if (_lastErr != ERR_OK) {
522
523
UDP_MUTEX_UNLOCK ();
523
524
return false ;
524
525
}
@@ -646,7 +647,7 @@ size_t AsyncUDP::writeTo(const uint8_t * data, size_t len, const ip_addr_t * add
646
647
if (len > CONFIG_TCP_MSS) {
647
648
len = CONFIG_TCP_MSS;
648
649
}
649
- err_t err = ERR_OK;
650
+ _lastErr = ERR_OK;
650
651
pbuf* pbt = pbuf_alloc (PBUF_TRANSPORT, len, PBUF_RAM);
651
652
if (pbt != NULL ) {
652
653
uint8_t * dst = reinterpret_cast <uint8_t *>(pbt->payload );
@@ -656,16 +657,16 @@ size_t AsyncUDP::writeTo(const uint8_t * data, size_t len, const ip_addr_t * add
656
657
void * nif = NULL ;
657
658
tcpip_adapter_get_netif ((tcpip_adapter_if_t )tcpip_if, &nif);
658
659
if (!nif){
659
- err = _udp_sendto (_pcb, pbt, addr, port);
660
+ _lastErr = _udp_sendto (_pcb, pbt, addr, port);
660
661
} else {
661
- err = _udp_sendto_if (_pcb, pbt, addr, port, (struct netif *)nif);
662
+ _lastErr = _udp_sendto_if (_pcb, pbt, addr, port, (struct netif *)nif);
662
663
}
663
664
} else {
664
- err = _udp_sendto (_pcb, pbt, addr, port);
665
+ _lastErr = _udp_sendto (_pcb, pbt, addr, port);
665
666
}
666
667
UDP_MUTEX_UNLOCK ();
667
668
pbuf_free (pbt);
668
- if (err < ERR_OK) {
669
+ if (_lastErr < ERR_OK) {
669
670
return 0 ;
670
671
}
671
672
return len;
@@ -870,6 +871,10 @@ bool AsyncUDP::connected()
870
871
return _connected;
871
872
}
872
873
874
+ esp_err_t AsyncUDP::lastErr () {
875
+ return _lastErr;
876
+ }
877
+
873
878
void AsyncUDP::onPacket (AuPacketHandlerFunctionWithArg cb, void * arg)
874
879
{
875
880
onPacket (std::bind (cb, arg, std::placeholders::_1));
0 commit comments