]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
nfs/nfs-lib.sh: add anaconda_nfsv6_to_var()
authorHarald Hoyer <harald@redhat.com>
Thu, 2 Jul 2015 13:21:35 +0000 (15:21 +0200)
committerHarald Hoyer <harald@redhat.com>
Thu, 2 Jul 2015 13:24:03 +0000 (15:24 +0200)
add "nfs:[[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]]/path" style parsing

https://bugzilla.redhat.com/show_bug.cgi?id=1190098

modules.d/95nfs/nfs-lib.sh

index 77c03d938bf8cc921008e33c9dd81344e1b64538..58aa7e30add06897d14a561daafa826d07313d6a 100755 (executable)
@@ -15,6 +15,7 @@ nfs_to_var() {
     # FIXME: local netif=${2:-$netif}?
     case "$1" in
         nfs://*) rfc2224_nfs_to_var "$1" ;;
+        nfs:*[*) anaconda_nfsv6_to_var "$1" ;;
         nfs:*:*:/*) anaconda_nfs_to_var "$1" ;;
         *) nfsroot_to_var "$1" ;;
     esac
@@ -84,6 +85,23 @@ anaconda_nfs_to_var() {
     path="/${1##*:/}"
 }
 
+# IPv6 nfs path will be treated separately
+anaconda_nfsv6_to_var() {
+    nfs="nfs"
+    path="$1:"
+    options="${path#*:/}"
+    path="/${options%%:*}"
+    server="${1#*nfs:}"
+    if str_starts $server '['; then
+        server="${server%:/*}"
+        options="${options#*:*}"
+    else
+        server="${server%:/*}"
+        options="${server%%:*}"
+        server="${server#*:}"
+    fi
+}
+
 # nfsroot_from_dhcp NETIF
 # fill in missing server/path from DHCP options.
 nfsroot_from_dhcp() {