~ubuntu-branches/ubuntu/precise/networkmanagement/precise

« back to all changes in this revision

Viewing changes to libs/internals/settings/802-11-wireless-security.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Felix Geyer
  • Date: 2011-10-23 14:00:13 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20111023140013-e38hdzybcg6zndrk
Tags: 0.9~svngit.nm09.20111023.ff842e-0ubuntu1
* New upstream snapshot.
* Drop all patches, merged upstream.
* Add kubuntu_add_subdirectory_po.diff to build the translations.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
// All changes you do to this file will be lost.
3
3
 
4
4
#include "802-11-wireless-security.h"
5
 
#include "802-11-wireless-securitysecrets.h"
6
5
 
7
6
using namespace Knm;
8
7
 
9
 
WirelessSecuritySetting::WirelessSecuritySetting() : Setting(Setting::WirelessSecurity)
10
 
                                                     , mSecurityType(WirelessSecuritySetting::EnumSecurityType::None), mKeymgmt(0), mWeptxkeyindex(0), mAuthalg(0), mWepKeyType(None)
 
8
WirelessSecuritySetting::WirelessSecuritySetting()
 
9
    : Setting(Setting::WirelessSecurity), mSecurityType(WirelessSecuritySetting::EnumSecurityType::None), mKeymgmt(0),
 
10
    mWeptxkeyindex(0), mAuthalg(0), mWepKeyType(None), mWepkeyflags(Setting::AgentOwned), mPskflags(Setting::AgentOwned), mLeappasswordflags(Setting::AgentOwned)
11
11
{
12
 
    m_secretsObject = new WirelessSecuritySecrets(this);
13
12
}
14
13
 
