mirror of
https://github.com/openwrt/packages.git
synced 2025-12-10 12:41:22 +00:00
Iodine now uses a procd init.d service and output is sent to the system log. Two new options have been added: - debuglevel — increases the verbosity of debug output. - check_client_ip — controls whether to accept or reject queries from different IP addresses for the same login. This should be disabled if the recursive DNS server might send queries from varying IPs. However, disabling this option also makes replay attacks significantly easier. Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
53 lines
1.2 KiB
Bash
53 lines
1.2 KiB
Bash
#!/bin/sh /etc/rc.common
|
|
# Copyright (C) 2006-2011 OpenWrt.org
|
|
|
|
START=50
|
|
PROG=/usr/sbin/iodined
|
|
USE_PROCD=1
|
|
NAME=iodined
|
|
|
|
validate_section_iodined()
|
|
{
|
|
uci_load_validate iodined iodined "$1" "$2" \
|
|
'enable:bool:1' \
|
|
'address:cidr4' \
|
|
'password:string' \
|
|
'tunnelip:cidr4' \
|
|
'tld:string' \
|
|
'port:range(0,65535)' \
|
|
'debuglevel:range(0,6):0' \
|
|
'client_ip_check:bool:1'
|
|
}
|
|
|
|
iodined_instance()
|
|
{
|
|
[ "$2" = 0 ] || {
|
|
echo "validation failed"
|
|
return 1
|
|
}
|
|
|
|
[ "$enable" = "0" ] && return 1
|
|
|
|
procd_open_instance
|
|
procd_set_param command "$PROG" -f
|
|
[ -n "$address" ] && procd_append_param command -l "$address"
|
|
[ -n "$password" ] && procd_append_param command -P "$password"
|
|
[ -n "$port" ] && procd_append_param command -p "$port"
|
|
[ "$debuglevel" -gt 0 ] && procd_append_param command -$(printf 'D%.0s' $(seq $debuglevel))
|
|
[ "$client_ip_check" -eq 0 ] && procd_append_param command -c
|
|
procd_append_param command "$tunnelip" "$tld"
|
|
procd_set_param stdout 1
|
|
procd_set_param stderr 1
|
|
procd_close_instance
|
|
}
|
|
|
|
start_service () {
|
|
config_load "$NAME"
|
|
config_foreach validate_section_iodined iodined iodined_instance
|
|
}
|
|
|
|
service_triggers() {
|
|
procd_add_reload_trigger "$NAME"
|
|
procd_add_validation validate_section_iodined
|
|
}
|