lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

radsecproxy.init (3517B)


      1 #!/bin/sh /etc/rc.common
      2 # Copyright (C) 2006-2011 OpenWrt.org
      3 
      4 START=70
      5 
      6 USE_PROCD=1
      7 PROG=/usr/sbin/radsecproxy
      8 CONFFILE=/var/etc/radsecproxy.conf
      9 LIST_SEP="
     10 "
     11 append_params() {
     12 	local param
     13 	local value
     14 	local section="$1"
     15 	shift
     16 	for param in $*; do
     17 		config_get value "$section" "$param"
     18 		[ -z "$value" ] && {
     19 			param=$(echo $param | tr [A-Z] [a-z])
     20 			config_get value "$section" "$param"
     21 		}
     22 		IFS="$LIST_SEP"
     23 		for value in $value; do
     24 			[ -n "$value" ] && echo "    $param '$value'" >> "$CONFFILE"
     25 		done
     26 		unset IFS
     27 	done
     28 }
     29 
     30 append_bools() {
     31 	local param
     32 	local value
     33 	local section="$1"
     34 	shift
     35 	for param in $*; do
     36 		config_get_bool value "$section" "$param"
     37 		[ -z "$value" ] && {
     38 			param=$(echo $param | tr [A-Z] [a-z])
     39 			config_get_bool value "$section" "$param"
     40 		}
     41 		[ -n "$value" ] && {
     42 			[ "$value" -eq 0 ] && echo "    $param off" >> "$CONFFILE"
     43 			[ "$value" -eq 1 ] && echo "    $param on" >> "$CONFFILE"
     44 		}
     45 	done
     46 }
     47 
     48 radsecproxy_options() {
     49 	local cfg="$1"
     50 	append_params "$cfg" \
     51 		Include PidFile LogLevel LogDestination FTicksReporting FTicksMAC FTicksKey \
     52 		FTicksSyslogFacility ListenUDP ListenTCP ListenTLS ListenDTLS SourceUDP \
     53 		SourceTCP SourceTLS SourceDTLS TTLAttribute AddTTL
     54 	append_bools "$cfg" \
     55 		LoopPrevention IPv4Only IPv6Only
     56 }
     57 
     58 tls_block() {
     59 	local cfg="$1"
     60 	local name
     61 	config_get name "$cfg" name
     62 	echo "tls '$name' {" >> "$CONFFILE"
     63 	append_params "$cfg" \
     64 		Include CACertificateFile CACertificatePath certificateFile certificateKeyFile \
     65 		certificateKeyPassword cacheExpiry policyOID
     66 	append_bools "$cfg" \
     67 		CRLCheck
     68 	echo "}" >> "$CONFFILE"
     69 }
     70 
     71 rewrite_block() {
     72 	local cfg="$1"
     73 	local name
     74 	config_get name "$cfg" name
     75 	echo "rewrite '$name' {" >> "$CONFFILE"
     76 	append_params "$cfg" \
     77 		Include addAttribute addVendorAttribute removeAttribute removeVendorAttribute \
     78 		modifyAttribute
     79 	echo "}" >> "$CONFFILE"
     80 }
     81 
     82 client_block() {
     83 	local cfg="$1"
     84 	local name
     85 	config_get name "$cfg" name
     86 	echo "client '$name' {" >> "$CONFFILE"
     87 	append_params "$cfg" \
     88 		Include host type secret tls matchCertificateAttribute duplicateInterval \
     89 		AddTTL fticksVISCOUNTRY fticksVISINST rewrite rewriteIn rewriteOut \
     90 		rewriteAttribute
     91 	append_bools "$cfg" \
     92 		IPv4Only IPv6Only certificateNameCheck
     93 	echo "}" >> "$CONFFILE"
     94 }
     95 
     96 server_block() {
     97 	local cfg="$1"
     98 	local name
     99 	config_get name "$cfg" name
    100 	echo "server '$name' {" >> "$CONFFILE"
    101 	append_params "$cfg" \
    102 		Include host port type secret tls matchCertificateAttribute \
    103 		AddTTL rewrite rewriteIn rewriteOut retryCount dynamicLookupCommand \
    104 		retryInterval
    105 	append_bools "$cfg" \
    106 		IPv4Only IPv6Only certificateNameCheck statusServer LoopPrevention
    107 	echo "}" >> "$CONFFILE"
    108 }
    109 
    110 realm_block() {
    111 	local cfg="$1"
    112 	local name
    113 	config_get name "$cfg" name
    114 	echo "realm '$name' {" >> "$CONFFILE"
    115 	append_params "$cfg" \
    116 		Include server accountingServer replyMessage
    117 	append_bools "$cfg" \
    118 		accountingResponse
    119 	echo "}" >> "$CONFFILE"
    120 }
    121 
    122 start_service() {
    123 	mkdir -p $(dirname $CONFFILE)
    124 	echo "# auto-generated config file from /etc/config/radsecproxy" > $CONFFILE
    125 	config_load 'radsecproxy'
    126 	config_foreach radsecproxy_options options
    127 	config_foreach tls_block tls
    128 	config_foreach rewrite_block rewrite
    129 	config_foreach client_block client
    130 	config_foreach server_block server
    131 	config_foreach realm_block realm
    132 
    133 	procd_open_instance
    134 	procd_set_param command $PROG -f -c $CONFFILE
    135 	procd_set_param file $CONFFILE
    136 	procd_set_param respawn
    137 	procd_close_instance
    138 }
    139 
    140 service_triggers() {
    141 	procd_add_reload_trigger 'radsecproxy'
    142 }