udptunnel: new package
[feed/packages.git] / net / openssh / files / sshd.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2006-2011 OpenWrt.org
3
4 START=50
5 STOP=50
6
7 USE_PROCD=1
8 PROG=/usr/sbin/sshd
9
10 start_service() {
11 for type in rsa ecdsa ed25519; do {
12 # check for keys
13 key=/etc/ssh/ssh_host_${type}_key
14 [ ! -f $key ] && {
15 # generate missing keys
16 [ -x /usr/bin/ssh-keygen ] && {
17 /usr/bin/ssh-keygen -N '' -t $type -f $key 2>&- >&-
18 }
19 }
20 }; done
21 mkdir -m 0700 -p /var/empty
22
23 local lport=`grep ^Port /etc/ssh/sshd_config | cut -d " " -f 2`
24 [ -z $lport ] && lport=22
25
26 procd_open_instance
27 procd_add_mdns "ssh" "tcp" "$lport"
28 procd_set_param command $PROG -D
29 procd_close_instance
30 }
31
32 shutdown() {
33 local pid
34 local pids
35 local pid_mine
36
37 stop
38
39 # kill active clients
40 pid_mine="$$"
41 pids="$(pidof sshd)"
42 for pid in $pids; do
43 [ "$pid" = "$pid_mine" ] && continue
44 [ -e "/proc/$pid/stat" ] && kill $pid
45 done
46 }