|
|
- #!/bin/sh /etc/rc.common
-
- START=99
- USE_PROCD=1
- BIN=/usr/sbin/openfortivpn
- CONFIG=/var/etc/openfortivpn.config
-
-
- validate_certs_section() {
- uci_load_validate openfortivpn certs "$1" "$2" \
- 'trusted_cert:string'
- }
-
- validate_openfortivpn_section() {
- uci_load_validate openfortivpn service "$1" "$2" \
- 'enabled:uinteger' \
- 'host:string' \
- 'port:uinteger' \
- 'username:string' \
- 'password:string' \
- 'set_routes:uinteger' \
- 'set_dns:uinteger' \
- 'pppd_use_peerdns:uinteger'
- }
-
- setup_certs() {
- [ "$2" = 0 ] || {
- echo "validation failed"
- return 1
- }
-
- [ -n "$trusted_cert" ] || return 0
- echo "trusted-cert = $trusted_cert" >> $CONFIG
- }
-
- setup_config() {
- [ "$2" = 0 ] || {
- echo "validation failed"
- return 1
- }
-
- [ "$enabled" -eq 0 ] && return 1
-
- mkdir -p /var/etc
- echo '# auto-generated config file from /etc/config/openfortivpn' > $CONFIG
-
- [ -n "$host" ] && echo "host = $host" >> $CONFIG
- [ -n "$port" ] && echo "port = $port" >> $CONFIG
- [ -n "$username" ] && echo "username = $username" >> $CONFIG
- [ -n "$password" ] && echo "password = $password" >> $CONFIG
- [ -n "$set_routes" ] && echo "set-routes = $set_routes" >> $CONFIG
- [ -n "$set_dns" ] && echo "set-dns = $set_dns" >> $CONFIG
- [ -n "$pppd_use_peerdns" ] && echo "pppd-use-peerdns = $pppd_use_peerdns" >> $CONFIG
- return 0
- }
-
- start_service() {
- config_load openfortivpn
- validate_openfortivpn_section openfortivpn setup_config || return
- config_foreach validate_certs_section certs setup_certs
-
- procd_open_instance
- procd_set_param stderr 1
- procd_set_param command $BIN -c $CONFIG --use-syslog
- procd_close_instance
- }
-
- service_triggers () {
- procd_add_reload_trigger "openfortivpn"
-
- procd_open_validate
- validate_openfortivpn_section
- validate_certs_section
- procd_close_validate
- }
|