diff --git a/1.6.md b/1.6.md index f33826e0..f7dbdb61 100644 --- a/1.6.md +++ b/1.6.md @@ -104,6 +104,10 @@ This is much faster than the default method. **Birthday**
- Fix stray `+` sign in output. +**Public IP**
+- Each source now has a timeout to avoid a hang. +- If the IP detection fails we try another method. + ### Image diff --git a/neofetch b/neofetch index 1040f515..ede5f7e5 100755 --- a/neofetch +++ b/neofetch @@ -1629,13 +1629,15 @@ getlocalip () { getpublicip () { if type -p dig >/dev/null 2>&1; then - publicip="$(dig +short myip.opendns.com @resolver1.opendns.com)" + publicip="$(dig +time=1 +tries=1 +short myip.opendns.com @resolver1.opendns.com 2>/dev/null)" + fi - elif type -p curl >/dev/null 2>&1; then - publicip="$(curl -w '\n' "$public_ip_host")" + if [ -z "$publicip" ] && type -p curl >/dev/null 2>&1; then + publicip="$(curl --max-time 10 -w '\n' "$public_ip_host" 2>/dev/null)" + fi - elif type -p wget >/dev/null 2>&1; then - publicip="$(wget -qO- "$public_ip_host"; printf "%s")" + if [ -z "$publicip" ] && type -p wget >/dev/null 2>&1; then + publicip="$(wget -T 10 -qO- "$public_ip_host" 2>/dev/null; printf "%s")" fi }