123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #!/bin/sh
- . /usr/share/libubox/jshn.sh
- . /lib/functions.sh
- HOSTSFILE="-1"
- find_hosts_config() {
- local cfg="$1"
- config_get library "$cfg" library
- if [ "$library" != "olsrd_nameservice" ]; then
- return 1
- fi
- config_get hosts_file "$cfg" hosts_file
- HOSTSFILE=$hosts_file
- }
- load_hosts() {
- config_load olsrd
- config_foreach find_hosts_config LoadPlugin
- local hosts4=$(cat $HOSTSFILE)
- HOSTSFILE=""
- config_load olsrd6
- config_foreach find_hosts_config LoadPlugin
- if [ -f "$HOSTSFILE" ]; then
- local hosts6=$(cat "$HOSTSFILE")
- else
- local hosts6=""
- fi
- local hosts="$hosts4$hosts6"
- json_init
- json_add_string hosts "$hosts"
- json_dump
- }
- case "$1" in
- list)
- json_init
- json_add_object "getjsondata"
- json_add_string 'otable' 'String'
- json_add_int 'v4_port' 'Integer'
- json_add_int 'v6_port' 'Integer'
- json_close_object
- json_add_object "hasipip"
- json_close_object
- json_add_object "hosts"
- json_close_object
- json_dump
- ;;
- call)
- case "$2" in
- getjsondata)
- json_init
- json_load "$(cat)"
- json_get_var otable otable
- json_get_var v4_port v4_port
- json_get_var v6_port v6_port
- jsonreq4=$(echo "/${otable}" | nc 127.0.0.1 "${v4_port}" | sed -n '/^[}{ ]/p' 2>/dev/null)
- jsonreq6=$(echo "/${otable}" | nc ::1 "${v6_port}" | sed -n '/^[}{ ]/p' 2>/dev/null)
- json_init
- json_add_string "jsonreq4" "$jsonreq4"
- json_add_string "jsonreq6" "$jsonreq6"
- json_dump
- ;;
- hasipip)
- result=$(ls /etc/modules.d/ | grep -E "[0-9]*-ipip")
- json_init
- json_add_string "result" "$result"
- json_dump
- ;;
- hosts)
- load_hosts
- ;;
- esac
- ;;
- esac
|