fix some small bugs in wificonf and wlcompat

git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@1385 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Felix Fietkau 2005-07-09 16:17:12 +00:00
parent 30c5c6daec
commit 86278453fa
2 changed files with 3 additions and 12 deletions

View File

@ -36,21 +36,18 @@
do { \ do { \
ERR_SET_EXT(rname, request); \ ERR_SET_EXT(rname, request); \
fprintf(stderr, " too few arguments.\n"); \ fprintf(stderr, " too few arguments.\n"); \
return; \
} while(0) } while(0)
#define ABORT_ARG_TYPE(rname, request, arg) \ #define ABORT_ARG_TYPE(rname, request, arg) \
do { \ do { \
ERR_SET_EXT(rname, request); \ ERR_SET_EXT(rname, request); \
fprintf(stderr, " invalid argument \"%s\".\n", arg); \ fprintf(stderr, " invalid argument \"%s\".\n", arg); \
return; \
} while(0) } while(0)
#define ABORT_ARG_SIZE(rname, request, max) \ #define ABORT_ARG_SIZE(rname, request, max) \
do { \ do { \
ERR_SET_EXT(rname, request); \ ERR_SET_EXT(rname, request); \
fprintf(stderr, " argument too big (max %d)\n", max); \ fprintf(stderr, " argument too big (max %d)\n", max); \
return; \
} while(0) } while(0)
/*------------------------------------------------------------------*/ /*------------------------------------------------------------------*/
@ -64,7 +61,6 @@
ERR_SET_EXT(rname, request); \ ERR_SET_EXT(rname, request); \
fprintf(stderr, " SET failed on device %-1.16s ; %s.\n", \ fprintf(stderr, " SET failed on device %-1.16s ; %s.\n", \
ifname, strerror(errno)); \ ifname, strerror(errno)); \
return; \
} } while(0) } } while(0)
/*------------------------------------------------------------------*/ /*------------------------------------------------------------------*/
@ -78,7 +74,6 @@
ERR_SET_EXT(rname, request); \ ERR_SET_EXT(rname, request); \
fprintf(stderr, " GET failed on device %-1.16s ; %s.\n", \ fprintf(stderr, " GET failed on device %-1.16s ; %s.\n", \
ifname, strerror(errno)); \ ifname, strerror(errno)); \
return; \
} } while(0) } } while(0)
char *prefix; char *prefix;
@ -115,8 +110,6 @@ int bcom_ioctl(int skfd, char *ifname, int cmd, void *buf, int len)
strncpy(ifr.ifr_name, ifname, IFNAMSIZ); strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
ret = ioctl(skfd, SIOCDEVPRIVATE, &ifr); ret = ioctl(skfd, SIOCDEVPRIVATE, &ifr);
if (ret < 0)
fprintf(stderr, "bcom_ioctl [cmd=%d, buf=%08x, len=%d] failed: %d\n", cmd, buf, len, ret);
return ret; return ret;
} }

View File

@ -412,8 +412,7 @@ static int wlcompat_ioctl(struct net_device *dev,
{ {
int radio; int radio;
if (wl_ioctl(dev, WLC_GET_RADIO, &radio, sizeof(int)) < 0) wl_ioctl(dev, WLC_GET_RADIO, &radio, sizeof(int));
return -EINVAL;
if (wl_get_val(dev, "qtxpower", &(wrqu->txpower.value), sizeof(int)) < 0) if (wl_get_val(dev, "qtxpower", &(wrqu->txpower.value), sizeof(int)) < 0)
return -EINVAL; return -EINVAL;
@ -431,10 +430,9 @@ static int wlcompat_ioctl(struct net_device *dev,
/* This is weird: WLC_SET_RADIO with 1 as argument disables the radio */ /* This is weird: WLC_SET_RADIO with 1 as argument disables the radio */
int radio = wrqu->txpower.disabled; int radio = wrqu->txpower.disabled;
if (wl_ioctl(dev, WLC_SET_RADIO, &radio, sizeof(int)) < 0) wl_ioctl(dev, WLC_SET_RADIO, &radio, sizeof(int));
return -EINVAL;
if (!wrqu->txpower.disabled) { if (!wrqu->txpower.disabled && (wrqu->txpower.value > 0)) {
int value; int value;
if (wl_get_val(dev, "qtxpower", &value, sizeof(int)) < 0) if (wl_get_val(dev, "qtxpower", &value, sizeof(int)) < 0)