mirror of
https://git.savannah.nongnu.org/git/lwip.git
synced 2026-05-20 23:26:56 +08:00
zepif: fix destination IP (default should be broadcast, not 0.0.0.0)
This commit is contained in:
@@ -192,7 +192,7 @@ zepif_linkoutput(struct netif *netif, struct pbuf *p)
|
||||
#if ZEPIF_LOOPBACK
|
||||
zepif_udp_recv(netif, state->pcb, pbuf_clone(PBUF_RAW, PBUF_RAM, q), NULL, 0);
|
||||
#endif
|
||||
err = udp_sendto(state->pcb, q, state->init.zep_ip_addr, state->init.zep_udp_port);
|
||||
err = udp_sendto(state->pcb, q, state->init.zep_dst_ip_addr, state->init.zep_dst_udp_port);
|
||||
}
|
||||
pbuf_free(q);
|
||||
|
||||
@@ -214,13 +214,16 @@ zepif_init(struct netif *netif)
|
||||
}
|
||||
memset(state, 0, sizeof(struct zepif_state));
|
||||
if (init_state != NULL) {
|
||||
state->init = *init_state;
|
||||
memcpy(&state->init, init_state, sizeof(struct zepif_init));
|
||||
}
|
||||
if (state->init.zep_udp_port == 0) {
|
||||
state->init.zep_udp_port = ZEPIF_DEFAULT_UDP_PORT;
|
||||
if (state->init.zep_src_udp_port == 0) {
|
||||
state->init.zep_src_udp_port = ZEPIF_DEFAULT_UDP_PORT;
|
||||
}
|
||||
if (state->init.zep_ip_addr == NULL) {
|
||||
state->init.zep_ip_addr = IP_ADDR_ANY;
|
||||
if (state->init.zep_dst_udp_port == 0) {
|
||||
state->init.zep_dst_udp_port = ZEPIF_DEFAULT_UDP_PORT;
|
||||
}
|
||||
if (state->init.zep_dst_ip_addr == NULL) {
|
||||
state->init.zep_dst_ip_addr = IP_ADDR_BROADCAST;
|
||||
}
|
||||
|
||||
netif->state = NULL;
|
||||
@@ -230,7 +233,7 @@ zepif_init(struct netif *netif)
|
||||
err = ERR_MEM;
|
||||
goto err_ret;
|
||||
}
|
||||
err = udp_bind(state->pcb, state->init.zep_ip_addr, state->init.zep_udp_port);
|
||||
err = udp_bind(state->pcb, state->init.zep_src_ip_addr, state->init.zep_src_udp_port);
|
||||
if (err != ERR_OK) {
|
||||
goto err_ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user