Browse Source

fix(systemadmin): handle error for no IPv6 route in `geteip` (#11458)

Marc Cornellà 1 year ago
parent
commit
e55e3f0f56
1 changed files with 7 additions and 1 deletions
  1. 7 1
      plugins/systemadmin/systemadmin.plugin.zsh

+ 7 - 1
plugins/systemadmin/systemadmin.plugin.zsh

@@ -140,7 +140,13 @@ function d0() {
 # gather external ip address
 function geteip() {
     curl -s -S -4 https://icanhazip.com
-    curl -s -S -6 https://icanhazip.com
+
+    # handle case when there is no IPv6 external IP, which shows error
+    # curl: (7) Couldn't connect to server
+    curl -s -S -6 https://icanhazip.com 2>/dev/null
+    local ret=$?
+    (( ret == 7 )) && print -P -u2 "%F{red}error: no IPv6 route to host%f"
+    return $ret
 }
 
 # determine local IP address(es)