summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/daemon/source/daemon.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/noncore/net/wellenreiter/daemon/source/daemon.cc b/noncore/net/wellenreiter/daemon/source/daemon.cc
index 46a50ed..d77d987 100644
--- a/noncore/net/wellenreiter/daemon/source/daemon.cc
+++ b/noncore/net/wellenreiter/daemon/source/daemon.cc
@@ -163,17 +163,26 @@ usage(void)
}
void *
channel_switcher(void *cardtypeptr)
{
wl_cardtype_t *cardtype;
+ int maxchan=0;
int channel=1;
-
/* Get card info struct */
cardtype = (wl_cardtype_t *)cardtypeptr;
-
+ /* Get from the wireless extension the amount of available channels
+ this prevents a fail in switching on us cards */
+ maxchan = card_detect_channels(cardtype->iface);
+
+ if (maxchan < MAXCHANNEL)
+ {
+ #undef MAXCHANNEL
+ #define MAXCHANNEL maxchan
+ }
+
while(1)
{
/* If channel bigger than maxchannel, set to 1 */
if(channel > MAXCHANNEL)
channel=1;