소스 검색

web: fix parsing IPv6 reolver addresses

Fixes: https://github.com/jitsi/docker-jitsi-meet/issues/1437
Saúl Ibarra Corretgé 2 년 전
부모
커밋
b212dca
1개의 변경된 파일19개의 추가작업 그리고 1개의 파일을 삭제
  1. 19 1
      web/rootfs/etc/cont-init.d/10-config

+ 19 - 1
web/rootfs/etc/cont-init.d/10-config

@@ -65,7 +65,25 @@ fi
 
 # Detect nameserver for Nginx, if not specified.
 if [[ -z "$NGINX_RESOLVER" ]]; then
-    export NGINX_RESOLVER=$(grep nameserver /etc/resolv.conf | cut -d" " -f2 | tr "\n" " " | sed -e "s/[[:space:]]*$//")
+    IP_LIST=""
+
+    # Parse IPs in /etc/resolv.conf, taking into account IPv6 addresses need to be
+    # enclosed in square brackets for the Nginx config file.
+    while read -r line; do
+        if [[ $line =~ ^nameserver.* ]]; then
+            IP=$(echo $line | cut -d" " -f2)
+            COLONS=$(echo $IP | tr -dc ":" | awk '{ print length '})
+            if [[ $COLONS -ge 2 ]]; then
+                IP="[$IP]"
+            fi
+            if [[ ! "$IP_LIST" = "" ]]; then
+                IP_LIST+=" "
+            fi
+            IP_LIST+="$IP"
+        fi
+    done < <(cat /etc/resolv.conf)
+
+    export NGINX_RESOLVER=$IP_LIST
 fi
 
 echo "Using Nginx resolver: =$NGINX_RESOLVER="