mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2025-03-28 19:21:20 +00:00
Fix bug #50206: UDP Netconn bind to IP6_ADDR_ANY fails
The tests were in to catch user errors, but they seem to get in the way of application programming :-) The checks in *_send() remain active to catch when PCB source and destination address types do not match
This commit is contained in:
parent
2ad03b0ebd
commit
ff04c2046e
@ -211,7 +211,7 @@ raw_input(struct pbuf *p, struct netif *inp)
|
|||||||
err_t
|
err_t
|
||||||
raw_bind(struct raw_pcb *pcb, const ip_addr_t *ipaddr)
|
raw_bind(struct raw_pcb *pcb, const ip_addr_t *ipaddr)
|
||||||
{
|
{
|
||||||
if ((pcb == NULL) || (ipaddr == NULL) || !IP_ADDR_PCB_VERSION_MATCH(pcb, ipaddr)) {
|
if ((pcb == NULL) || (ipaddr == NULL)) {
|
||||||
return ERR_VAL;
|
return ERR_VAL;
|
||||||
}
|
}
|
||||||
ip_addr_set_ipaddr(&pcb->local_ip, ipaddr);
|
ip_addr_set_ipaddr(&pcb->local_ip, ipaddr);
|
||||||
@ -235,7 +235,7 @@ raw_bind(struct raw_pcb *pcb, const ip_addr_t *ipaddr)
|
|||||||
err_t
|
err_t
|
||||||
raw_connect(struct raw_pcb *pcb, const ip_addr_t *ipaddr)
|
raw_connect(struct raw_pcb *pcb, const ip_addr_t *ipaddr)
|
||||||
{
|
{
|
||||||
if ((pcb == NULL) || (ipaddr == NULL) || !IP_ADDR_PCB_VERSION_MATCH(pcb, ipaddr)) {
|
if ((pcb == NULL) || (ipaddr == NULL)) {
|
||||||
return ERR_VAL;
|
return ERR_VAL;
|
||||||
}
|
}
|
||||||
ip_addr_set_ipaddr(&pcb->remote_ip, ipaddr);
|
ip_addr_set_ipaddr(&pcb->remote_ip, ipaddr);
|
||||||
|
@ -551,7 +551,7 @@ tcp_bind(struct tcp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port)
|
|||||||
#endif /* LWIP_IPV4 */
|
#endif /* LWIP_IPV4 */
|
||||||
|
|
||||||
/* still need to check for ipaddr == NULL in IPv6 only case */
|
/* still need to check for ipaddr == NULL in IPv6 only case */
|
||||||
if ((pcb == NULL) || (ipaddr == NULL) || !IP_ADDR_PCB_VERSION_MATCH(pcb, ipaddr)) {
|
if ((pcb == NULL) || (ipaddr == NULL)) {
|
||||||
return ERR_VAL;
|
return ERR_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -859,7 +859,7 @@ tcp_connect(struct tcp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port,
|
|||||||
u32_t iss;
|
u32_t iss;
|
||||||
u16_t old_local_port;
|
u16_t old_local_port;
|
||||||
|
|
||||||
if ((pcb == NULL) || (ipaddr == NULL) || !IP_ADDR_PCB_VERSION_MATCH(pcb, ipaddr)) {
|
if ((pcb == NULL) || (ipaddr == NULL)) {
|
||||||
return ERR_VAL;
|
return ERR_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -892,7 +892,7 @@ udp_bind(struct udp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port)
|
|||||||
#endif /* LWIP_IPV4 */
|
#endif /* LWIP_IPV4 */
|
||||||
|
|
||||||
/* still need to check for ipaddr == NULL in IPv6 only case */
|
/* still need to check for ipaddr == NULL in IPv6 only case */
|
||||||
if ((pcb == NULL) || (ipaddr == NULL) || !IP_ADDR_PCB_VERSION_MATCH(pcb, ipaddr)) {
|
if ((pcb == NULL) || (ipaddr == NULL)) {
|
||||||
return ERR_VAL;
|
return ERR_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -982,7 +982,7 @@ udp_connect(struct udp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port)
|
|||||||
{
|
{
|
||||||
struct udp_pcb *ipcb;
|
struct udp_pcb *ipcb;
|
||||||
|
|
||||||
if ((pcb == NULL) || (ipaddr == NULL) || !IP_ADDR_PCB_VERSION_MATCH(pcb, ipaddr)) {
|
if ((pcb == NULL) || (ipaddr == NULL)) {
|
||||||
return ERR_VAL;
|
return ERR_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user