mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-10-01 04:12:07 +00:00
Fixed bug #28506 (raw_bind should filter received packets)
This commit is contained in:
parent
c483c13dc4
commit
8292cebfd9
@ -41,6 +41,9 @@ HISTORY
|
|||||||
|
|
||||||
++ Bugfixes:
|
++ Bugfixes:
|
||||||
|
|
||||||
|
2010-01-10: Simon Goldschmidt
|
||||||
|
* raw.c: Fixed bug #28506 (raw_bind should filter received packets)
|
||||||
|
|
||||||
2010-01-10: Simon Goldschmidt
|
2010-01-10: Simon Goldschmidt
|
||||||
* tcp.h/.c: bug #28127 (remove call to tcp_output() from tcp_ack(_now)())
|
* tcp.h/.c: bug #28127 (remove call to tcp_output() from tcp_ack(_now)())
|
||||||
|
|
||||||
|
@ -92,7 +92,9 @@ raw_input(struct pbuf *p, struct netif *inp)
|
|||||||
/* loop through all raw pcbs until the packet is eaten by one */
|
/* loop through all raw pcbs until the packet is eaten by one */
|
||||||
/* this allows multiple pcbs to match against the packet by design */
|
/* this allows multiple pcbs to match against the packet by design */
|
||||||
while ((eaten == 0) && (pcb != NULL)) {
|
while ((eaten == 0) && (pcb != NULL)) {
|
||||||
if (pcb->protocol == proto) {
|
if ((pcb->protocol == proto) &&
|
||||||
|
(ip_addr_isany(&pcb->local_ip)) ||
|
||||||
|
ip_addr_cmp(&(pcb->local_ip), &(iphdr->dest))) {
|
||||||
#if IP_SOF_BROADCAST_RECV
|
#if IP_SOF_BROADCAST_RECV
|
||||||
/* broadcast filter? */
|
/* broadcast filter? */
|
||||||
if ((pcb->so_options & SOF_BROADCAST) || !ip_addr_isbroadcast(&(iphdr->dest), inp))
|
if ((pcb->so_options & SOF_BROADCAST) || !ip_addr_isbroadcast(&(iphdr->dest), inp))
|
||||||
|
Loading…
Reference in New Issue
Block a user