| Previous | 199869 Revisions | Next |
| r21554 Monday 4th March, 2013 at 01:46:22 UTC by Carl |
|---|
| netdev_tap: filter packets try 2 (nw) |
| [src/osd/sdl] | netdev_tap.c |
| r21553 | r21554 | |
|---|---|---|
| 81 | 81 | { |
| 82 | 82 | int len; |
| 83 | 83 | if(m_fd == -1) return 0; |
| 84 | len = read(m_fd, m_buf, sizeof(m_buf)); | |
| 84 | // exit if we didn't receive anything, got an error, got a broadcast or multicast packet, | |
| 85 | // are in promiscuous mode or got a packet with our mac. | |
| 86 | do { | |
| 87 | len = read(m_fd, m_buf, sizeof(m_buf)); | |
| 88 | } while((len > 0) && memcmp(get_mac(), m_buf, 6) && !get_promisc() && !(m_buf[0] & 1)); | |
| 85 | 89 | *buf = m_buf; |
| 86 | 90 | return (len == -1)?0:len; |
| 87 | 91 | } |
| Previous | 199869 Revisions | Next |