declare -F msgutil_r &>/dev/null || function msgutil_r { local logserver=$1 local msgtype=$2 local msgstr=$3 local logfile=$4 if [ -z "$msgtype" ]; then msgtype="debug" fi if [ -n "$logserver" ];then logger -n $logserver -t xcat -p local4.$msgtype "$msgstr" if [ "$?" != "0" ];then exec 3<>/dev/udp/$logserver/514 >/dev/null;logger -s -t xcat -p local4.$msgtype "$msgstr" 2>&3 if [ "$?" != "0" ];then logger -s -t xcat -p local4.$msgtype "$msgstr" 2>&1|nc $logserver 514 >/dev/null 2>&1 if [ "$?" != "0" ];then logger -t xcat -p local4.$msgtype "$msgstr" fi fi fi else logger -t xcat -p local4.$msgtype "$msgstr" fi if [ -n "$logfile" ]; then local logdir="$(dirname $logfile)" if [ ! -d "$logdir" ]; then mkdir -p "$logdir" touch "$logfile" fi echo "$msgstr" >> $logfile fi } declare -F msgutil &>/dev/null || function msgutil { msgutil_r "" "$@" } declare -F updateflag &>/dev/null || function updateflag { awk -v master="$1" -v port="$2" -v flag="$3" 'BEGIN{ ns = "/inet/tcp/0/" master "/" port while(1) { if((ns |& getline) > 0) print $0 | "logger -t xcat -p local4.info" else { print "Retrying flag update" | "logger -t xcat -p local4.info" close(ns) system("sleep 10") } if($0 == "ready") print flag |& ns if($0 == "done") break } close(ns) exit 0 }' return 0 }