From e3da57af06b13f5d4d93de48cc1a01a90de610b0 Mon Sep 17 00:00:00 2001
From: nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Fri, 24 Jun 2005 00:50:45 +0000
Subject: [PATCH] some minor bugfixes in wificonf

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@1280 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 openwrt/package/wificonf/wificonf.c | 44 +++++++++++++++++++----------
 1 file changed, 29 insertions(+), 15 deletions(-)

diff --git a/openwrt/package/wificonf/wificonf.c b/openwrt/package/wificonf/wificonf.c
index ecf08c0b6..21a96c46f 100644
--- a/openwrt/package/wificonf/wificonf.c
+++ b/openwrt/package/wificonf/wificonf.c
@@ -178,20 +178,34 @@ void setup_bcom(int skfd, char *ifname)
 	bcom_set_val(skfd, ifname, "afterburner_override", &val, sizeof(val));
 	
 	/* Set other options */
-	val = atoi(nvram_safe_get(wl_var("lazywds")));
-	bcom_ioctl(skfd, ifname, WLC_SET_LAZYWDS, &val, sizeof(val));
-	val = atoi(nvram_safe_get(wl_var("frag")));
-	bcom_ioctl(skfd, ifname, WLC_SET_FRAG, &val, sizeof(val));
-	val = atoi(nvram_safe_get(wl_var("dtim")));
-	bcom_ioctl(skfd, ifname, WLC_SET_DTIMPRD, &val, sizeof(val));
-	val = atoi(nvram_safe_get(wl_var("bcn")));
-	bcom_ioctl(skfd, ifname, WLC_SET_BCNPRD, &val, sizeof(val));
-	val = atoi(nvram_safe_get(wl_var("rts")));
-	bcom_ioctl(skfd, ifname, WLC_SET_RTS, &val, sizeof(val));
-	val = atoi(nvram_safe_get(wl_var("antdiv")));
-	bcom_ioctl(skfd, ifname, WLC_SET_ANTDIV, &val, sizeof(val));
-	val = atoi(nvram_safe_get(wl_var("txant")));
-	bcom_ioctl(skfd, ifname, WLC_SET_TXANT, &val, sizeof(val));
+	if (v = nvram_get(wl_var("lazywds"))) {
+		val = atoi(v);
+		bcom_ioctl(skfd, ifname, WLC_SET_LAZYWDS, &val, sizeof(val));
+	}
+	if (v = nvram_get(wl_var("frag"))) {
+		val = atoi(v);
+		bcom_ioctl(skfd, ifname, WLC_SET_FRAG, &val, sizeof(val));
+	}
+	if (v = nvram_get(wl_var("dtim"))) {
+		val = atoi(v);
+		bcom_ioctl(skfd, ifname, WLC_SET_DTIMPRD, &val, sizeof(val));
+	}
+	if (v = nvram_get(wl_var("bcn"))) {
+		val = atoi(v);
+		bcom_ioctl(skfd, ifname, WLC_SET_BCNPRD, &val, sizeof(val));
+	}
+	if (v = nvram_get(wl_var("rts"))) {
+		val = atoi(v);
+		bcom_ioctl(skfd, ifname, WLC_SET_RTS, &val, sizeof(val));
+	}
+	if (v = nvram_get(wl_var("antdiv"))) {
+		val = atoi(v);
+		bcom_ioctl(skfd, ifname, WLC_SET_ANTDIV, &val, sizeof(val));
+	}
+	if (v = nvram_get(wl_var("txant"))) {
+		val = atoi(v);
+		bcom_ioctl(skfd, ifname, WLC_SET_TXANT, &val, sizeof(val));
+	}
 	
 	val = nvram_enabled(wl_var("closed"));
 	bcom_ioctl(skfd, ifname, WLC_SET_CLOSED, &val, sizeof(val));
@@ -339,8 +353,8 @@ void setup_wext(int skfd, char *ifname)
 	if (channel > 0) {
 		wrq.u.freq.flags = IW_FREQ_FIXED;
 		wrq.u.freq.m = channel;
+		IW_SET_EXT_ERR(skfd, ifname, SIOCSIWFREQ, &wrq, "Set Frequency");
 	}
-	IW_SET_EXT_ERR(skfd, ifname, SIOCSIWFREQ, &wrq, "Set Frequency");
 	
 	/* Set operation mode */
 	int ap = 0, infra = 0, wet = 0;
-- 
2.20.1