/*************************************************************************** * * tdenetman-wireless_network.cpp - A NetworkManager frontend for TDE * * Copyright (C) 2005, 2006 Novell, Inc. * * Author: Helmut Schaa , * * 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 * **************************************************************************/ // TDENM includes #include "tdenetman.h" #include "tdenetman-wireless_network.h" // TDE includes #include // TQt includes #include #include class WirelessNetworkPrivate { public: WirelessNetworkPrivate() : active(false) { } ~WirelessNetworkPrivate() { } bool active; TQ_UINT32 match; TQValueList aps; }; 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; } bool WirelessNetwork::contains (const TDENetworkWiFiAPInfo * const ap) { if ( (d->match & MATCH_SSID) && getSsid() != ap->SSID) { return false; } // AP matches return true; } bool WirelessNetwork::addAP(const TDENetworkWiFiAPInfo * const ap) { if ( this->contains( ap ) || d->aps.isEmpty()) { d->aps.append(ap); return true; } return false; } const TQByteArray WirelessNetwork::getSsid() const { if ( !d->aps.isEmpty() ) { return (*(d->aps.begin()))->SSID; } else { return TQByteArray(); } } TQString WirelessNetwork::getDisplaySsid() const { if (!d->aps.isEmpty()) { return (*(d->aps.begin()))->friendlySSID(); } else { return TQString(); } } TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags WirelessNetwork::getFlags() const { TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags flags = TDENetworkWiFiAPFlags::None; for (TQValueList::Iterator it = d->aps.begin(); it != d->aps.end(); ++it) { flags |= ((*it)->wpaFlags & TDENetworkWiFiAPFlags::GeneralFlagsMask); flags |= ((*it)->rsnFlags & TDENetworkWiFiAPFlags::GeneralFlagsMask); } return flags; } TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags WirelessNetwork::getWpaFlags() const { TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags flags = TDENetworkWiFiAPFlags::None; for (TQValueList::Iterator it = d->aps.begin(); it != d->aps.end(); ++it) { flags |= ((*it)->wpaFlags & TDENetworkWiFiAPFlags::EncryptionFlagsMask); } return flags; } TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags WirelessNetwork::getRsnFlags() const { TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags flags = TDENetworkWiFiAPFlags::None; for (TQValueList::Iterator it = d->aps.begin(); it != d->aps.end(); ++it) { flags |= ((*it)->rsnFlags & TDENetworkWiFiAPFlags::EncryptionFlagsMask); } return flags; } bool WirelessNetwork::isEncrypted() const { return (getFlags() & TDENetworkWiFiAPFlags::PrivacySupport); } TQ_UINT8 WirelessNetwork::getStrength() const { TQ_UINT8 strength = 0; for (TQValueList::Iterator it = d->aps.begin(); it != d->aps.end(); ++it) { if (((*it)->signalQuality*100.0) > strength) { strength = ((*it)->signalQuality*100.0); } } return strength; } void WirelessNetwork::setActive(bool a) { d->active=a; } bool WirelessNetwork::getActive() const { return d->active; }