Package: wireless-tools
Version: 29-1.1
Severity: normal
Tags: patch
When iwconfig is currently run with an ethernet device as an argument,
it displays "no wireless extensions". But it doesn't give a proper exit
code.
I noticed that the exit status is propagated but not stored in main().
Thus this patch.
Did a brief testing, looks good to me.
r...@champaran:/tmp/wireless-tools-29$ iwconfig eth1
eth1 IEEE 802.11g ESSID:"rrs"
Mode:Managed Frequency:2.437 GHz Access Point:
00:16:B6:A5:E7:1C
Bit Rate:54 Mb/s Tx-Power=20 dBm Sensitivity=8/0
Retry limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=78/100 Signal level=-51 dBm Noise level=-90 dBm
Rx invalid nwid:0 Rx invalid crypt:6 Rx invalid frag:0
Tx excessive retries:1 Invalid misc:0 Missed beacon:0
r...@champaran:/tmp/wireless-tools-29$ echo $?
0
r...@champaran:/tmp/wireless-tools-29$ iwconfig eth0
eth0 no wireless extensions.
r...@champaran:/tmp/wireless-tools-29$ echo $?
161
r...@champaran:/tmp/wireless-tools-29$ iwconfig eth0
eth0 no wireless extensions.
r...@champaran:/tmp/wireless-tools-29$ echo $?
161
r...@champaran:/tmp/wireless-tools-29$ iwconfig eth0
eth0 no wireless extensions.
r...@champaran:/tmp/wireless-tools-29$ echo $?
161
I just checked iwconfig for now, am not sure if similar problems are
there elsewhere also.
Ritesh
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.29-1-686 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages wireless-tools depends on:
ii libc6 2.9-8 GNU C Library: Shared libraries
ii libiw29 29-1.1 Wireless tools - library
wireless-tools recommends no packages.
wireless-tools suggests no packages.
-- no debconf information
1913c1913
< int goterr = 0;
---
> int ret = 0;
1932c1932
< goterr = iw_print_version_info("iwconfig");
---
> ret = iw_print_version_info("iwconfig");
1944c1944
< print_info(skfd, argv[1], NULL, 0);
---
> ret = print_info(skfd, argv[1], NULL, 0);
1947c1947
< goterr = set_info(skfd, argv + 2, argc - 2, argv[1]);
---
> ret = set_info(skfd, argv + 2, argc - 2, argv[1]);
1953c1953
< return(goterr);
---
> return(ret);