WIP: JSONRPC server refactoring
Some checks reported errors
Pyxis/orion/feature%2Fjsonrpc-next Something is wrong with the build of this commit
Pyxis/orion/pipeline/head Something is wrong with the build of this commit
LaCanne/orion/pipeline/head Something is wrong with the build of this commit

This commit is contained in:
2019-02-12 10:17:06 +01:00
parent 0f0213c326
commit 713ca17c62
69 changed files with 13073 additions and 2728 deletions

View File

@ -0,0 +1,90 @@
#!/bin/bash
function rpcLogin() {
local IP=$1
local PORT=$2
local USER="$3"
local PASS="$4"
local RES=""
local cmd="curl"
local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/auth"
local opt="--silent --data"
local data="{ \"id\": 1, \"method\": \"login\", \"params\": [ \"$USER\", \"$PASS\" ] }"
res=$(${cmd} ${url} ${opt} "${data}")
echo ${res} | jq -Ma ".result"
}
function iwList()
{
local IP=$1
local PORT=$2
local IFACE=$3
local TOKEN="$4"
local cmd="curl"
local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/sys"
local opt="--silent --cookie sysauth=${TOKEN} --data"
local data="{ \"method\": \"wifi.getiwinfo\", \"params\": [ \"${IFACE}\" ] }"
res=$(${cmd} ${url} ${opt} "${data}")
echo ${res} |jq
}
function netDeviceInfo()
{
local IP=$1
local PORT=$2
local TOKEN="$3"
local cmd="curl"
local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/sys"
local opt="--silent --cookie sysauth=${TOKEN} --data"
local data="{ \"method\": \"net.deviceinfo\", \"params\": [ \"wlan0\" ]}"
res=$(${cmd} ${url} ${opt} "${data}")
echo ${res} |jq
}
function netDevices()
{
local IP=$1
local PORT=$2
local TOKEN="$3"
local cmd="curl"
local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/sys"
local opt="--silent --cookie sysauth=${TOKEN} --data"
local data="{ \"method\": \"net.devices\", \"params\": [] }"
res=$(${cmd} ${url} ${opt} "${data}")
echo ${res} |jq
}
function arpTable()
{
local IP=$1
local PORT=$2
local TOKEN="$3"
local cmd="curl"
local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/sys"
local opt="--silent --cookie sysauth=${TOKEN} --data"
local data="{ \"method\": \"net.arptable\", \"params\": [] }"
res=$(${cmd} ${url} ${opt} "${data}")
echo ${res} |jq
}
#FIXME USER PASS
authToken=$(rpcLogin 192.168.1.1 8080 root 'XXXXXX EDITE MOI')
#netDevices 192.168.1.1 8080 ${authToken}
#netDeviceInfo 192.168.1.1 8080 ${authToken}
#iwList 192.168.1.1 8080 wlan0 ${authToken}
#iwList 192.168.1.1 8080 wlan1 ${authToken}
adoles:

View File

@ -0,0 +1,38 @@
package main
import (
"bytes"
"fmt"
"log"
"os/exec"
)
func scanWifi(iface string) string {
command := "iwinfo"
opt := "scan"
var out bytes.Buffer
var stderr bytes.Buffer
fmt.Printf("Running %s command\n", command)
exe := exec.Command(command, iface, opt)
exe.Stdout = &out
exe.Stderr = &stderr
err := exe.Run()
if err != nil {
fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
log.Fatal(err)
}
return out.String()
}
func getCellInfo(iface string, ssidPrefix string) {
cells := scanWifi(iface)
fmt.Printf("%s\n", cells)
}
func main() {
getCellInfo("wlan1", "Base1")
}

View File

@ -0,0 +1,73 @@
#!/bin/bash
#
# Try to setup Kit !
#
function scanWifi() {
local iface=${1}
iwinfo ${iface} scan
return ${?}
}
function getWifiCell()
{
local iface=${1}
local ssidPrefix=${2}
res=$(scanWifi ${iface} | grep -B 1 "ESSID: \"${ssidPrefix}")
if [[ "${res}" == "Scanning not possible" ]] || [[ "${res}" == "" ]]
then
for try in $(seq 0 10)
do
sleep 5
res=$(scanWifi ${iface} | grep -B 1 "ESSID: \"${ssidPrefix}")
if [[ "${res}" == "Scanning not possible" ]] || [[ "${res}" == "" ]]
then
continue
else
echo ${res}
return 0
fi
done
echo "Error scanning wifi networks !"
return 2
else
echo ${res}
return 0
fi
}
function connectWifi() {
local iface=${1}
local ssidPrefix=${2}
local wpa=${3}
local cell=$(getWifiCell ${iface} ${ssidPrefix})
if [[ $? -ne 0 ]]
then
echo "Error on wifi scan !"
exit 12
fi
local ssid=$(echo ${cell} | awk '{print $7}' | sed -e 's/"//g')
local cellMAC=$(echo ${cell} | awk '{print $5}' | sed -e 's/"//g"')
set -x
uci delete wireless.@wifi-iface[1]
uci add wireless wifi-iface
uci set wireless.@wifi-iface[1].network="EmlidReach"
uci set wireless.@wifi-iface[1].ssid="${ssid}"
uci set wireless.@wifi-iface[1].encryption="psk2"
uci set wireless.@wifi-iface[1].device="radio1"
uci set wireless.@wifi-iface[1].mode="sta"
uci set wireless.@wifi-iface[1].bssid="${cellMAC}"
uci set wireless.@wifi-iface[1].key="${wpa}"
uci commit
reload_config
sleep 20
set +x
udhcpc -i ${iface}
}
# interface SSID_PREFIX Network_KEY
connectWifi "$1" "$2" "$3"

View File

@ -0,0 +1,26 @@
#!/bin/bash
function scanWifi()
{
local ifcace=$1
iwconfig ${iface} scan
function connectBoard()
{
uci delete wireless.@wifi-iface[1]
uci add wireless wifi-iface
uci set wireless.@wifi-iface[1].network="EmlidReach"
uci set wireless.@wifi-iface[1].ssid="Base1:2a:03"
uci set wireless.@wifi-iface[1].encryption="psk2"
uci set wireless.@wifi-iface[1].device="radio1"
uci set wireless.@wifi-iface[1].mode="sta"
uci set wireless.@wifi-iface[1].bssid="FC:DB:B3:7E:2A:03"
uci set wireless.@wifi-iface[1].key="basepyxis"
uci commit
reload_config
sleep 15
udhcpc -i wlan1
}
cells=$(scanWifi wlan1)