15
14
WirelessSecuritySetting::WirelessSecuritySetting(WirelessSecuritySetting *setting) : Setting(setting)
16
15
{
17
 
    m_secretsObject = new WirelessSecuritySecrets(static_cast<WirelessSecuritySecrets*>(setting->getSecretsObject()), this);
18
16
    setSecurityType(setting->securityType());
19
17
    setKeymgmt(setting->keymgmt());
20
18
    setWeptxkeyindex(setting->weptxkeyindex());
43
41
{
44
42
  return QLatin1String("802-11-wireless-security");
45
43
}
46
 
bool WirelessSecuritySetting::hasSecrets() const
47
 
{
48
 
    if (isNull())
49
 
        return false;
50
 
    switch (mSecurityType)
51
 
    {
52
 
        case EnumSecurityType::None:
53
 
        case EnumSecurityType::DynamicWep:
54
 
        case EnumSecurityType::WpaEap:
55
 
        case EnumSecurityType::Wpa2Eap:
56
 
            return false;
57
 
        case EnumSecurityType::StaticWep:
58
 
        case EnumSecurityType::Leap:
59
 
        case EnumSecurityType::WpaPsk:
60
 
        case EnumSecurityType::Wpa2Psk:
61
 
        default:
62
 
            return true;
63
 
    }
64
 
}
65
44
 
66
45
void WirelessSecuritySetting::reset()
67
46
{
84
63
    mWepKeyType = None;
85
64
}
86
65
 
87
 
void WirelessSecuritySetting::setSecrets(Setting::secretsTypes types)
88
 
{
89
 
    switch (mSecurityType)
90
 
    {
91
 
        case EnumSecurityType::StaticWep:
92
 
            setWepkeyflags(types);
93
 
            break;
94
 
        case EnumSecurityType::WpaPsk:
95
 
            setPskflags(types);
96
 
            break;
97
 
        case EnumSecurityType::Leap:
98
 
            setLeappasswordflags(types);
99
 
            break;
100
 
        default:
101
 
            break;
102
 
    }
 
66
QMap<QString,QString> WirelessSecuritySetting::secretsToMap() const
 
67
{
 
68
    QMap<QString,QString> map;
 
69
    if (wepkeyflags().testFlag(Setting::AgentOwned)) {
 
70
        map.insert(QLatin1String("wepkey0"), wepkey0());
 
71
        map.insert(QLatin1String("wepkey1"), wepkey1());
 
72
        map.insert(QLatin1String("wepkey2"), wepkey2());
 
73
        map.insert(QLatin1String("wepkey3"), wepkey3());
 
74
    }
 
75
    if (pskflags().testFlag(Setting::AgentOwned)) {
 
76
        map.insert(QLatin1String("psk"), psk());
 
77
    }
 
78
    if (leappasswordflags().testFlag(Setting::AgentOwned)) {
 
79
        map.insert(QLatin1String("leappassword"), leappassword());
 
80
    }
 
81
    return map;
 
82
}
 
83
 
 
84
void WirelessSecuritySetting::secretsFromMap(QMap<QString,QString> secrets)
 
85
{
 
86
    setWepkey0(secrets.value("wepkey0"));
 
87
    setWepkey1(secrets.value("wepkey1"));
 
88
    setWepkey2(secrets.value("wepkey2"));
 
89
    setWepkey3(secrets.value("wepkey3"));
 
90
    setPsk(secrets.value("psk"));
 
91
    setLeappassword(secrets.value("leappassword"));
 
92
    setSecretsAvailable(true);
 
93
}
 
94
 
 
95
QStringList WirelessSecuritySetting::needSecrets() const
 
96
{
 
97
    QStringList list;
 
98
    switch (securityType())
 
99
    {
 
100
        case WirelessSecuritySetting::EnumSecurityType::None:
 
101
        case WirelessSecuritySetting::EnumSecurityType::DynamicWep:
 
102
            break;
 
103
        case WirelessSecuritySetting::EnumSecurityType::StaticWep:
 
104
            if (!wepkeyflags().testFlag(Setting::NotRequired)) {
 
105
                switch (weptxkeyindex())
 
106
                {
 
107
                    case 0:
 
108
                        if (wepkey0().isEmpty())
 
109
                            list.append("wepkey0");
 
110
                        break;
 
111
                    case 1:
 
112
                        if (wepkey1().isEmpty())
 
113
                            list.append("wepkey1");
 
114
                        break;
 
115
                    case 2:
 
116
                        if (wepkey2().isEmpty())
 
117
                            list.append("wepkey2");
 
118
                        break;
 
119
                    case 3:
 
120
                        if (wepkey3().isEmpty())
 
121
                            list.append("wepkey3");
 
122
                        break;
 
123
                }
 
124
            }
 
125
 
 
126
            break;
 
127
        case WirelessSecuritySetting::EnumSecurityType::WpaPsk:
 
128
        case WirelessSecuritySetting::EnumSecurityType::Wpa2Psk:
 
129
            if (psk().isEmpty() && !pskflags().testFlag(Setting::NotRequired))
 
130
                list.append("psk");
 
131
            break;
 
132
        case WirelessSecuritySetting::EnumSecurityType::Leap:
 
133
            if (leappassword().isEmpty() && !leappasswordflags().testFlag(Setting::NotRequired))
 
134
                list.append("leappassword");
 
135
            break;
 
136
    }
 
137
    return list;
 
138
}
 
139
 
 
140
bool WirelessSecuritySetting::hasPersistentSecrets() const
 
141
{
 
142
    bool hasSecrets = false;
 
143
    switch (securityType())
 
144
    {
 
145
        case WirelessSecuritySetting::EnumSecurityType::None:
 
146
        case WirelessSecuritySetting::EnumSecurityType::DynamicWep:
 
147
            break;
 
148
        case WirelessSecuritySetting::EnumSecurityType::StaticWep:
 
149
            if (wepkeyflags().testFlag(Setting::None) || wepkeyflags().testFlag(Setting::AgentOwned))
 
150
                hasSecrets = true;
 
151
            break;
 
152
        case WirelessSecuritySetting::EnumSecurityType::WpaPsk:
 
153
        case WirelessSecuritySetting::EnumSecurityType::Wpa2Psk:
 
154
            if (pskflags().testFlag(Setting::None) || pskflags().testFlag(Setting::AgentOwned))
 
155
                hasSecrets = true;
 
156
            break;
 
157
        case WirelessSecuritySetting::EnumSecurityType::Leap:
 
158
            if (leappasswordflags().testFlag(Setting::None) || leappasswordflags().testFlag(Setting::AgentOwned))
 
159
                hasSecrets = true;
 
160
            break;
 
161
    }
 
162
    return hasSecrets;
103
163
}