import { md5 } from 'digest';
import * as fs from 'fs';
-import { append, append_raw, append_value, append_vars, append_string_vars, comment, push_config, set_default, touch_file } from 'wifi.common';
+import { append, append_raw, append_value, append_vars, append_list, append_string_vars, comment, push_config, set_default, touch_file } from 'wifi.common';
import * as netifd from 'wifi.netifd';
import * as iface from 'wifi.iface';
config.wmm_enabled = 1;
append_string_vars(config, [ 'ssid2' ]);
+ /* vendor_elements is a single concatenated hex blob, not one per line */
+ if (type(config.vendor_elements) == 'array')
+ config.vendor_elements = join('', config.vendor_elements);
+
append_vars(config, [
'ctrl_interface', 'ap_isolate', 'max_num_sta', 'ap_max_inactivity', 'airtime_bss_weight',
'airtime_bss_limit', 'airtime_sta_weight', 'bss_load_update_period', 'chan_util_avg_period',
append_vars(config, [ 'auth_server_port', 'auth_server_shared_secret' ]);
}
- append_vars(config, [ 'radius_auth_req_attr' ]);
+ append_list(config, [ 'radius_auth_req_attr' ]);
}
function iface_accounting_server(config) {
append_vars(config, [ 'acct_server_port', 'acct_server_shared_secret' ]);
}
- append_vars(config, [ 'radius_acct_req_attr' ]);
+ append_list(config, [ 'radius_acct_req_attr' ]);
}
function iface_auth_type(config, band) {
append_vars(config, [
'hs20', 'disable_dgaf', 'anqp_domain_id', 'hs20_deauth_req_timeout',
'hs20_wan_metrics', 'hs20_operating_class', 'hs20_t_c_filename', 'hs20_t_c_timestamp',
- 'hs20_t_c_server_url', 'hs20_conn_capab'
+ 'hs20_t_c_server_url'
]);
+ append_list(config, [ 'hs20_conn_capab' ]);
}
function iface_interworking(config) {
config.domain_name = join(',', config.domain_name);
if (config.anqp_3gpp_cell_net)
- config.domain_name = join(',', config.anqp_3gpp_cell_net);
+ config.anqp_3gpp_cell_net = join(';', config.anqp_3gpp_cell_net);
append_vars(config, [
'interworking', 'internet', 'asra', 'uesa', 'access_network_type', 'hessid', 'venue_group',
- 'venue_type', 'network_auth_type', 'gas_address3', 'roaming_consortium', 'anqp_elem', 'nai_realm',
- 'venue_name', 'venue_url', 'domain_name', 'anqp_3gpp_cell_net',
+ 'venue_type', 'network_auth_type', 'gas_address3', 'roaming_consortium',
+ 'domain_name', 'anqp_3gpp_cell_net',
]);
+ append_list(config, [ 'anqp_elem', 'nai_realm', 'venue_name', 'venue_url' ]);
}
export function generate(interface, data, config, vlans, stas, phy_features) {