mirror of
https://github.com/openwrt/routing.git
synced 2025-02-24 00:25:07 +00:00
Compile tested: mips_24kc, arm_cortex-a9_vfpv3-d16, i386_pentium4, x86_64, i386_pentium-mmx, mipsel_24kc Signed-off-by: Patrick Grimm <patrick@lunatiki.de>
92 lines
2.3 KiB
Bash
92 lines
2.3 KiB
Bash
#!/bin/sh
|
|
# Copyright (C) 2016 OpenWrt.org
|
|
|
|
. /lib/functions.sh
|
|
. /usr/share/libubox/jshn.sh
|
|
. /lib/functions/olsrd2.sh
|
|
|
|
case "$1" in
|
|
list)
|
|
json_init
|
|
|
|
json_add_object "getVersion"
|
|
json_close_object
|
|
json_add_object "getLan"
|
|
json_close_object
|
|
json_add_object "getNode"
|
|
json_close_object
|
|
json_add_object "getNeighbors"
|
|
json_close_object
|
|
json_add_object "getAttached_network"
|
|
json_close_object
|
|
json_add_object "getRoute"
|
|
json_close_object
|
|
json_add_object "getGraph"
|
|
json_close_object
|
|
json_add_object "getDomain"
|
|
json_close_object
|
|
|
|
json_dump
|
|
;;
|
|
call)
|
|
case "$2" in
|
|
getVersion)
|
|
echo '/systeminfo json version /quit' | nc ::1 2009 2>/dev/null
|
|
;;
|
|
getLan)
|
|
echo '/olsrv2info json lan /quit' | nc ::1 2009 2>/dev/null
|
|
;;
|
|
getNode)
|
|
echo '/olsrv2info json node /quit' | nc ::1 2009 2>/dev/null
|
|
;;
|
|
getNeighbors)
|
|
domain="$(uci_get luci_olsr2 general domain)"
|
|
[ -z "$domain" ] || domain=".$domain"
|
|
json_init
|
|
json_add_array "neighbors"
|
|
OLDIFS="$IFS"
|
|
IFS=$'\n'
|
|
neighbor_status="$(echo '/nhdpinfo neighbor /quit' | nc ::1 2009 | cut -f 1,9,10,11,12)"
|
|
for neighbor in $neighbor_status; do
|
|
json_add_object 0
|
|
IFS="$OLDIFS"
|
|
i=1
|
|
for value in $neighbor ; do
|
|
case $i in
|
|
1) json_add_string "originator" "${value}"
|
|
network_get_neighbour_by_ip "${value}"
|
|
json_add_string "lladdr" "${lladdr}"
|
|
json_add_string "hostname" "${hostname}${domain}"
|
|
network_get_name_by_device interface $dev
|
|
json_add_string "interface" "${interface}"
|
|
;;
|
|
2) json_add_string "metric_in" "${value}";;
|
|
3) json_add_string "metric_in_raw" "${value}";;
|
|
4) json_add_string "metric_out" "${value}";;
|
|
5) json_add_string "metric_out_raw" "${value}";;
|
|
esac
|
|
i=$(( i + 1 ))
|
|
done
|
|
IFS=$'\n'
|
|
json_close_object
|
|
done
|
|
IFS="$OLDIFS"
|
|
json_close_array
|
|
json_dump
|
|
;;
|
|
getAttached_network)
|
|
echo '/olsrv2info json attached_network /quit' | nc ::1 2009 2>/dev/null
|
|
;;
|
|
getRoute)
|
|
echo '/netjsoninfo filter route ipv6_0' | nc ::1 2009 2>/dev/null
|
|
;;
|
|
getGraph)
|
|
echo '/netjsoninfo filter graph ipv6_0' | nc ::1 2009 2>/dev/null
|
|
;;
|
|
getDomain)
|
|
echo '/netjsoninfo domain' | nc ::1 2009 2>/dev/null
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|