11u domain operatore name was a singleton but should be an array

Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
John Crispin
2021-10-11 09:05:21 +02:00
parent 4eb1560a2e
commit 8eb586bce2
4 changed files with 26 additions and 10 deletions

View File

@@ -310,7 +310,7 @@ set wireless.{{ section }}.iw_venue_type='{{ ssid.pass_point.venue_type }}'
add_list wireless.{{ section }}.iw_venue_url={{ s((n + 1) + ":" +url) }} add_list wireless.{{ section }}.iw_venue_url={{ s((n + 1) + ":" +url) }}
{% endfor %} {% endfor %}
set wireless.{{ section }}.iw_network_auth_type='{{ match_hs20_auth_type(ssid.pass_point.auth_type) }}' set wireless.{{ section }}.iw_network_auth_type='{{ match_hs20_auth_type(ssid.pass_point.auth_type) }}'
set wireless.{{ section }}.iw_domain_name={{ s(ssid.pass_point.domain_name) }} set wireless.{{ section }}.iw_domain_name={{ s(join(":", ssid.pass_point.domain_name)) }}
{% for (let realm in ssid.pass_point.nai_realm): %} {% for (let realm in ssid.pass_point.nai_realm): %}
add_list wireless.{{ section }}.iw_nai_realm='{{ realm }}' add_list wireless.{{ section }}.iw_nai_realm='{{ realm }}'
{% endfor %} {% endfor %}

View File

@@ -55,6 +55,8 @@ properties:
domain-name: domain-name:
description: description:
The IEEE 802.11u Domain Name. The IEEE 802.11u Domain Name.
type: array
items:
type: string type: string
format: hostname format: hostname
nai-realm: nai-realm:

View File

@@ -2844,6 +2844,8 @@ function instantiateInterfaceSsidPassPoint(location, value, errors) {
} }
function parseDomainName(location, value, errors) { function parseDomainName(location, value, errors) {
if (type(value) == "array") {
function parseItem(location, value, errors) {
if (type(value) == "string") { if (type(value) == "string") {
if (!matchHostname(value)) if (!matchHostname(value))
push(errors, [ location, "must be a valid hostname" ]); push(errors, [ location, "must be a valid hostname" ]);
@@ -2856,6 +2858,15 @@ function instantiateInterfaceSsidPassPoint(location, value, errors) {
return value; return value;
} }
return map(value, (item, i) => parseItem(location + "/" + i, item, errors));
}
if (type(value) != "array")
push(errors, [ location, "must be of type array" ]);
return value;
}
if (exists(value, "domain-name")) { if (exists(value, "domain-name")) {
obj.domain_name = parseDomainName(location + "/domain-name", value["domain-name"], errors); obj.domain_name = parseDomainName(location + "/domain-name", value["domain-name"], errors);
} }

View File

@@ -1126,8 +1126,11 @@
"maxLength": 2 "maxLength": 2
}, },
"domain-name": { "domain-name": {
"type": "array",
"items": {
"type": "string", "type": "string",
"format": "hostname" "format": "hostname"
}
}, },
"nai-realm": { "nai-realm": {
"type": "array", "type": "array",