Skip to content

Commit 4f27ce1

Browse files
authored
Fix TCP send to IPv6 link local addresses (#7207)
credit: Simon Arlott @nomis - similar to #6541 for TCP (#7207)
1 parent ee619d3 commit 4f27ce1

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

libraries/ESP8266WiFi/src/include/ClientContext.h

+7-1
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,14 @@ class ClientContext
127127
}
128128
}
129129

130-
int connect(CONST ip_addr_t* addr, uint16_t port)
130+
int connect(ip_addr_t* addr, uint16_t port)
131131
{
132+
#if LWIP_IPV6
133+
// Set zone so that link local addresses use the default interface
134+
if (IP_IS_V6(addr) && ip6_addr_lacks_zone(ip_2_ip6(addr), IP6_UNKNOWN)) {
135+
ip6_addr_assign_zone(ip_2_ip6(addr), IP6_UNKNOWN, netif_default);
136+
}
137+
#endif
132138
err_t err = tcp_connect(_pcb, addr, port, &ClientContext::_s_connected);
133139
if (err != ERR_OK) {
134140
return 0;

libraries/ESP8266WiFi/src/include/UdpContext.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ class UdpContext
117117
#if LWIP_IPV6
118118
// Set zone so that link local addresses use the default interface
119119
if (IP_IS_V6(&_pcb->remote_ip) && ip6_addr_lacks_zone(ip_2_ip6(&_pcb->remote_ip), IP6_UNKNOWN)) {
120-
ip6_addr_assign_zone(ip_2_ip6(&_pcb->remote_ip),IP6_UNKNOWN, netif_default);
120+
ip6_addr_assign_zone(ip_2_ip6(&_pcb->remote_ip), IP6_UNKNOWN, netif_default);
121121
}
122122
#endif
123123
return true;

0 commit comments

Comments
 (0)