35 lines
675 B
Bash
Executable File
35 lines
675 B
Bash
Executable File
#! /bin/sh
|
|
|
|
. ./common.inc
|
|
|
|
try_resolution() {
|
|
exec alarmer 5 dig +tries=2 +time=3 +short resolver1.opendns.com \
|
|
| egrep '^208[.]67[.]' > /dev/null 2>&1
|
|
}
|
|
|
|
try_http_query() {
|
|
exec alarmer 5 curl -m 5 http://www.opendns.com 2>/dev/null | \
|
|
fgrep -ic OpenDNS > /dev/null 2>&1
|
|
}
|
|
|
|
try_everything() {
|
|
try_resolution &
|
|
resolution_pid=$!
|
|
try_http_query &
|
|
http_query_pid=$!
|
|
wait $resolution_pid
|
|
resolution_ret=$?
|
|
if [ $resolution_ret != 0 ]; then
|
|
return 1
|
|
fi
|
|
wait $http_query_pid
|
|
http_query_ret=$?
|
|
[ $resolution_ret = 0 -a $http_query_ret = 0 ]
|
|
}
|
|
|
|
try_everything_with_retries() {
|
|
try_everything || try_everything
|
|
}
|
|
|
|
try_everything_with_retries
|