diff options
author | felixdoerre <[email protected]> | 2021-10-20 19:40:00 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2021-10-20 10:40:00 -0700 |
commit | 6cb5e1e7591da20af3a15793e022345a73e40fb7 (patch) | |
tree | e551321c59b8f42b884282b745d0de69fad2ae62 /tests/zfs-tests | |
parent | a4cecfbdc96faa5c9887f9ceb7d233acde75223f (diff) |
libshare: nfs: pass through ipv6 addresses in bracket notation
Recognize when the host part of a sharenfs attribute is an ipv6
Literal and pass that through without modification.
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Felix Dörre <[email protected]>
Closes: #11171
Closes #11939
Closes: #1894
Diffstat (limited to 'tests/zfs-tests')
3 files changed, 82 insertions, 1 deletions
diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_share/Makefile.am b/tests/zfs-tests/tests/functional/cli_root/zfs_share/Makefile.am index bf33ed038..35332f822 100644 --- a/tests/zfs-tests/tests/functional/cli_root/zfs_share/Makefile.am +++ b/tests/zfs-tests/tests/functional/cli_root/zfs_share/Makefile.am @@ -14,6 +14,7 @@ dist_pkgdata_SCRIPTS = \ zfs_share_010_neg.ksh \ zfs_share_011_pos.ksh \ zfs_share_012_pos.ksh \ + zfs_share_013_pos.ksh \ zfs_share_concurrent_shares.ksh dist_pkgdata_DATA = \ diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_share/zfs_share_007_neg.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_share/zfs_share_007_neg.ksh index 29ca9a143..c64157cee 100755 --- a/tests/zfs-tests/tests/functional/cli_root/zfs_share/zfs_share_007_neg.ksh +++ b/tests/zfs-tests/tests/functional/cli_root/zfs_share/zfs_share_007_neg.ksh @@ -51,7 +51,7 @@ function cleanup { set -A badopts \ "r0" "r0=machine1" "r0=machine1:machine2" \ - "-g" "-b" "-c" "-d" "--invalid" \ + "-g" "-b" "-c" "-d" "--invalid" "rw=[::1]a:[::2]" "rw=[::1" \ "$TESTPOOL" "$TESTPOOL/$TESTFS" "$TESTPOOL\$TESTCTR\$TESTFS1" log_assert "Verify that invalid share parameters and options are caught." diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_share/zfs_share_013_pos.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_share/zfs_share_013_pos.ksh new file mode 100755 index 000000000..150eddac0 --- /dev/null +++ b/tests/zfs-tests/tests/functional/cli_root/zfs_share/zfs_share_013_pos.ksh @@ -0,0 +1,80 @@ +#!/bin/ksh -p +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# + +# +# Copyright (c) 2020, Felix Dörre +# + +. $STF_SUITE/include/libtest.shlib + +# +# DESCRIPTION: +# Verify that NFS share options including ipv6 literals are parsed and propagated correctly. +# + +verify_runnable "global" + +function cleanup +{ + log_must zfs set sharenfs=off $TESTPOOL/$TESTFS + is_shared $TESTPOOL/$TESTFS && \ + log_must unshare_fs $TESTPOOL/$TESTFS +} + +log_onexit cleanup + +cleanup + +log_must zfs set sharenfs="rw=[::1]" $TESTPOOL/$TESTFS +output=$(showshares_nfs 2>&1) +log_must grep "::1(" <<< "$output" > /dev/null + +log_must zfs set sharenfs="rw=[2::3]" $TESTPOOL/$TESTFS +output=$(showshares_nfs 2>&1) +log_must grep "2::3(" <<< "$output" > /dev/null + +log_must zfs set sharenfs="rw=[::1]:[2::3]" $TESTPOOL/$TESTFS +output=$(showshares_nfs 2>&1) +log_must grep "::1(" <<< "$output" > /dev/null +log_must grep "2::3(" <<< "$output" > /dev/null + +log_must zfs set sharenfs="rw=[::1]/64" $TESTPOOL/$TESTFS +output=$(showshares_nfs 2>&1) +log_must grep "::1/64(" <<< "$output" > /dev/null + +log_must zfs set sharenfs="rw=[2::3]/128" $TESTPOOL/$TESTFS +output=$(showshares_nfs 2>&1) +log_must grep "2::3/128(" <<< "$output" > /dev/null + +log_must zfs set sharenfs="rw=[::1]/32:[2::3]/128" $TESTPOOL/$TESTFS +output=$(showshares_nfs 2>&1) +log_must grep "::1/32(" <<< "$output" > /dev/null +log_must grep "2::3/128(" <<< "$output" > /dev/null + +log_must zfs set sharenfs="rw=[::1]:[2::3]/64:[2a01:1234:1234:1234:aa34:234:1234:1234]:1.2.3.4/24" $TESTPOOL/$TESTFS +output=$(showshares_nfs 2>&1) +log_must grep "::1(" <<< "$output" > /dev/null +log_must grep "2::3/64(" <<< "$output" > /dev/null +log_must grep "2a01:1234:1234:1234:aa34:234:1234:1234(" <<< "$output" > /dev/null +log_must grep "1\\.2\\.3\\.4/24(" <<< "$output" > /dev/null + +log_pass "NFS share ip address propagated correctly." |