-rw-r--r-- | noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc | 14 | ||||
-rw-r--r-- | noncore/net/wellenreiter/libwellenreiter/source/cardmode.hh | 1 |
2 files changed, 11 insertions, 4 deletions
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc b/noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc index 9e0a772..29dcc75 100644 --- a/noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc +++ b/noncore/net/wellenreiter/libwellenreiter/source/cardmode.cc @@ -130,8 +130,9 @@ int card_set_promisc_up (const char *device) err = ioctl(fd, SIOCSIFFLAGS, &ifr); if (err < 0) { perror("Could not access the interface, "); + close(fd); return 0; } /* Get the informations back from the interface to check if the flags are correct */ @@ -139,19 +140,21 @@ int card_set_promisc_up (const char *device) ioctl(fd, SIOCGIFFLAGS, &ifr); if (err < 0) { perror("Could not access the interface, "); + close(fd); return 0; } if(ifr.ifr_flags && IFF_UP) { - printf("%s is ok\n", device); + close(fd); return 1; } else { - printf("%s flags could not be set", device); + wl_logerr("Could not set promisc flag on %d", device); + close(fd); return 0; } } @@ -171,8 +174,9 @@ int card_set_channel (const char *device, int channel, int cardtype) struct iwreq ireq; int *ptr; /* Socket needed to use the iocall to */ fd = socket(AF_INET, SOCK_STREAM, 0); + if ( fd == -1 ) { return -1; } ptr = (int *) ireq.u.name; @@ -182,14 +186,16 @@ int card_set_channel (const char *device, int channel, int cardtype) strcpy(ireq.ifr_ifrn.ifrn_name, device); if (ioctl( fd, SIOCIWFIRSTPRIV + 0x8, &ireq)==0) { /* All was fine... */ - // close(fd); + close(fd); wl_loginfo("Set channel %d on interface %s",channel, device); return 1; } else - { /* iocall does not work */ + { + /* iocall does not work */ + close(fd); wl_logerr("Could not set channel %d on %s, check cardtype",channel, device); return 0; } } diff --git a/noncore/net/wellenreiter/libwellenreiter/source/cardmode.hh b/noncore/net/wellenreiter/libwellenreiter/source/cardmode.hh index 242d8c5..4a95956 100644 --- a/noncore/net/wellenreiter/libwellenreiter/source/cardmode.hh +++ b/noncore/net/wellenreiter/libwellenreiter/source/cardmode.hh @@ -11,8 +11,9 @@ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <sys/ioctl.h> +#include <unistd.h> #include <linux/if.h> #include <linux/wireless.h> #ifndef SIOCIWFIRSTPRIV |