projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dropbear: register a config.change trigger
[openwrt.git]
/
package
/
network
/
services
/
dropbear
/
files
/
dropbear.init
diff --git
a/package/network/services/dropbear/files/dropbear.init
b/package/network/services/dropbear/files/dropbear.init
index
c909d28
..
9390833
100755
(executable)
--- a/
package/network/services/dropbear/files/dropbear.init
+++ b/
package/network/services/dropbear/files/dropbear.init
@@
-5,7
+5,7
@@
START=50
STOP=50
START=50
STOP=50
-
SERVICE_USE_PI
D=1
+
USE_PROC
D=1
NAME=dropbear
PROG=/usr/sbin/dropbear
NAME=dropbear
PROG=/usr/sbin/dropbear
@@
-13,7
+13,7
@@
PIDCOUNT=0
EXTRA_COMMANDS="killclients"
EXTRA_HELP=" killclients Kill ${NAME} processes except servers and yourself"
EXTRA_COMMANDS="killclients"
EXTRA_HELP=" killclients Kill ${NAME} processes except servers and yourself"
-dropbear_
start
()
+dropbear_
instance
()
{
append_ports()
{
{
append_ports()
{
@@
-21,7
+21,7
@@
dropbear_start()
local port="$2"
grep -qs "^ *$ifname:" /proc/net/dev || {
local port="$2"
grep -qs "^ *$ifname:" /proc/net/dev || {
-
append args "-p
$port"
+
procd_append_param command -p "
$port"
return
}
return
}
@@
-31,7
+31,7
@@
dropbear_start()
s/.* addr: *\([0-9a-f:\.]*\).*/\1/p
'
); do
s/.* addr: *\([0-9a-f:\.]*\).*/\1/p
'
); do
-
append args "-p
$addr:$port"
+
procd_append_param command -p "
$addr:$port"
done
}
done
}
@@
-43,48
+43,47
@@
dropbear_start()
config_get_bool enabled "${section}" enable 1
[ "${enabled}" -eq 0 ] && return 1
config_get_bool enabled "${section}" enable 1
[ "${enabled}" -eq 0 ] && return 1
- # verbose parameter
- local verbosed
- config_get_bool verbosed "${section}" verbose 0
-
# increase pid file count to handle multiple instances correctly
PIDCOUNT="$(( ${PIDCOUNT} + 1))"
# increase pid file count to handle multiple instances correctly
PIDCOUNT="$(( ${PIDCOUNT} + 1))"
- # prepare parameters (initialise with pid file)
local pid_file="/var/run/${NAME}.${PIDCOUNT}.pid"
local pid_file="/var/run/${NAME}.${PIDCOUNT}.pid"
- local args="-P $pid_file"
+
+ procd_open_instance
+ procd_set_param command "$PROG" -F -P "$pid_file"
+
+ # prepare parameters (initialise with pid file)
local val
local val
+
# A) password authentication
config_get_bool val "${section}" PasswordAuth 1
# A) password authentication
config_get_bool val "${section}" PasswordAuth 1
- [ "${val}" -eq 0 ] && append args "-s"
+ [ "${val}" -eq 0 ] && procd_append_param command -s
+
# B) listen interface and port
local port
local interface
config_get interface "${section}" Interface
# B) listen interface and port
local port
local interface
config_get interface "${section}" Interface
-
config_get interface "${interface}" ifnam
e "$interface"
+
[ -n "$interface" ] && network_get_device interfac
e "$interface"
config_get port "${section}" Port 22
append_ports "$interface" "$port"
# C) banner file
config_get val "${section}" BannerFile
config_get port "${section}" Port 22
append_ports "$interface" "$port"
# C) banner file
config_get val "${section}" BannerFile
- [ -f "${val}" ] &&
append args "-b
${val}"
+ [ -f "${val}" ] &&
procd_append_param command -b "
${val}"
# D) gatewayports
config_get_bool val "${section}" GatewayPorts 0
# D) gatewayports
config_get_bool val "${section}" GatewayPorts 0
- [ "${val}" -eq 1 ] &&
append args "-a"
+ [ "${val}" -eq 1 ] &&
procd_append_param command -a
# E) root password authentication
config_get_bool val "${section}" RootPasswordAuth 1
# E) root password authentication
config_get_bool val "${section}" RootPasswordAuth 1
- [ "${val}" -eq 0 ] &&
append args "-g"
+ [ "${val}" -eq 0 ] &&
procd_append_param command -g
# F) root login
config_get_bool val "${section}" RootLogin 1
# F) root login
config_get_bool val "${section}" RootLogin 1
- [ "${val}" -eq 0 ] &&
append args "-w"
+ [ "${val}" -eq 0 ] &&
procd_append_param command -w
# G) host keys
config_get val "${section}" rsakeyfile
# G) host keys
config_get val "${section}" rsakeyfile
- [ -f "${val}" ] &&
append args "-r
${val}"
+ [ -f "${val}" ] &&
procd_append_param command -r "
${val}"
config_get val "${section}" dsskeyfile
config_get val "${section}" dsskeyfile
- [ -f "${val}" ] &&
append args "-d
${val}"
+ [ -f "${val}" ] &&
procd_append_param command -d "
${val}"
- # execute program and return its exit code
- [ "${verbosed}" -ne 0 ] && echo "${initscript}: section ${section} starting ${PROG} ${args}"
- SERVICE_PID_FILE="$pid_file" service_start ${PROG} ${args}
+ procd_close_instance
}
keygen()
}
keygen()
@@
-110,30
+109,21
@@
keygen()
chmod 0700 /etc/dropbear
}
chmod 0700 /etc/dropbear
}
-start()
+start
_service
()
{
[ -s /etc/dropbear/dropbear_rsa_host_key -a \
-s /etc/dropbear/dropbear_dss_host_key ] || keygen
{
[ -s /etc/dropbear/dropbear_rsa_host_key -a \
-s /etc/dropbear/dropbear_dss_host_key ] || keygen
- include /lib/network
- scan_interfaces
+ . /lib/functions.sh
+ . /lib/functions/network.sh
+
config_load "${NAME}"
config_load "${NAME}"
- config_foreach dropbear_
start
dropbear
+ config_foreach dropbear_
instance
dropbear
}
}
-s
top
()
+s
ervice_triggers
()
{
{
- local pid_file pid_files
-
- pid_files=`ls /var/run/${NAME}.*.pid 2>/dev/null`
-
- [ -z "$pid_files" ] && return 1
-
- for pid_file in $pid_files; do
- SERVICE_PID_FILE="$pid_file" service_stop ${PROG} && {
- rm -f ${pid_file}
- }
- done
+ procd_add_config_trigger "dropbear" "/etc/init.d/dropbear" "restart"
}
killclients()
}
killclients()