4 # This script looks up radsec srv records in DNS for the one
5 # realm given as argument, and creates a server template based
6 # on that. It currently ignores weight markers, but does sort
7 # servers on priority marker, lowest number first.
8 # For host command this is column 5, for dig it is column 1.
11 echo "Usage: ${0} <realm>"
15 test -n "${1}" || usage
18 DIGCMD=$(command -v dig)
19 HOSTCMD=$(command -v host)
20 PRINTCMD=$(command -v printf)
23 ${DIGCMD} +short srv $SRV_HOST | sort -n -k1 |
25 set $line ; PORT=$3 ; HOST=$4
26 $PRINTCMD "\thost ${HOST%.}:${PORT}\n"
31 ${DIGCMD} +short naptr ${REALM} | grep x-eduroam:radius.tls | sort -n -k1 |
33 set $line ; TYPE=$3 ; HOST=$6
34 if [ "$TYPE" = "\"s\"" -o "$TYPE" = "\"S\"" ]; then
42 ${HOSTCMD} -t srv $SRV_HOST | sort -n -k5 |
44 set $line ; PORT=$7 ; HOST=$8
45 $PRINTCMD "\thost ${HOST%.}:${PORT}\n"
50 ${HOSTCMD} -t naptr ${REALM} | grep x-eduroam:radius.tls | sort -n -k5 |
52 set $line ; TYPE=$7 ; HOST=${10}
53 if [ "$TYPE" = "\"s\"" -o "$TYPE" = "\"S\"" ]; then
60 if [ -x "${DIGCMD}" ]; then
61 SERVERS=$(dig_it_naptr)
62 elif [ -x "${HOSTCMD}" ]; then
63 SERVERS=$(host_it_naptr)
65 echo "${0} requires either \"dig\" or \"host\" command."
69 if [ -n "${SERVERS}" ]; then
70 $PRINTCMD "server dynamic_radsec.${REALM} {\n${SERVERS}\n\ttype TLS\n}\n"
74 exit 10 # No server found.