logger --distcc "[INFO] Got host: $i"
echo "$i" >> $BASEDIR/distcc/hosts_new
done
- [ -s "$BASEDIR/distcc/hosts_new" ] && mv -f $BASEDIR/distcc/hosts{_new,}
+ [ -s "$BASEDIR/distcc/hosts_new" ] && cat $BASEDIR/distcc/hosts_new | \
+ distcc_test_hosts > $BASEDIR/distcc/hosts
+}
+
+distcc_test_hosts() {
+ while read i; do
+ if [ "${i}" = "localhost" ] || [ "${i:0:2}" = "--" ]; then
+ echo ${i}
+ continue
+ fi
+
+ i=${i%,lzo}
+ host=$(awk -F: '{ print $1 }' <<<${i})
+ jobs=${i##*/}
+ port=$(awk -F: '{ print $2 }' <<<${i} | awk -F/ '{ print $1 }')
+ ip=$($BASEDIR/tools/resolver $host)
+
+ if ping -c3 -w5 ${ip} &>/dev/null; then
+ if [ -n "$(which netcat)" ]; then
+ if (echo | netcat -w 5 ${ip} ${port} 2>/dev/null); then
+ echo "${ip}:${port}/${jobs},lzo # ${host}"
+ else
+ echo "# Host $host ($ip) is reachable but distcc does not respond."
+ fi
+ continue
+ fi
+ echo "${ip}:${port}/${jobs},lzo # ${host}"
+ else
+ echo "# Host $host ($ip) is not reachable."
+ fi
+ done
}
distcc_reload() {