diff options
author | Thierry Vignaud <tvignaud@mandriva.org> | 2004-05-19 15:28:36 +0000 |
---|---|---|
committer | Thierry Vignaud <tvignaud@mandriva.org> | 2004-05-19 15:28:36 +0000 |
commit | b8266795f0feff415261179120d70d0e6910cdfb (patch) | |
tree | 1686850eb0db7cb1d67fea645a5b53ee40c01e1f | |
parent | b653de526b0a1cb7556ad744facae34b42c645e7 (diff) | |
download | drakx-backup-do-not-use-b8266795f0feff415261179120d70d0e6910cdfb.tar drakx-backup-do-not-use-b8266795f0feff415261179120d70d0e6910cdfb.tar.gz drakx-backup-do-not-use-b8266795f0feff415261179120d70d0e6910cdfb.tar.bz2 drakx-backup-do-not-use-b8266795f0feff415261179120d70d0e6910cdfb.tar.xz drakx-backup-do-not-use-b8266795f0feff415261179120d70d0e6910cdfb.zip |
forward better LAN vs wireless filtering
-rw-r--r-- | perl-install/c/stuff.xs.pl | 20 | ||||
-rw-r--r-- | perl-install/network/netconnect.pm | 4 |
2 files changed, 22 insertions, 2 deletions
diff --git a/perl-install/c/stuff.xs.pl b/perl-install/c/stuff.xs.pl index 26e6ce413..d30aff57f 100644 --- a/perl-install/c/stuff.xs.pl +++ b/perl-install/c/stuff.xs.pl @@ -23,6 +23,8 @@ print ' #include <sys/stat.h> #include <sys/utsname.h> #include <sys/mount.h> +#undef __USE_MISC +#include <linux/wireless.h> #include <linux/keyboard.h> #include <linux/kd.h> #include <linux/hdreg.h> @@ -405,6 +407,24 @@ hasNetDevice(device) OUTPUT: RETVAL + +int +isNetDeviceWirelessAware(device) + char * device + CODE: + struct iwreq ifr; + + int s = socket(AF_INET, SOCK_DGRAM, 0); + + memset(&ifr, 0, sizeof(ifr)); + strncpy(ifr.ifr_name, device, IFNAMSIZ); + RETVAL = ioctl(s, SIOCGIWNAME, &ifr) != -1; + close(s); + OUTPUT: + RETVAL + + + char* getNetDriver(char* device) ALIAS: diff --git a/perl-install/network/netconnect.pm b/perl-install/network/netconnect.pm index d4ff1ab1d..18f75b032 100644 --- a/perl-install/network/netconnect.pm +++ b/perl-install/network/netconnect.pm @@ -130,8 +130,8 @@ sub real_main { @all_cards = network::ethernet::get_eth_cards(); %eth_intf = network::ethernet::get_eth_cards_names(@all_cards); require list_modules; - my @wmodules = list_modules::category2modules('network/wireless'); - %eth_intf = map { $_->[0] => join(': ', $_->[0], $_->[2]) } grep { int(!$is_wireless) ^ member($_->[1], @wmodules) } @all_cards; + %eth_intf = map { $_->[0] => join(': ', $_->[0], $_->[2]) } + grep { $is_wireless ^ !c::isNetDeviceWirelessAware($_->[0]) } @all_cards; }; my $find_lan_module = sub { |