From 56d4a863726c8127bd2c9cc831e0b1b64e493a16 Mon Sep 17 00:00:00 2001 From: mtaylor Date: Wed, 16 Jan 2008 00:08:14 +0000 Subject: [PATCH] Fix for a defect where WDS nodes were expired. Never time them out. git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3140 0192ed92-7a03-0410-a25b-9323aeb14dbd --- net80211/ieee80211_node.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/net80211/ieee80211_node.c b/net80211/ieee80211_node.c index 8358226..21e5da8 100644 --- a/net80211/ieee80211_node.c +++ b/net80211/ieee80211_node.c @@ -1765,8 +1765,14 @@ restart: /* * Special case ourself; we may be idle for extended periods * of time and regardless reclaiming our state is wrong. - */ - if (ni == ni->ni_vap->iv_bss) { + * Special case a WDS link: it may be dead or idle, but it is + * never ok to reclaim it, as this will block transmissions + * and nobody will recreate the node when the WDS peer is + * available again. */ + if ((ni == ni->ni_vap->iv_bss) || + (ni->ni_vap->iv_opmode == IEEE80211_M_WDS && + !memcmp(ni->ni_macaddr, ni->ni_vap->wds_mac, ETH_ALEN))) + { /* NB: don't permit it to go negative */ if (ni->ni_inact > 0) ni->ni_inact--; -- 2.35.1