sslh.init (1877B)
1 #!/bin/sh /etc/rc.common 2 # Copyright (C) 2009-2017 OpenWrt.org 3 4 START=95 5 6 # XXX: pid-files are useless because sslh forks after creating them 7 SERVICE_USE_PID= 8 9 start_instance() { 10 local section="$1" 11 12 # check if section is enabled (default) 13 local enable 14 config_get_bool enable "${section}" 'enable' '0' 15 [ ${enable} -gt 0 ] || return 1 16 17 local args="" 18 local val 19 # A) listen parameter 20 config_get vals "${section}" listen 21 [ -n "${vals}" ] && for val in $vals; do append args "-p${val}"; done 22 # B) ssh parameter 23 config_get val "${section}" ssh 24 [ -n "${val}" ] && append args "--ssh ${val}" 25 # C) ssl parameter 26 config_get val "${section}" ssl 27 [ -n "${val}" ] && append args "--ssl ${val}" 28 # D) openvpn parameter 29 config_get val "${section}" openvpn 30 [ -n "${val}" ] && append args "--openvpn ${val}" 31 # E) tinc parameter 32 config_get val "${section}" tinc 33 [ -n "${val}" ] && append args "--tinc ${val}" 34 # F) xmpp parameter 35 config_get val "${section}" xmpp 36 [ -n "${val}" ] && append args "--xmpp ${val}" 37 # G) timeout (before a connection is considered to be SSH) 38 config_get val "${section}" timeout 39 [ -n "${val}" ] && append args "-t ${val}" 40 # H) verbose parameter 41 local verbosed 42 config_get_bool verbosed "${section}" verbose 0 43 [ "${verbosed}" -ne 0 ] && append args "-v" 44 # I) sslh config file (cmd line args override file settings) 45 config_get val "${section}" configfile 46 [ -n "${val}" ] && append args "-F${val}" 47 48 # Defaults were removed for --user and --pidfile options 49 # in sslh 1.11; Define them here instead. 50 append args "--user nobody" 51 append args "--pidfile /var/run/sslh.pid" 52 53 # XXX: allow more that one instance to run simultaneously 54 SERVICE_MATCH_NAME=1 SERVICE_NAME="sslh-dummy-$$" \ 55 service_start /usr/sbin/sslh ${args} 56 } 57 58 start() { 59 config_load 'sslh' 60 config_foreach start_instance 'sslh' 61 } 62 63 stop() { 64 service_stop /usr/sbin/sslh 65 }