|
|
- #!/bin/sh /etc/rc.common
- # Copyright (C) 2006-2011 OpenWrt.org
-
- START=70
-
- USE_PROCD=1
- PROG=/usr/sbin/radsecproxy
- CONFFILE=/var/etc/radsecproxy.conf
- LIST_SEP="
- "
- append_params() {
- local param
- local value
- local section="$1"
- shift
- for param in $*; do
- config_get value "$section" "$param"
- [ -z "$value" ] && {
- param=$(echo $param | tr [A-Z] [a-z])
- config_get value "$section" "$param"
- }
- IFS="$LIST_SEP"
- for value in $value; do
- [ -n "$value" ] && echo " $param '$value'" >> "$CONFFILE"
- done
- unset IFS
- done
- }
-
- append_bools() {
- local param
- local value
- local section="$1"
- shift
- for param in $*; do
- config_get_bool value "$section" "$param"
- [ -z "$value" ] && {
- param=$(echo $param | tr [A-Z] [a-z])
- config_get_bool value "$section" "$param"
- }
- [ -n "$value" ] && {
- [ "$value" -eq 0 ] && echo " $param off" >> "$CONFFILE"
- [ "$value" -eq 1 ] && echo " $param on" >> "$CONFFILE"
- }
- done
- }
-
- radsecproxy_options() {
- local cfg="$1"
- append_params "$cfg" \
- Include PidFile LogLevel LogDestination FTicksReporting FTicksMAC FTicksKey \
- FTicksSyslogFacility ListenUDP ListenTCP ListenTLS ListenDTLS SourceUDP \
- SourceTCP SourceTLS SourceDTLS TTLAttribute AddTTL
- append_bools "$cfg" \
- LoopPrevention IPv4Only IPv6Only
- }
-
- tls_block() {
- local cfg="$1"
- local name
- config_get name "$cfg" name
- echo "tls '$name' {" >> "$CONFFILE"
- append_params "$cfg" \
- Include CACertificateFile CACertificatePath certificateFile certificateKeyFile \
- certificateKeyPassword cacheExpiry policyOID
- append_bools "$cfg" \
- CRLCheck
- echo "}" >> "$CONFFILE"
- }
-
- rewrite_block() {
- local cfg="$1"
- local name
- config_get name "$cfg" name
- echo "rewrite '$name' {" >> "$CONFFILE"
- append_params "$cfg" \
- Include addAttribute addVendorAttribute removeAttribute removeVendorAttribute \
- modifyAttribute
- echo "}" >> "$CONFFILE"
- }
-
- client_block() {
- local cfg="$1"
- local name
- config_get name "$cfg" name
- echo "client '$name' {" >> "$CONFFILE"
- append_params "$cfg" \
- Include host type secret tls matchCertificateAttribute duplicateInterval \
- AddTTL fticksVISCOUNTRY fticksVISINST rewrite rewriteIn rewriteOut \
- rewriteAttribute
- append_bools "$cfg" \
- IPv4Only IPv6Only certificateNameCheck
- echo "}" >> "$CONFFILE"
- }
-
- server_block() {
- local cfg="$1"
- local name
- config_get name "$cfg" name
- echo "server '$name' {" >> "$CONFFILE"
- append_params "$cfg" \
- Include host port type secret tls matchCertificateAttribute \
- AddTTL rewrite rewriteIn rewriteOut retryCount dynamicLookupCommand \
- retryInterval
- append_bools "$cfg" \
- IPv4Only IPv6Only certificateNameCheck statusServer LoopPrevention
- echo "}" >> "$CONFFILE"
- }
-
- realm_block() {
- local cfg="$1"
- local name
- config_get name "$cfg" name
- echo "realm '$name' {" >> "$CONFFILE"
- append_params "$cfg" \
- Include server accountingServer replyMessage
- append_bools "$cfg" \
- accountingResponse
- echo "}" >> "$CONFFILE"
- }
-
- start_service() {
- mkdir -p $(dirname $CONFFILE)
- echo "# auto-generated config file from /etc/config/radsecproxy" > $CONFFILE
- config_load 'radsecproxy'
- config_foreach radsecproxy_options options
- config_foreach tls_block tls
- config_foreach rewrite_block rewrite
- config_foreach client_block client
- config_foreach server_block server
- config_foreach realm_block realm
-
- procd_open_instance
- procd_set_param command $PROG -f -c $CONFFILE
- procd_set_param file $CONFFILE
- procd_set_param respawn
- procd_close_instance
- }
-
- service_triggers() {
- procd_add_reload_trigger 'radsecproxy'
- }
|