You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
175 lines
4.2 KiB
175 lines
4.2 KiB
13 years ago
|
/***************************************************************************
|
||
|
*
|
||
12 years ago
|
* tdenetman-wireless_network.cpp - A NetworkManager frontend for KDE
|
||
13 years ago
|
*
|
||
|
* Copyright (C) 2005, 2006 Novell, Inc.
|
||
|
*
|
||
|
* Author: Helmut Schaa <hschaa@suse.de>, <Helmut.Schaa@gmx.de>
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License as published by
|
||
|
* the Free Software Foundation; either version 2 of the License, or
|
||
|
* (at your option) any later version.
|
||
|
*
|
||
|
* This program is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*
|
||
|
* You should have received a copy of the GNU General Public License
|
||
|
* along with this program; if not, write to the Free Software
|
||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
*
|
||
|
**************************************************************************/
|
||
|
|
||
|
// KNM includes
|
||
12 years ago
|
#include "tdenetman.h"
|
||
|
#include "tdenetman-wireless_network.h"
|
||
13 years ago
|
|
||
12 years ago
|
// TDE includes
|
||
13 years ago
|
#include <kdebug.h>
|
||
|
|
||
|
// TQt includes
|
||
|
#include <tqhostaddress.h>
|
||
|
#include <tqvaluelist.h>
|
||
|
|
||
|
class WirelessNetworkPrivate
|
||
|
{
|
||
|
public:
|
||
|
WirelessNetworkPrivate()
|
||
|
: active(false)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
~WirelessNetworkPrivate()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
bool active;
|
||
|
|
||
|
TQ_UINT32 match;
|
||
12 years ago
|
TQValueList<const TDENetworkWiFiAPInfo*> aps;
|
||
13 years ago
|
};
|
||
|
|
||
|
WirelessNetwork::WirelessNetwork(const WirelessNetwork& other)
|
||
|
{
|
||
|
d = new WirelessNetworkPrivate(*other.d);
|
||
|
}
|
||
|
|
||
|
WirelessNetwork::WirelessNetwork(TQ_UINT32 match)
|
||
|
{
|
||
|
d = new WirelessNetworkPrivate();
|
||
|
|
||
|
// which attributes have to match
|
||
|
d->match = match;
|
||
|
}
|
||
|
|
||
|
WirelessNetwork::~WirelessNetwork()
|
||
|
{
|
||
|
delete d;
|
||
|
}
|
||
|
|
||
|
WirelessNetwork& WirelessNetwork::operator= (const WirelessNetwork& other)
|
||
|
{
|
||
|
if (d)
|
||
|
delete d;
|
||
|
d = new WirelessNetworkPrivate(*other.d);
|
||
|
return *this;
|
||
|
}
|
||
|
|
||
12 years ago
|
bool WirelessNetwork::contains (const TDENetworkWiFiAPInfo * const ap)
|
||
13 years ago
|
{
|
||
12 years ago
|
if ( (d->match & MATCH_SSID) && getSsid() != ap->SSID) {
|
||
13 years ago
|
return false;
|
||
12 years ago
|
}
|
||
13 years ago
|
|
||
|
// AP matches
|
||
|
return true;
|
||
|
}
|
||
|
|
||
12 years ago
|
bool WirelessNetwork::addAP(const TDENetworkWiFiAPInfo * const ap)
|
||
13 years ago
|
{
|
||
12 years ago
|
if ( this->contains( ap ) || d->aps.isEmpty()) {
|
||
13 years ago
|
d->aps.append(ap);
|
||
|
return true;
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
const TQByteArray WirelessNetwork::getSsid() const
|
||
|
{
|
||
|
if ( !d->aps.isEmpty() ) {
|
||
12 years ago
|
return (*(d->aps.begin()))->SSID;
|
||
|
}
|
||
|
else {
|
||
13 years ago
|
return TQByteArray();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
TQString WirelessNetwork::getDisplaySsid() const
|
||
|
{
|
||
|
if (!d->aps.isEmpty()) {
|
||
12 years ago
|
return (*(d->aps.begin()))->friendlySSID();
|
||
|
}
|
||
|
else {
|
||
13 years ago
|
return TQString();
|
||
|
}
|
||
|
}
|
||
|
|
||
12 years ago
|
TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags WirelessNetwork::getFlags() const
|
||
13 years ago
|
{
|
||
12 years ago
|
TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags flags = TDENetworkWiFiAPFlags::None;
|
||
12 years ago
|
for (TQValueList<const TDENetworkWiFiAPInfo*>::Iterator it = d->aps.begin(); it != d->aps.end(); ++it) {
|
||
|
flags |= ((*it)->wpaFlags & TDENetworkWiFiAPFlags::GeneralFlagsMask);
|
||
|
flags |= ((*it)->rsnFlags & TDENetworkWiFiAPFlags::GeneralFlagsMask);
|
||
13 years ago
|
}
|
||
|
return flags;
|
||
|
}
|
||
|
|
||
12 years ago
|
TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags WirelessNetwork::getWpaFlags() const
|
||
13 years ago
|
{
|
||
12 years ago
|
TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags flags = TDENetworkWiFiAPFlags::None;
|
||
12 years ago
|
for (TQValueList<const TDENetworkWiFiAPInfo*>::Iterator it = d->aps.begin(); it != d->aps.end(); ++it)
|
||
13 years ago
|
{
|
||
12 years ago
|
flags |= ((*it)->wpaFlags & TDENetworkWiFiAPFlags::EncryptionFlagsMask);
|
||
13 years ago
|
}
|
||
|
return flags;
|
||
|
}
|
||
|
|
||
12 years ago
|
TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags WirelessNetwork::getRsnFlags() const
|
||
13 years ago
|
{
|
||
12 years ago
|
TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags flags = TDENetworkWiFiAPFlags::None;
|
||
12 years ago
|
for (TQValueList<const TDENetworkWiFiAPInfo*>::Iterator it = d->aps.begin(); it != d->aps.end(); ++it)
|
||
13 years ago
|
{
|
||
12 years ago
|
flags |= ((*it)->rsnFlags & TDENetworkWiFiAPFlags::EncryptionFlagsMask);
|
||
13 years ago
|
}
|
||
|
return flags;
|
||
|
}
|
||
|
|
||
|
bool WirelessNetwork::isEncrypted() const
|
||
|
{
|
||
12 years ago
|
return (getFlags() & TDENetworkWiFiAPFlags::PrivacySupport);
|
||
13 years ago
|
}
|
||
|
|
||
|
TQ_UINT8 WirelessNetwork::getStrength() const
|
||
|
{
|
||
|
TQ_UINT8 strength = 0;
|
||
12 years ago
|
for (TQValueList<const TDENetworkWiFiAPInfo*>::Iterator it = d->aps.begin(); it != d->aps.end(); ++it) {
|
||
|
if (((*it)->signalQuality*100.0) > strength) {
|
||
|
strength = ((*it)->signalQuality*100.0);
|
||
|
}
|
||
13 years ago
|
}
|
||
|
return strength;
|
||
|
}
|
||
|
|
||
|
void WirelessNetwork::setActive(bool a)
|
||
|
{
|
||
|
d->active=a;
|
||
|
}
|
||
|
|
||
|
bool WirelessNetwork::getActive() const
|
||
|
{
|
||
|
return d->active;
|
||
|
}
|
||
|
|