#! /bin/sh # $AdminSVN$ # optional -f argment to force a re-guess if [ "x$1" = "x-f" ]; then rm -f /etc/clusteradm/site fi if [ -f /etc/clusteradm/site ]; then cat /etc/clusteradm/site exit 0 fi site="" if [ -z "$site" ]; then hn=$(hostname | tr A-Z a-z) case "$hn" in *.isc.freebsd.org) site="isc" ;; *.ysv.freebsd.org) site="ysv" ;; *.bme.freebsd.org) site="ysv" ;; *.nyi.freebsd.org) site="nyi" ;; esac fi if [ -z "$site" ]; then def6=$(route get -inet6 default 2>/dev/null | awk '$1 == "interface:" {print $2}') def4=$(route get default 2>/dev/null | awk '$1 == "interface:" {print $2}') def="$def6" if [ -z "$def" ]; then def="$def4" fi if [ -z "$def" ]; then # take a shot at parsing netstat -rn.. kind of a long shot - variable fields and it changes def=$(netstat -rn | awk '$1 == "default" {print $NF}' | head -1) fi if [ -n "$def" ]; then site=$(ifconfig $def | awk ' $1 == "inet" && $2 ~ /^8\.8\.178\./ { print "ysv"; exit 0;} # ysv main $1 == "inet" && $2 ~ /^216\.115\.101\./ { print "ysv"; exit 0;} # ysv transit $1 == "inet6" && $2 ~ /^2001:1900:2254:/ { print "ysv"; exit 0;} # ysv v6 $1 == "inet" && $2 ~ /^96\.47\.72\./ { print "nyi"; exit 0;} # nyi main $1 == "inet" && $2 ~ /^96\.47\.66\./ { print "nyi"; exit 0;} # nyi transit $1 == "inet6" && $2 ~ /^2610:1c1:1:/ { print "nyi"; exit 0;} # nyi v6 $1 == "inet" && $2 ~ /^149\.20\.53\./ { print "isc"; exit 0;} # isc main $1 == "inet" && $2 ~ /^149\.20\.49\./ { print "isc"; exit 0;} # isc transit $1 == "inet6" && $2 ~ /^2001:4f8:3:ffe0:/ { print "isc"; exit 0;} # isc v6 $1 == "inet" && $2 ~ /^213\.138\.116\./ { print "bme"; exit 0} # bme transit + main $1 == "inet6" && $2 ~ /^2001:41c8:112:/ { print "bme"; exit 0} # bme v6 ') fi fi if [ -z "$site" ]; then j=$(sysctl -n security.jail.jailed 2>/dev/null) if [ "x$j" = "x1" ]; then site="unknownjail" fi fi if [ -z "$site" ]; then site="unknown" fi rm -f /etc/clusteradm/site echo $site > /etc/clusteradm/site echo $site