OpenWrt – Diff between revs 2 and 3
?pathlinks?
Rev 2 | Rev 3 | |||
---|---|---|---|---|
Line 1... | Line 1... | |||
1 | #!/bin/sh |
1 | #!/bin/sh |
|
Line 2... | Line -... | |||
2 | |
- | ||
3 | wps_catch_credentials() { |
- | ||
4 | local iface ifaces ifc ifname ssid encryption key radio radios |
- | ||
5 | local found=0 |
- | ||
6 | |
- | ||
7 | . /usr/share/libubox/jshn.sh |
- | ||
8 | ubus -S -t 30 listen wps_credentials | while read creds; do |
- | ||
9 | json_init |
- | ||
10 | json_load "$creds" |
- | ||
11 | json_select wps_credentials || continue |
- | ||
12 | json_get_vars ifname ssid key encryption |
- | ||
13 | local ifcname="$ifname" |
- | ||
14 | json_init |
- | ||
15 | json_load "$(ubus -S call network.wireless status)" |
- | ||
16 | json_get_keys radios |
- | ||
17 | for radio in $radios; do |
- | ||
18 | json_select $radio |
- | ||
19 | json_select interfaces |
- | ||
20 | json_get_keys ifaces |
- | ||
21 | for ifc in $ifaces; do |
- | ||
22 | json_select $ifc |
- | ||
23 | json_get_vars ifname |
- | ||
24 | [ "$ifname" = "$ifcname" ] && { |
- | ||
25 | ubus -S call uci set "{\"config\":\"wireless\", \"type\":\"wifi-iface\", \ |
- | ||
26 | \"match\": { \"device\": \"$radio\", \"encryption\": \"wps\" }, \ |
- | ||
27 | \"values\": { \"encryption\": \"$encryption\", \ |
- | ||
28 | \"ssid\": \"$ssid\", \ |
- | ||
29 | \"key\": \"$key\" } }" |
- | ||
30 | ubus -S call uci commit '{"config": "wireless"}' |
- | ||
31 | ubus -S call uci apply |
- | ||
32 | } |
- | ||
33 | json_select .. |
- | ||
34 | done |
- | ||
35 | json_select .. |
- | ||
36 | json_select .. |
- | ||
37 | done |
- | ||
38 | done |
- | ||
39 | } |
- | ||
40 | |
2 | |
|
41 | if [ "$ACTION" = "pressed" -a "$BUTTON" = "wps" ]; then |
- | ||
42 | wps_done=0 |
3 | if [ "$ACTION" = "pressed" -a "$BUTTON" = "wps" ]; then |
|
43 | ubusobjs="$( ubus -S list hostapd.* )" |
4 | cd /var/run/hostapd |
|
44 | for ubusobj in $ubusobjs; do |
- | ||
45 | ubus -S call $ubusobj wps_start && wps_done=1 |
- | ||
46 | done |
5 | for socket in *; do |
|
47 | [ $wps_done = 0 ] || return 0 |
- | ||
48 | wps_done=0 |
- | ||
49 | ubusobjs="$( ubus -S list wpa_supplicant.* )" |
- | ||
50 | for ubusobj in $ubusobjs; do |
- | ||
51 | ifname="$(echo $ubusobj | cut -d'.' -f2 )" |
- | ||
52 | multi_ap="" |
- | ||
53 | if [ -e "/var/run/wpa_supplicant-${ifname}.conf.is_multiap" ]; then |
- | ||
54 | ubus -S call $ubusobj wps_start '{ "multi_ap": true }' && wps_done=1 |
- | ||
55 | else |
6 | [ -S "$socket" ] || continue |
|
56 | ubus -S call $ubusobj wps_start && wps_done=1 |
- | ||
57 | fi |
7 | hostapd_cli -i "$socket" wps_pbc |
|
58 | done |
- | ||
59 | [ $wps_done = 0 ] || wps_catch_credentials & |
8 | done |
|
Line 60... | Line 9... | |||
60 | fi |
9 | fi |