]> 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 17:47:46 +0000 (19:47 +0200)
add "nfs:[[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]]/path" style parsing

https://bugzilla.redhat.com/show_bug.cgi?id=1190098
(cherry picked from commit ba665de454e7d6ef1da4ba95308fb9f65c7a9497)

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

index bf7d044b58fb539d2a089f1c2c14bbe283251c56..4f24f698f1b2b2dfc870a3b652e89ed92e2e7fdf 100755 (executable)
@@ -17,6 +17,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
@@ -86,6 +87,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() {