hostapd/src/l2_packet
Jouni Malinen 48ec6942cb Fix Linux packet socket workaround to not close the socket too easily
Commit e6dd8196e5 ('Work around Linux
packet socket regression') closed the workaround socket on the first
received EAPOL frame from the main packet socket. This can result in
closing the socket in cases where the kernel does not really work in the
expected way during the following initial association since
reauthentication/rekeying using EAPOL frames happens while operstate is
not dormant and as such, the frames can get delivered through the main
packet socket.

Fix this by closing the workaround socket only in case the first EAPOL
frame is received through the main packet socket. This case happens
while the interface is in dormant state and as such, is more likely to
show the more restricted case of kernel functionality.

In order to avoid processing the received EAPOL frames twice, verify a
checksum of the frame contents when receiving frames alternatively from
the main packet socket and the workaround socket.

Signed-off-by: Jouni Malinen <j@w1.fi>
2015-02-22 16:06:13 +02:00
..
l2_packet.h Work around Linux packet socket regression 2015-01-31 17:21:58 +02:00
l2_packet_freebsd.c Work around Linux packet socket regression 2015-01-31 17:21:58 +02:00
l2_packet_linux.c Fix Linux packet socket workaround to not close the socket too easily 2015-02-22 16:06:13 +02:00
l2_packet_ndis.c Work around Linux packet socket regression 2015-01-31 17:21:58 +02:00
l2_packet_none.c Work around Linux packet socket regression 2015-01-31 17:21:58 +02:00
l2_packet_pcap.c Clean up debug prints to use wpa_printf() 2014-12-26 13:20:57 +02:00
l2_packet_privsep.c Work around Linux packet socket regression 2015-01-31 17:21:58 +02:00
l2_packet_winpcap.c Work around Linux packet socket regression 2015-01-31 17:21:58 +02:00
Makefile Add CONFIG_CODE_COVERAGE=y option for gcov 2013-11-24 19:16:12 +02:00