Browse Source

user id instead of ssid

Émile Morel 10 years ago
parent
commit
e2d0d921e2
3 changed files with 50 additions and 35 deletions
  1. 28 28
      conf/init_ynh-torclient
  2. 2 2
      scripts/install
  3. 20 5
      sources/controller.php

+ 28 - 28
conf/init_ynh-torclient

@@ -121,7 +121,7 @@ do_start() {
       set_nat
     fi
   fi
-  moulinette_set wifi_device_old $torclient_wifi_device
+  moulinette_set wifi_num_old $torclient_wifi_num
 }
 
 do_stop() {
@@ -177,41 +177,41 @@ fi
 
 echo "Retrieving Yunohost settings... "
 
-torclient_wifi_ssid=$(moulinette_torclient_get wifi_ssid)
-torclient_wifi_device_old=$(moulinette_torclient_get wifi_device_old)
-if [ "$torclient_wifi_ssid" == "notset" ] ; then
-  echo "[ERR] Essid is not set for torclient"
+torclient_wifi_num=$(moulinette_torclient_get wifi_num)
+if [ "$torclient_wifi_num" == "-1" ] ; then
+  echo "[ERR] SSID is not set for torclient"
   exit 1
 fi
-if [ "$torclient_wifi_device_old" == "notset" ] && [ "$1" == "stop" ] ; then
-  echo "Torclient never started"
-  exit 1
+if [ ${torclient_wifi_num} -eq 0 ]; then
+  torclient_wifi_device=$(moulinette_get wifi_device)
+else
+  torclient_wifi_device="hotspot${torclient_wifi_num}"
 fi
-IFS='|' read -a ynh_wifi_ssid <<< "$(moulinette_get wifi_ssid)"
-IFS='|' read -a ynh_wifi_prefix <<< "$(moulinette_get ip4_nat_prefix)"
-ynh_multissid=$(moulinette_get multissid)
-for i in $(seq 0 $((${ynh_multissid} - 1))); do
-  if [ ${ynh_wifi_ssid[$i]} == ${torclient_wifi_ssid} ] ; then
-    if [ ${i} -eq 0 ]; then
-      torclient_wifi_device=$(moulinette_get wifi_device)
-    else
-      torclient_wifi_device="hotspot${i}"
-    fi
-    torclient_wifi_prefix=${ynh_wifi_prefix[$i]}
-
-    echo "Torclient will be active on $torclient_wifi_device device and $torclient_wifi_ssid SSID"
-    break
-  fi
-done
-
 if [ ! $torclient_wifi_device ] ; then
-  echo "[ERR] SSID not found for torclient"
+  echo "[ERR] Device not found for torclient"
   exit 1
 fi
 
-echo "OK"
+torclient_wifi_num_old=$(moulinette_torclient_get wifi_num_old)
+if [ ${torclient_wifi_num_old} -eq 0 ]; then
+  torclient_wifi_device_old=$(moulinette_get wifi_device)
+else
+  torclient_wifi_device_old="hotspot${torclient_wifi_num_old}"
+fi
+if [ ! $torclient_wifi_device_old ] ; then
+  echo "[ERR] Old device not found for torclient"
+  exit 1
+fi
+if [ "$torclient_wifi_num_old" == "-1" ] && [ "$1" == "stop" ] ; then
+  echo "Torclient never started"
+  exit 1
+fi
 
-# Script
+IFS='|' read -a ynh_wifi_ssid <<< "$(moulinette_get wifi_ssid)"
+IFS='|' read -a ynh_wifi_prefix <<< "$(moulinette_get ip4_nat_prefix)"
+torclient_wifi_prefix=${ynh_wifi_prefix[$torclient_wifi_num]}
+torclient_wifi_ssid=${ynh_wifi_ssid[$torclient_wifi_num]}
+echo "Torclient will be active on $torclient_wifi_device device and $torclient_wifi_ssid SSID with $torclient_wifi_prefix prefix"
 
 case "$1" in
   start)

+ 2 - 2
scripts/install

@@ -94,8 +94,8 @@ sudo yunohost app ssowatconf
 sudo service tor stop
 sudo insserv -r tor
 #sudo service ynh-torclient start
-sudo yunohost app setting torclient wifi_ssid -v notset
-sudo yunohost app setting torclient wifi_device_old -v notset
+sudo yunohost app setting torclient wifi_num -v -1
+sudo yunohost app setting torclient wifi_num_old -v -1
 
 # Start tor client at boot 
 sudo insserv ynh-torclient

+ 20 - 5
sources/controller.php

@@ -42,14 +42,20 @@ dispatch('/', function() {
 
   $wifi_ssid_list='';
   $ssids = getArray(moulinette_get_hotspot('wifi_ssid'));
-  $wifi_ssid = moulinette_get('wifi_ssid');
+  $multissid = moulinette_get_hotspot('multissid');
+  $wifi_num = moulinette_get('wifi_num');
 
-  foreach ($ssids as $ssid){
-    $active = ($ssid == $wifi_ssid) ? 'class="active"' : '';
-    $wifi_ssid_list .= "<li $active><a href='#'>$ssid</a></li>\n";
+  for($i = 0; $i < $multissid; $i++) {
+    $active = ($i == $wifi_num) ? 'class="active"' : '';
+    $wifi_ssid_list .= "<li $active><a href='#'>$ssids[$i]</a></li>\n";
   }
   
-  set('wifi_ssid', $wifi_ssid);
+  if($wifi_num == -1) {
+    $ssid="";
+  } else {
+    $ssid=$ssids[$wifi_num];
+  }
+  set('wifi_ssid', $ssid);
   set('status', service_faststatus() == 0);
   set('wifi_ssid_list', $wifi_ssid_list);
 
@@ -59,7 +65,16 @@ dispatch('/', function() {
 dispatch_put('/settings', function() {
 
   $status = isset($_POST['status']) ? 1 : 0;
+  $ssids = getArray(moulinette_get_hotspot('wifi_ssid'));
   $wifi_ssid = $_POST['wifi_ssid'];
+  $interfaces = getArray(moulinette_get_hotspot('wifi_ssid'));
+  $multissid = moulinette_get_hotspot('multissid');
+
+  for($i = 0; $i < $multissid; $i++) {
+    if($ssids[$i] == $wifi_ssid) {
+      moulinette_set('wifi_num', $i);
+    }
+  }
 
   moulinette_set('status', $status);
   moulinette_set('wifi_ssid', $wifi_ssid);