Skip to content

Commit 577bd1e

Browse files
committed
Store vector of WpaKeyManagement
1 parent 227b788 commit 577bd1e

File tree

2 files changed

+25
-25
lines changed

2 files changed

+25
-25
lines changed

src/linux/wpa-controller/ProtocolHostapd.cxx

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -87,54 +87,54 @@ Wpa::WpaPreSharedKeyPropertyKeyAndValue(const WpaPreSharedKey& wpaPreSharedKey)
8787
return std::make_pair(propertyName, std::move(propertyValue));
8888
}
8989

90-
WpaKeyManagement
90+
std::vector<WpaKeyManagement>
9191
Wpa::WpaKeyManagementFromPropertyValue(std::string_view wpaKeyManagementProperty) noexcept
9292
{
9393
std::string wpaKeyManagementString(wpaKeyManagementProperty);
9494
std::istringstream wpaKeyManagementStream(wpaKeyManagementString);
95-
WpaKeyManagement result{ WpaKeyManagement::Unknown };
95+
std::vector<WpaKeyManagement> wpaKeyManagements{};
9696

9797
for (std::string wpaKeyManagement; wpaKeyManagementStream >> wpaKeyManagement;) {
9898
if (wpaKeyManagement == "WPA-EAP") {
99-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::Ieee8021x));
99+
wpaKeyManagements.push_back(WpaKeyManagement::Ieee8021x);
100100
} else if (wpaKeyManagement == "WPA-PSK") {
101-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::Psk));
101+
wpaKeyManagements.push_back(WpaKeyManagement::Psk);
102102
} else if (wpaKeyManagement == "FT-EAP") {
103-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::FtIeee8021x));
103+
wpaKeyManagements.push_back(WpaKeyManagement::FtIeee8021x);
104104
} else if (wpaKeyManagement == "FT-PSK") {
105-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::FtPsk));
105+
wpaKeyManagements.push_back(WpaKeyManagement::FtPsk);
106106
} else if (wpaKeyManagement == "WPA-EAP-SHA256") {
107-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::Ieee8021xSha256));
107+
wpaKeyManagements.push_back(WpaKeyManagement::Ieee8021xSha256);
108108
} else if (wpaKeyManagement == "WPA-PSK-SHA256") {
109-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::PskSha256));
109+
wpaKeyManagements.push_back(WpaKeyManagement::PskSha256);
110110
} else if (wpaKeyManagement == "SAE") {
111-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::Sae));
111+
wpaKeyManagements.push_back(WpaKeyManagement::Sae);
112112
} else if (wpaKeyManagement == "FT-SAE") {
113-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::FtSae));
113+
wpaKeyManagements.push_back(WpaKeyManagement::FtSae);
114114
} else if (wpaKeyManagement == "OSEN") {
115-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::Osen));
115+
wpaKeyManagements.push_back(WpaKeyManagement::Osen);
116116
} else if (wpaKeyManagement == "WPA-EAP-SUITE-B") {
117-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::Ieee8021xSuiteB));
117+
wpaKeyManagements.push_back(WpaKeyManagement::Ieee8021xSuiteB);
118118
} else if (wpaKeyManagement == "WPA-EAP-SUITE-B-192") {
119-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::Ieee8021xSuiteB192));
119+
wpaKeyManagements.push_back(WpaKeyManagement::Ieee8021xSuiteB192);
120120
} else if (wpaKeyManagement == "FILS-SHA256") {
121-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::FilsSha256));
121+
wpaKeyManagements.push_back(WpaKeyManagement::FilsSha256);
122122
} else if (wpaKeyManagement == "FILS-SHA384") {
123-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::FilsSha384));
123+
wpaKeyManagements.push_back(WpaKeyManagement::FilsSha384);
124124
} else if (wpaKeyManagement == "FT-FILS-SHA256") {
125-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::FtFilsSha256));
125+
wpaKeyManagements.push_back(WpaKeyManagement::FtFilsSha256);
126126
} else if (wpaKeyManagement == "FT-FILS-SHA384") {
127-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::FtFilsSha384));
127+
wpaKeyManagements.push_back(WpaKeyManagement::FtFilsSha384);
128128
} else if (wpaKeyManagement == "OWE") {
129-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::Owe));
129+
wpaKeyManagements.push_back(WpaKeyManagement::Owe);
130130
} else if (wpaKeyManagement == "DPP") {
131-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::Dpp));
131+
wpaKeyManagements.push_back(WpaKeyManagement::Dpp);
132132
} else if (wpaKeyManagement == "FT-EAP-SHA384") {
133-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::FtIeee8021xSha384));
133+
wpaKeyManagements.push_back(WpaKeyManagement::FtIeee8021xSha384);
134134
} else if (wpaKeyManagement == "PASN") {
135-
result = static_cast<WpaKeyManagement>(std::to_underlying(result) | std::to_underlying(WpaKeyManagement::Pasn));
135+
wpaKeyManagements.push_back(WpaKeyManagement::Pasn);
136136
}
137137
}
138138

139-
return result;
139+
return wpaKeyManagements;
140140
}

src/linux/wpa-controller/include/Wpa/ProtocolHostapd.hxx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ struct HostapdBssConfiguration
548548
// std::optional<WpaPreSharedKey> MultiApBackhaulWpaPsk;
549549

550550
WpaSecurityProtocol Wpa;
551-
WpaKeyManagement WpaKeyMgmt;
551+
std::vector<WpaKeyManagement> WpaKeyMgmt;
552552
WpaCipher GroupCipher;
553553
WpaCipher RsnPairwiseCipher;
554554
WpaCipher WpaPairwiseCipher;
@@ -835,9 +835,9 @@ WpaKeyManagementPropertyValue(WpaKeyManagement wpaKeyManagement) noexcept
835835
* This string may have several whitespace-separated values, such as "WPA-PSK SAE".
836836
*
837837
* @param wpaKeyManagementProperty The hostapd property value string to convert.
838-
* @return WpaKeyManagement The corresponding WpaKeyManagement value.
838+
* @return std::vector<WpaKeyManagement> The corresponding WpaKeyManagement values.
839839
*/
840-
WpaKeyManagement
840+
std::vector<WpaKeyManagement>
841841
WpaKeyManagementFromPropertyValue(std::string_view wpaKeyManagementProperty) noexcept;
842842

843843
/**

0 commit comments

Comments
 (0)