svn commit: r332477 - in user/markj/netdump: . cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/lib/libzfs/common lib/libc/amd64 lib/libc/amd64/sys lib/libc/gen lib/libc/i386 lib/libc/i3...
Mark Johnston
markj at FreeBSD.org
Fri Apr 13 16:50:19 UTC 2018
Author: markj
Date: Fri Apr 13 16:50:16 2018
New Revision: 332477
URL: https://svnweb.freebsd.org/changeset/base/332477
Log:
MFH at r332476.
Added:
user/markj/netdump/lib/libc/gen/exect.c
- copied unchanged from r332476, head/lib/libc/gen/exect.c
user/markj/netdump/sys/dev/altera/msgdma/
- copied from r332476, head/sys/dev/altera/msgdma/
user/markj/netdump/sys/dev/altera/softdma/
- copied from r332476, head/sys/dev/altera/softdma/
user/markj/netdump/sys/dev/netmap/netmap_legacy.c
- copied unchanged from r332476, head/sys/dev/netmap/netmap_legacy.c
user/markj/netdump/sys/dev/xdma/controller/
- copied from r332476, head/sys/dev/xdma/controller/
user/markj/netdump/sys/dev/xdma/xdma_bank.c
- copied unchanged from r332476, head/sys/dev/xdma/xdma_bank.c
user/markj/netdump/sys/dev/xdma/xdma_bio.c
- copied unchanged from r332476, head/sys/dev/xdma/xdma_bio.c
user/markj/netdump/sys/dev/xdma/xdma_mbuf.c
- copied unchanged from r332476, head/sys/dev/xdma/xdma_mbuf.c
user/markj/netdump/sys/dev/xdma/xdma_queue.c
- copied unchanged from r332476, head/sys/dev/xdma/xdma_queue.c
user/markj/netdump/sys/dev/xdma/xdma_sg.c
- copied unchanged from r332476, head/sys/dev/xdma/xdma_sg.c
user/markj/netdump/sys/dev/xdma/xdma_sglist.c
- copied unchanged from r332476, head/sys/dev/xdma/xdma_sglist.c
user/markj/netdump/sys/mips/beri/beri_mp.c
- copied unchanged from r332476, head/sys/mips/beri/beri_mp.c
user/markj/netdump/sys/mips/beri/beri_mp.h
- copied unchanged from r332476, head/sys/mips/beri/beri_mp.h
user/markj/netdump/sys/net/netmap_legacy.h
- copied unchanged from r332476, head/sys/net/netmap_legacy.h
Deleted:
user/markj/netdump/lib/libc/amd64/sys/exect.S
user/markj/netdump/lib/libc/i386/sys/exect.S
user/markj/netdump/lib/libc/mips/sys/exect.S
user/markj/netdump/lib/libc/powerpc/sys/exect.S
user/markj/netdump/lib/libc/powerpc64/sys/exect.S
user/markj/netdump/lib/libc/sparc64/sys/exect.S
user/markj/netdump/sys/dev/altera/atse/a_api.h
Modified:
user/markj/netdump/Makefile.inc1
user/markj/netdump/ObsoleteFiles.inc
user/markj/netdump/cddl/contrib/opensolaris/cmd/zpool/zpool.8
user/markj/netdump/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
user/markj/netdump/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
user/markj/netdump/lib/libc/amd64/Symbol.map
user/markj/netdump/lib/libc/amd64/sys/Makefile.inc
user/markj/netdump/lib/libc/gen/Makefile.inc
user/markj/netdump/lib/libc/gen/Symbol.map
user/markj/netdump/lib/libc/gen/syslog.3
user/markj/netdump/lib/libc/i386/Symbol.map
user/markj/netdump/lib/libc/i386/sys/Makefile.inc
user/markj/netdump/lib/libc/mips/sys/Makefile.inc
user/markj/netdump/lib/libc/powerpc/Symbol.map
user/markj/netdump/lib/libc/powerpc/sys/Makefile.inc
user/markj/netdump/lib/libc/powerpc64/Symbol.map
user/markj/netdump/lib/libc/powerpc64/sys/Makefile.inc
user/markj/netdump/lib/libc/sparc64/Symbol.map
user/markj/netdump/lib/libc/sparc64/sys/Makefile.inc
user/markj/netdump/release/i386/make-memstick.sh
user/markj/netdump/sbin/ipfw/ipfw2.c
user/markj/netdump/sbin/ipfw/ipfw2.h
user/markj/netdump/sbin/ipfw/ipv6.c
user/markj/netdump/share/misc/bsd-family-tree
user/markj/netdump/share/misc/committers-src.dot
user/markj/netdump/share/mk/bsd.dtb.mk
user/markj/netdump/share/mk/bsd.kmod.mk
user/markj/netdump/sys/amd64/amd64/machdep.c
user/markj/netdump/sys/amd64/amd64/pmap.c
user/markj/netdump/sys/amd64/ia32/ia32_signal.c
user/markj/netdump/sys/amd64/linux/linux_sysvec.c
user/markj/netdump/sys/amd64/linux32/linux32_sysvec.c
user/markj/netdump/sys/cam/scsi/scsi_da.c
user/markj/netdump/sys/cam/scsi/scsi_sa.c
user/markj/netdump/sys/cddl/contrib/opensolaris/common/zfs/zpool_prop.c
user/markj/netdump/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
user/markj/netdump/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c
user/markj/netdump/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
user/markj/netdump/sys/conf/files
user/markj/netdump/sys/conf/kern.mk
user/markj/netdump/sys/conf/kmod.mk
user/markj/netdump/sys/conf/options.mips
user/markj/netdump/sys/dev/altera/atse/if_atse.c
user/markj/netdump/sys/dev/altera/atse/if_atse_fdt.c
user/markj/netdump/sys/dev/altera/atse/if_atse_nexus.c
user/markj/netdump/sys/dev/altera/atse/if_atsereg.h
user/markj/netdump/sys/dev/cxgbe/t4_netmap.c
user/markj/netdump/sys/dev/ixgbe/if_ixv.c
user/markj/netdump/sys/dev/ixl/ixl_pf_main.c
user/markj/netdump/sys/dev/ixl/ixl_txrx.c
user/markj/netdump/sys/dev/netmap/if_ptnet.c
user/markj/netdump/sys/dev/netmap/if_re_netmap.h
user/markj/netdump/sys/dev/netmap/if_vtnet_netmap.h
user/markj/netdump/sys/dev/netmap/netmap.c
user/markj/netdump/sys/dev/netmap/netmap_freebsd.c
user/markj/netdump/sys/dev/netmap/netmap_generic.c
user/markj/netdump/sys/dev/netmap/netmap_kern.h
user/markj/netdump/sys/dev/netmap/netmap_mem2.c
user/markj/netdump/sys/dev/netmap/netmap_mem2.h
user/markj/netdump/sys/dev/netmap/netmap_monitor.c
user/markj/netdump/sys/dev/netmap/netmap_pipe.c
user/markj/netdump/sys/dev/netmap/netmap_pt.c
user/markj/netdump/sys/dev/netmap/netmap_vale.c
user/markj/netdump/sys/dev/ocs_fc/ocs_os.c
user/markj/netdump/sys/dev/re/if_re.c
user/markj/netdump/sys/dev/vt/font/vt_font_default.c
user/markj/netdump/sys/dev/vt/hw/vga/vt_vga.c
user/markj/netdump/sys/dev/xdma/xdma.c
user/markj/netdump/sys/dev/xdma/xdma.h
user/markj/netdump/sys/dev/xdma/xdma_fdt_test.c
user/markj/netdump/sys/dev/xdma/xdma_if.m
user/markj/netdump/sys/dts/mips/beripad-de4.dts
user/markj/netdump/sys/i386/i386/machdep.c
user/markj/netdump/sys/mips/beri/files.beri
user/markj/netdump/sys/mips/beri/std.beri
user/markj/netdump/sys/mips/conf/BERI_DE4_BASE
user/markj/netdump/sys/mips/include/cpufunc.h
user/markj/netdump/sys/mips/include/hwfunc.h
user/markj/netdump/sys/mips/ingenic/jz4780_aic.c
user/markj/netdump/sys/mips/ingenic/jz4780_pdma.c
user/markj/netdump/sys/mips/ingenic/jz4780_pdma.h
user/markj/netdump/sys/mips/mips/mp_machdep.c
user/markj/netdump/sys/modules/netmap/Makefile
user/markj/netdump/sys/net/iflib.c
user/markj/netdump/sys/net/netmap.h
user/markj/netdump/sys/net/netmap_user.h
user/markj/netdump/sys/net/netmap_virt.h
user/markj/netdump/sys/netinet6/ip6_fastfwd.c
user/markj/netdump/sys/netpfil/ipfw/nat64/nat64_translate.c
user/markj/netdump/sys/netpfil/ipfw/nat64/nat64_translate.h
user/markj/netdump/sys/netpfil/ipfw/nat64/nat64lsn.c
user/markj/netdump/sys/netpfil/ipfw/nat64/nat64lsn.h
user/markj/netdump/sys/netpfil/ipfw/nat64/nat64lsn_control.c
user/markj/netdump/sys/netpfil/ipfw/nat64/nat64stl.h
user/markj/netdump/sys/netpfil/ipfw/nat64/nat64stl_control.c
user/markj/netdump/sys/sys/param.h
user/markj/netdump/sys/sys/proc.h
user/markj/netdump/usr.bin/etdump/etdump.c
user/markj/netdump/usr.bin/mandoc/Makefile
user/markj/netdump/usr.bin/mkimg/mkimg.c
user/markj/netdump/usr.bin/mkimg/scheme.h
user/markj/netdump/usr.sbin/cron/cron/database.c
Directory Properties:
user/markj/netdump/ (props changed)
user/markj/netdump/cddl/ (props changed)
user/markj/netdump/cddl/contrib/opensolaris/ (props changed)
user/markj/netdump/cddl/contrib/opensolaris/lib/libzfs/ (props changed)
user/markj/netdump/sys/cddl/contrib/opensolaris/ (props changed)
Modified: user/markj/netdump/Makefile.inc1
==============================================================================
--- user/markj/netdump/Makefile.inc1 Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/Makefile.inc1 Fri Apr 13 16:50:16 2018 (r332477)
@@ -808,7 +808,8 @@ _cleanobj_fast_depend_hack: .PHONY
# 20180404 r332048 sigreturn
# 20180405 r332080 shmat
# 20180406 r332119 setlogin
-.for f in fstat fstatat fstatfs getdirentries getfsstat setlogin shmat sigreturn statfs
+# 20170411 r332443 exect
+.for f in exect fstat fstatat fstatfs getdirentries getfsstat setlogin shmat sigreturn statfs
.if exists(${OBJTOP}/lib/libc/.depend.${f}.o)
@if egrep -qw '${f}\.[sS]' \
${OBJTOP}/lib/libc/.depend.${f}.o; then \
Modified: user/markj/netdump/ObsoleteFiles.inc
==============================================================================
--- user/markj/netdump/ObsoleteFiles.inc Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/ObsoleteFiles.inc Fri Apr 13 16:50:16 2018 (r332477)
@@ -40,6 +40,7 @@
# 20180409: remove FDDI support
OLD_FILES+=usr/include/net/fddi.h
+OLD_FILES+=usr/share/man/man4/fpa.4.gz
# 20180319: remove /boot/overlays, replaced by /boot/dtb/overlays
OLD_DIRS+=boot/overlays
# 20180311: remove sys/sys/i386/include/pcaudioio.h
@@ -1069,7 +1070,6 @@ OLD_FILES+=usr/share/man/man7/mm.7.gz
OLD_FILES+=usr/share/man/man7/mmse.7.gz
OLD_FILES+=usr/share/man/man7/ms.7.gz
OLD_FILES+=usr/share/man/man7/orig_me.7.gz
-OLD_FILES+=usr/share/man/man7/roff.7.gz
OLD_FILES+=usr/share/me/acm.me
OLD_FILES+=usr/share/me/chars.me
OLD_FILES+=usr/share/me/deltext.me
Modified: user/markj/netdump/cddl/contrib/opensolaris/cmd/zpool/zpool.8
==============================================================================
--- user/markj/netdump/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/cddl/contrib/opensolaris/cmd/zpool/zpool.8 Fri Apr 13 16:50:16 2018 (r332477)
@@ -62,6 +62,7 @@
.Ar ...
.Op Fl m Ar mountpoint
.Op Fl R Ar root
+.Op Fl t Ar tempname
.Ar pool vdev ...
.Nm
.Cm destroy
@@ -115,6 +116,7 @@
.Op Fl m
.Op Fl N
.Op Fl R Ar root
+.Op Fl t
.Op Fl F Op Fl n
.Ar pool | id
.Op Ar newpool
@@ -961,6 +963,7 @@ do not actually discard any transactions.
.Ar ...
.Op Fl m Ar mountpoint
.Op Fl R Ar root
+.Op Fl t Ar tempname
.Ar pool vdev ...
.Xc
.Pp
@@ -1062,6 +1065,18 @@ or
.Qq Cm none .
For more information on dataset mount points, see
.Xr zfs 8 .
+.It Fl t Ar tempname
+Sets the in-core pool name to
+.Pa tempname
+while the on-disk name will be the name specified as the pool name
+.Pa pool .
+This will set the default
+.Sy cachefile
+property to
+.Sy none .
+This is intended to handle name space collisions when creating pools
+for other systems, such as virtual machines or physical machines
+whose pools live on network block devices.
.El
.It Xo
.Nm
@@ -1316,6 +1331,7 @@ Searches for and imports all pools found.
.Op Fl m
.Op Fl N
.Op Fl R Ar root
+.Op Fl t
.Op Fl F Op Fl n
.Ar pool | id
.Op Ar newpool
@@ -1375,6 +1391,20 @@ Import the pool without mounting any file systems.
.It Fl R Ar root
Equivalent to
.Qq Fl o Cm cachefile=none,altroot= Ns Pa root
+.It Fl t
+Used with
+.Ar newpool .
+Specifies that
+.Ar newpool
+is temporary.
+Temporary pool names last until export.
+Ensures that the original pool name will be used in all label updates and
+therefore is retained upon export.
+Will also set
+.Sy cachefile
+property to
+.Sy none
+when not explicitly specified.
.It Fl F
Recovery mode for a non-importable pool. Attempt to return the pool to an
importable state by discarding the last few transactions. Not all damaged pools
Modified: user/markj/netdump/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
==============================================================================
--- user/markj/netdump/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Fri Apr 13 16:50:16 2018 (r332477)
@@ -220,8 +220,9 @@ get_usage(zpool_help_t idx)
case HELP_CREATE:
return (gettext("\tcreate [-fnd] [-B] "
"[-o property=value] ... \n"
- "\t [-O file-system-property=value] ... \n"
- "\t [-m mountpoint] [-R root] <pool> <vdev> ...\n"));
+ "\t [-O file-system-property=value] ...\n"
+ "\t [-m mountpoint] [-R root] [-t tempname] "
+ "<pool> <vdev> ...\n"));
case HELP_CHECKPOINT:
return (gettext("\tcheckpoint [--discard] <pool> ...\n"));
case HELP_DESTROY:
@@ -239,7 +240,7 @@ get_usage(zpool_help_t idx)
"[-R root] [-F [-n]] -a\n"
"\timport [-o mntopts] [-o property=value] ... \n"
"\t [-d dir | -c cachefile] [-D] [-f] [-m] [-N] "
- "[-R root] [-F [-n]]\n"
+ "[-R root] [-F [-n]] [-t]\n"
"\t [--rewind-to-checkpoint] <pool | id> [newpool]\n"));
case HELP_IOSTAT:
return (gettext("\tiostat [-v] [-T d|u] [pool] ... [interval "
@@ -489,6 +490,21 @@ add_prop_list(const char *propname, char *propval, nvl
}
/*
+ * Set a default property pair (name, string-value) in a property nvlist
+ */
+static int
+add_prop_list_default(const char *propname, char *propval, nvlist_t **props,
+ boolean_t poolprop)
+{
+ char *pval;
+
+ if (nvlist_lookup_string(*props, propname, &pval) == 0)
+ return (0);
+
+ return (add_prop_list(propname, propval, props, poolprop));
+}
+
+/*
* zpool add [-fn] <pool> <vdev> ...
*
* -f Force addition of devices, even if they appear in use
@@ -850,15 +866,16 @@ errout:
/*
* zpool create [-fnd] [-B] [-o property=value] ...
* [-O file-system-property=value] ...
- * [-R root] [-m mountpoint] <pool> <dev> ...
+ * [-R root] [-m mountpoint] [-t tempname] <pool> <dev> ...
*
* -B Create boot partition.
* -f Force creation, even if devices appear in use
* -n Do not create the pool, but display the resulting layout if it
* were to be created.
- * -R Create a pool under an alternate root
- * -m Set default mountpoint for the root dataset. By default it's
+ * -R Create a pool under an alternate root
+ * -m Set default mountpoint for the root dataset. By default it's
* '/<pool>'
+ * -t Use the temporary name until the pool is exported.
* -o Set property=value.
* -d Don't automatically enable all supported pool features
* (individual features can be enabled with -o).
@@ -882,6 +899,7 @@ zpool_do_create(int argc, char **argv)
int c;
nvlist_t *nvroot = NULL;
char *poolname;
+ char *tname = NULL;
int ret = 1;
char *altroot = NULL;
char *mountpoint = NULL;
@@ -890,7 +908,7 @@ zpool_do_create(int argc, char **argv)
char *propval;
/* check options */
- while ((c = getopt(argc, argv, ":fndBR:m:o:O:")) != -1) {
+ while ((c = getopt(argc, argv, ":fndBR:m:o:O:t:")) != -1) {
switch (c) {
case 'f':
force = B_TRUE;
@@ -922,11 +940,7 @@ zpool_do_create(int argc, char **argv)
if (add_prop_list(zpool_prop_to_name(
ZPOOL_PROP_ALTROOT), optarg, &props, B_TRUE))
goto errout;
- if (nvlist_lookup_string(props,
- zpool_prop_to_name(ZPOOL_PROP_CACHEFILE),
- &propval) == 0)
- break;
- if (add_prop_list(zpool_prop_to_name(
+ if (add_prop_list_default(zpool_prop_to_name(
ZPOOL_PROP_CACHEFILE), "none", &props, B_TRUE))
goto errout;
break;
@@ -999,6 +1013,27 @@ zpool_do_create(int argc, char **argv)
goto errout;
}
break;
+ case 't':
+ /*
+ * Sanity check temporary pool name.
+ */
+ if (strchr(optarg, '/') != NULL) {
+ (void) fprintf(stderr, gettext("cannot create "
+ "'%s': invalid character '/' in temporary "
+ "name\n"), optarg);
+ (void) fprintf(stderr, gettext("use 'zfs "
+ "create' to create a dataset\n"));
+ goto errout;
+ }
+
+ if (add_prop_list(zpool_prop_to_name(
+ ZPOOL_PROP_TNAME), optarg, &props, B_TRUE))
+ goto errout;
+ if (add_prop_list_default(zpool_prop_to_name(
+ ZPOOL_PROP_CACHEFILE), "none", &props, B_TRUE))
+ goto errout;
+ tname = optarg;
+ break;
case ':':
(void) fprintf(stderr, gettext("missing argument for "
"'%c' option\n"), optopt);
@@ -1205,8 +1240,8 @@ zpool_do_create(int argc, char **argv)
ret = 1;
if (zpool_create(g_zfs, poolname,
nvroot, props, fsprops) == 0) {
- zfs_handle_t *pool = zfs_open(g_zfs, poolname,
- ZFS_TYPE_FILESYSTEM);
+ zfs_handle_t *pool = zfs_open(g_zfs,
+ tname ? tname : poolname, ZFS_TYPE_FILESYSTEM);
if (pool != NULL) {
if (zfs_mount(pool, NULL, 0) == 0)
ret = zfs_shareall(pool);
@@ -2162,7 +2197,8 @@ zpool_do_checkpoint(int argc, char **argv)
* import [-o mntopts] [-o prop=value] ... [-R root] [-D]
* [-d dir | -c cachefile] [-f] -a
* import [-o mntopts] [-o prop=value] ... [-R root] [-D]
- * [-d dir | -c cachefile] [-f] [-n] [-F] <pool | id> [newpool]
+ * [-d dir | -c cachefile] [-f] [-n] [-F] [-t]
+ * <pool | id> [newpool]
*
* -c Read pool information from a cachefile instead of searching
* devices.
@@ -2191,6 +2227,9 @@ zpool_do_checkpoint(int argc, char **argv)
*
* -N Import the pool but don't mount datasets.
*
+ * -t Use newpool as a temporary pool name instead of renaming
+ * the pool.
+ *
* -T Specify a starting txg to use for import. This option is
* intentionally undocumented option for testing purposes.
*
@@ -2241,7 +2280,7 @@ zpool_do_import(int argc, char **argv)
};
/* check options */
- while ((c = getopt_long(argc, argv, ":aCc:d:DEfFmnNo:rR:T:VX",
+ while ((c = getopt_long(argc, argv, ":aCc:d:DEfFmnNo:rR:tT:VX",
long_options, NULL)) != -1) {
switch (c) {
case 'a':
@@ -2296,14 +2335,16 @@ zpool_do_import(int argc, char **argv)
if (add_prop_list(zpool_prop_to_name(
ZPOOL_PROP_ALTROOT), optarg, &props, B_TRUE))
goto error;
- if (nvlist_lookup_string(props,
- zpool_prop_to_name(ZPOOL_PROP_CACHEFILE),
- &propval) == 0)
- break;
- if (add_prop_list(zpool_prop_to_name(
+ if (add_prop_list_default(zpool_prop_to_name(
ZPOOL_PROP_CACHEFILE), "none", &props, B_TRUE))
goto error;
break;
+ case 't':
+ flags |= ZFS_IMPORT_TEMP_NAME;
+ if (add_prop_list_default(zpool_prop_to_name(
+ ZPOOL_PROP_CACHEFILE), "none", &props, B_TRUE))
+ goto error;
+ break;
case 'T':
errno = 0;
txg = strtoull(optarg, &endptr, 0);
@@ -2439,9 +2480,9 @@ zpool_do_import(int argc, char **argv)
(void) fprintf(stderr, gettext("cannot import '%s': "
"a pool with that name already exists\n"),
argv[0]);
- (void) fprintf(stderr, gettext("use the form '%s "
- "<pool | id> <newpool>' to give it a new name\n"),
- "zpool import");
+ (void) fprintf(stderr, gettext("use the form 'zpool import "
+ "[-t] <pool | id> <newpool>' to give it a new temporary "
+ "or permanent name\n"));
err = 1;
} else if (pools == NULL && idata.exists) {
(void) fprintf(stderr, gettext("cannot import '%s': "
Modified: user/markj/netdump/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
==============================================================================
--- user/markj/netdump/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Fri Apr 13 16:50:16 2018 (r332477)
@@ -644,11 +644,22 @@ zpool_valid_proplist(libzfs_handle_t *hdl, const char
goto error;
}
break;
+
case ZPOOL_PROP_READONLY:
if (!flags.import) {
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"property '%s' can only be set at "
"import time"), propname);
+ (void) zfs_error(hdl, EZFS_BADPROP, errbuf);
+ goto error;
+ }
+ break;
+
+ case ZPOOL_PROP_TNAME:
+ if (!flags.create) {
+ zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
+ "property '%s' can only be set at "
+ "creation time"), propname);
(void) zfs_error(hdl, EZFS_BADPROP, errbuf);
goto error;
}
Modified: user/markj/netdump/lib/libc/amd64/Symbol.map
==============================================================================
--- user/markj/netdump/lib/libc/amd64/Symbol.map Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/lib/libc/amd64/Symbol.map Fri Apr 13 16:50:16 2018 (r332477)
@@ -40,7 +40,6 @@ FBSD_1.0 {
amd64_set_fsbase;
amd64_set_gsbase;
brk;
- exect;
sbrk;
vfork;
};
Modified: user/markj/netdump/lib/libc/amd64/sys/Makefile.inc
==============================================================================
--- user/markj/netdump/lib/libc/amd64/sys/Makefile.inc Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/lib/libc/amd64/sys/Makefile.inc Fri Apr 13 16:50:16 2018 (r332477)
@@ -8,8 +8,7 @@ SRCS+= \
amd64_set_fsbase.c \
amd64_set_gsbase.c
-MDASM= vfork.S brk.S cerror.S exect.S getcontext.S \
- sbrk.S
+MDASM= vfork.S brk.S cerror.S getcontext.S sbrk.S
# Don't generate default code for these syscalls:
NOASM+= vfork.o
Modified: user/markj/netdump/lib/libc/gen/Makefile.inc
==============================================================================
--- user/markj/netdump/lib/libc/gen/Makefile.inc Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/lib/libc/gen/Makefile.inc Fri Apr 13 16:50:16 2018 (r332477)
@@ -41,6 +41,7 @@ SRCS+= __getosreldate.c \
errlst.c \
errno.c \
exec.c \
+ exect.c \
fdevname.c \
feature_present.c \
fmtcheck.c \
Modified: user/markj/netdump/lib/libc/gen/Symbol.map
==============================================================================
--- user/markj/netdump/lib/libc/gen/Symbol.map Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/lib/libc/gen/Symbol.map Fri Apr 13 16:50:16 2018 (r332477)
@@ -105,6 +105,7 @@ FBSD_1.0 {
sys_errlist;
sys_nerr;
errno;
+ exect;
execl;
execle;
execlp;
Copied: user/markj/netdump/lib/libc/gen/exect.c (from r332476, head/lib/libc/gen/exect.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ user/markj/netdump/lib/libc/gen/exect.c Fri Apr 13 16:50:16 2018 (r332477, copy of r332476, head/lib/libc/gen/exect.c)
@@ -0,0 +1,45 @@
+/*-
+ * Copyright (c) 2018 Ali Mashtizadeh <ali at mashtizadeh.com>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/ptrace.h>
+
+#include <errno.h>
+#include <unistd.h>
+
+int
+exect(const char *path, char *const argv[], char *const envp[])
+{
+
+ if (ptrace(PT_TRACE_ME, 0, 0, 0) != 0) {
+ if (errno != EBUSY)
+ return (-1);
+ }
+
+ return (execve(path, argv, envp));
+}
Modified: user/markj/netdump/lib/libc/gen/syslog.3
==============================================================================
--- user/markj/netdump/lib/libc/gen/syslog.3 Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/lib/libc/gen/syslog.3 Fri Apr 13 16:50:16 2018 (r332477)
@@ -28,7 +28,7 @@
.\" @(#)syslog.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
-.Dd April 6, 2018
+.Dd April 12, 2018
.Dt SYSLOG 3
.Os
.Sh NAME
@@ -295,4 +295,4 @@ for later interpolation by
.Pp
Always use the proper secure idiom:
.Pp
-.Dl syslog(priority, "%s", string);
+.Dl syslog(priority, \*q%s\*q, string);
Modified: user/markj/netdump/lib/libc/i386/Symbol.map
==============================================================================
--- user/markj/netdump/lib/libc/i386/Symbol.map Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/lib/libc/i386/Symbol.map Fri Apr 13 16:50:16 2018 (r332477)
@@ -31,7 +31,6 @@ FBSD_1.0 {
ntohs;
vfork;
brk;
- exect;
i386_clr_watch;
i386_get_fsbase;
i386_get_gsbase;
Modified: user/markj/netdump/lib/libc/i386/sys/Makefile.inc
==============================================================================
--- user/markj/netdump/lib/libc/i386/sys/Makefile.inc Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/lib/libc/i386/sys/Makefile.inc Fri Apr 13 16:50:16 2018 (r332477)
@@ -7,8 +7,7 @@ SRCS+= i386_clr_watch.c i386_set_watch.c i386_vm86.c
SRCS+= i386_get_fsbase.c i386_get_gsbase.c i386_get_ioperm.c i386_get_ldt.c \
i386_set_fsbase.c i386_set_gsbase.c i386_set_ioperm.c i386_set_ldt.c
-MDASM= Ovfork.S brk.S cerror.S exect.S getcontext.S \
- sbrk.S syscall.S
+MDASM= Ovfork.S brk.S cerror.S getcontext.S sbrk.S syscall.S
NOASM+= vfork.o
Modified: user/markj/netdump/lib/libc/mips/sys/Makefile.inc
==============================================================================
--- user/markj/netdump/lib/libc/mips/sys/Makefile.inc Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/lib/libc/mips/sys/Makefile.inc Fri Apr 13 16:50:16 2018 (r332477)
@@ -2,8 +2,7 @@
SRCS+= trivial-vdso_tc.c
-MDASM= Ovfork.S brk.S cerror.S exect.S \
- sbrk.S syscall.S
+MDASM= Ovfork.S brk.S cerror.S sbrk.S syscall.S
# Don't generate default code for these syscalls:
NOASM+= vfork.o
Modified: user/markj/netdump/lib/libc/powerpc/Symbol.map
==============================================================================
--- user/markj/netdump/lib/libc/powerpc/Symbol.map Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/lib/libc/powerpc/Symbol.map Fri Apr 13 16:50:16 2018 (r332477)
@@ -33,7 +33,6 @@ FBSD_1.0 {
ntohl;
ntohs;
brk;
- exect;
sbrk;
vfork;
};
Modified: user/markj/netdump/lib/libc/powerpc/sys/Makefile.inc
==============================================================================
--- user/markj/netdump/lib/libc/powerpc/sys/Makefile.inc Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/lib/libc/powerpc/sys/Makefile.inc Fri Apr 13 16:50:16 2018 (r332477)
@@ -1,3 +1,3 @@
# $FreeBSD$
-MDASM+= brk.S cerror.S exect.S sbrk.S
+MDASM+= brk.S cerror.S sbrk.S
Modified: user/markj/netdump/lib/libc/powerpc64/Symbol.map
==============================================================================
--- user/markj/netdump/lib/libc/powerpc64/Symbol.map Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/lib/libc/powerpc64/Symbol.map Fri Apr 13 16:50:16 2018 (r332477)
@@ -33,7 +33,6 @@ FBSD_1.0 {
ntohl;
ntohs;
brk;
- exect;
sbrk;
vfork;
};
Modified: user/markj/netdump/lib/libc/powerpc64/sys/Makefile.inc
==============================================================================
--- user/markj/netdump/lib/libc/powerpc64/sys/Makefile.inc Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/lib/libc/powerpc64/sys/Makefile.inc Fri Apr 13 16:50:16 2018 (r332477)
@@ -1,3 +1,3 @@
# $FreeBSD$
-MDASM+= brk.S cerror.S exect.S sbrk.S
+MDASM+= brk.S cerror.S sbrk.S
Modified: user/markj/netdump/lib/libc/sparc64/Symbol.map
==============================================================================
--- user/markj/netdump/lib/libc/sparc64/Symbol.map Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/lib/libc/sparc64/Symbol.map Fri Apr 13 16:50:16 2018 (r332477)
@@ -33,7 +33,6 @@ FBSD_1.0 {
ntohl;
ntohs;
brk;
- exect;
sbrk;
vfork;
@@ -82,8 +81,6 @@ FBSDprivate_1.0 {
__siglongjmp;
__sys_brk;
_brk;
- __sys_exect;
- _exect;
_end;
__sys_sbrk;
_sbrk;
Modified: user/markj/netdump/lib/libc/sparc64/sys/Makefile.inc
==============================================================================
--- user/markj/netdump/lib/libc/sparc64/sys/Makefile.inc Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/lib/libc/sparc64/sys/Makefile.inc Fri Apr 13 16:50:16 2018 (r332477)
@@ -12,4 +12,4 @@ SRCS+= __sparc_sigtramp_setup.c \
CFLAGS+= -I${LIBC_SRCTOP}/sparc64/fpu
-MDASM+= brk.S cerror.S exect.S sbrk.S sigaction1.S
+MDASM+= brk.S cerror.S sbrk.S sigaction1.S
Modified: user/markj/netdump/release/i386/make-memstick.sh
==============================================================================
--- user/markj/netdump/release/i386/make-memstick.sh Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/release/i386/make-memstick.sh Fri Apr 13 16:50:16 2018 (r332477)
@@ -36,11 +36,9 @@ makefs -B little -o label=FreeBSD_Install -o version=2
rm ${1}/etc/fstab
rm ${1}/etc/rc.conf.local
-mkimg -s gpt \
- -b ${1}/boot/pmbr \
- -p freebsd-boot:=${1}/boot/gptboot \
- -p freebsd-ufs:=${2}.part \
- -p freebsd-swap::1M \
+mkimg -s mbr \
+ -b ${1}/boot/mbr \
+ -p freebsd:-"mkimg -s bsd -b ${1}/boot/boot -p freebsd-ufs:=${2}.part" \
-o ${2}
rm ${2}.part
Modified: user/markj/netdump/sbin/ipfw/ipfw2.c
==============================================================================
--- user/markj/netdump/sbin/ipfw/ipfw2.c Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/sbin/ipfw/ipfw2.c Fri Apr 13 16:50:16 2018 (r332477)
@@ -1176,8 +1176,7 @@ print_flags(struct buf_pr *bp, char const *name, ipfw_
* Print the ip address contained in a command.
*/
static void
-print_ip(struct buf_pr *bp, const struct format_opts *fo, ipfw_insn_ip *cmd,
- char const *s)
+print_ip(struct buf_pr *bp, const struct format_opts *fo, ipfw_insn_ip *cmd)
{
struct hostent *he = NULL;
struct in_addr *ia;
@@ -1185,6 +1184,7 @@ print_ip(struct buf_pr *bp, const struct format_opts *
uint32_t *a = ((ipfw_insn_u32 *)cmd)->d;
char *t;
+ bprintf(bp, " ");
if (cmd->o.opcode == O_IP_DST_LOOKUP && len > F_INSN_SIZE(ipfw_insn_u32)) {
uint32_t d = a[1];
const char *arg = "<invalid>";
@@ -1192,12 +1192,9 @@ print_ip(struct buf_pr *bp, const struct format_opts *
if (d < sizeof(lookup_key)/sizeof(lookup_key[0]))
arg = match_value(rule_options, lookup_key[d]);
t = table_search_ctlv(fo->tstate, ((ipfw_insn *)cmd)->arg1);
- bprintf(bp, "%s lookup %s %s", cmd->o.len & F_NOT ? " not": "",
- arg, t);
+ bprintf(bp, "lookup %s %s", arg, t);
return;
}
- bprintf(bp, "%s%s ", cmd->o.len & F_NOT ? " not": "", s);
-
if (cmd->o.opcode == O_IP_SRC_ME || cmd->o.opcode == O_IP_DST_ME) {
bprintf(bp, "me");
return;
@@ -1468,7 +1465,7 @@ print_instruction(struct buf_pr *bp, const struct form
case O_IP_DST_MASK:
case O_IP_DST_ME:
case O_IP_DST_SET:
- print_ip(bp, fo, insntod(cmd, ip), "");
+ print_ip(bp, fo, insntod(cmd, ip));
break;
case O_IP6_SRC:
case O_IP6_SRC_MASK:
@@ -1476,7 +1473,7 @@ print_instruction(struct buf_pr *bp, const struct form
case O_IP6_DST:
case O_IP6_DST_MASK:
case O_IP6_DST_ME:
- print_ip6(bp, insntod(cmd, ip6), "");
+ print_ip6(bp, insntod(cmd, ip6));
break;
case O_FLOW6ID:
print_flow6id(bp, insntod(cmd, u32));
Modified: user/markj/netdump/sbin/ipfw/ipfw2.h
==============================================================================
--- user/markj/netdump/sbin/ipfw/ipfw2.h Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/sbin/ipfw/ipfw2.h Fri Apr 13 16:50:16 2018 (r332477)
@@ -401,7 +401,7 @@ int ipfw_delete_pipe(int pipe_or_queue, int n);
/* ipv6.c */
void print_unreach6_code(struct buf_pr *bp, uint16_t code);
-void print_ip6(struct buf_pr *bp, struct _ipfw_insn_ip6 *cmd, char const *s);
+void print_ip6(struct buf_pr *bp, struct _ipfw_insn_ip6 *cmd);
void print_flow6id(struct buf_pr *bp, struct _ipfw_insn_u32 *cmd);
void print_icmp6types(struct buf_pr *bp, struct _ipfw_insn_u32 *cmd);
void print_ext6hdr(struct buf_pr *bp, struct _ipfw_insn *cmd );
Modified: user/markj/netdump/sbin/ipfw/ipv6.c
==============================================================================
--- user/markj/netdump/sbin/ipfw/ipv6.c Fri Apr 13 16:45:35 2018 (r332476)
+++ user/markj/netdump/sbin/ipfw/ipv6.c Fri Apr 13 16:50:16 2018 (r332477)
@@ -48,11 +48,11 @@
} while (0)
static struct _s_x icmp6codes[] = {
- { "no-route", ICMP6_DST_UNREACH_NOROUTE },
- { "admin-prohib", ICMP6_DST_UNREACH_ADMIN },
- { "address", ICMP6_DST_UNREACH_ADDR },
- { "port", ICMP6_DST_UNREACH_NOPORT },
- { NULL, 0 }
+ { "no-route", ICMP6_DST_UNREACH_NOROUTE },
+ { "admin-prohib", ICMP6_DST_UNREACH_ADMIN },
+ { "address", ICMP6_DST_UNREACH_ADDR },
+ { "port", ICMP6_DST_UNREACH_NOPORT },
+ { NULL, 0 }
};
void
@@ -85,54 +85,56 @@ print_unreach6_code(struct buf_pr *bp, uint16_t code)
* Print the ip address contained in a command.
*/
void
-print_ip6(struct buf_pr *bp, ipfw_insn_ip6 *cmd, char const *s)
+print_ip6(struct buf_pr *bp, ipfw_insn_ip6 *cmd)
{
- struct hostent *he = NULL;
- int len = F_LEN((ipfw_insn *) cmd) - 1;
- struct in6_addr *a = &(cmd->addr6);
- char trad[255];
+ char trad[255];
+ struct hostent *he = NULL;
+ struct in6_addr *a = &(cmd->addr6);
+ int len, mb;
- bprintf(bp, "%s%s ", cmd->o.len & F_NOT ? " not": "", s);
+ len = F_LEN((ipfw_insn *) cmd) - 1;
+ if (cmd->o.opcode == O_IP6_SRC_ME || cmd->o.opcode == O_IP6_DST_ME) {
+ bprintf(bp, " me6");
+ return;
+ }
+ if (cmd->o.opcode == O_IP6) {
+ bprintf(bp, " ip6");
+ return;
+ }
- if (cmd->o.opcode == O_IP6_SRC_ME || cmd->o.opcode == O_IP6_DST_ME) {
- bprintf(bp, "me6");
- return;
- }
- if (cmd->o.opcode == O_IP6) {
- bprintf(bp, " ip6");
- return;
- }
+ /*
+ * len == 4 indicates a single IP, whereas lists of 1 or more
+ * addr/mask pairs have len = (2n+1). We convert len to n so we
+ * use that to count the number of entries.
+ */
+ bprintf(bp, " ");
+ for (len = len / 4; len > 0; len -= 2, a += 2) {
+ /* mask length */
+ mb = (cmd->o.opcode == O_IP6_SRC ||
+ cmd->o.opcode == O_IP6_DST) ? 128:
+ contigmask((uint8_t *)&(a[1]), 128);
- /*
- * len == 4 indicates a single IP, whereas lists of 1 or more
- * addr/mask pairs have len = (2n+1). We convert len to n so we
- * use that to count the number of entries.
- */
+ if (mb == 128 && co.do_resolv)
+ he = gethostbyaddr((char *)a, sizeof(*a), AF_INET6);
- for (len = len / 4; len > 0; len -= 2, a += 2) {
- int mb = /* mask length */
- (cmd->o.opcode == O_IP6_SRC || cmd->o.opcode == O_IP6_DST) ?
- 128 : contigmask((uint8_t *)&(a[1]), 128);
-
- if (mb == 128 && co.do_resolv)
- he = gethostbyaddr((char *)a, sizeof(*a), AF_INET6);
- if (he != NULL) /* resolved to name */
- bprintf(bp, "%s", he->h_name);
- else if (mb == 0) /* any */
- bprintf(bp, "any");
- else { /* numeric IP followed by some kind of mask */
- if (inet_ntop(AF_INET6, a, trad, sizeof( trad ) ) == NULL)
- bprintf(bp, "Error ntop in print_ip6\n");
- bprintf(bp, "%s", trad );
- if (mb < 0) /* mask not contiguous */
- bprintf(bp, "/%s",
- inet_ntop(AF_INET6, &a[1], trad, sizeof(trad)));
- else if (mb < 128)
- bprintf(bp, "/%d", mb);
- }
- if (len > 2)
- bprintf(bp, ",");
- }
+ if (he != NULL) /* resolved to name */
+ bprintf(bp, "%s", he->h_name);
+ else if (mb == 0) /* any */
+ bprintf(bp, "any");
+ else { /* numeric IP followed by some kind of mask */
+ if (inet_ntop(AF_INET6, a, trad,
+ sizeof(trad)) == NULL)
+ bprintf(bp, "Error ntop in print_ip6\n");
+ bprintf(bp, "%s", trad );
+ if (mb < 0) /* mask not contiguous */
+ bprintf(bp, "/%s", inet_ntop(AF_INET6, &a[1],
+ trad, sizeof(trad)));
+ else if (mb < 128)
+ bprintf(bp, "/%d", mb);
+ }
+ if (len > 2)
+ bprintf(bp, ",");
+ }
}
void
@@ -144,163 +146,154 @@ fill_icmp6types(ipfw_insn_icmp6 *cmd, char *av, int cb
bzero(cmd, sizeof(*cmd));
while (*av) {
- if (*av == ',')
- av++;
- type = strtoul(av, &av, 0);
- if (*av != ',' && *av != '\0')
- errx(EX_DATAERR, "invalid ICMP6 type");
- /*
- * XXX: shouldn't this be 0xFF? I can't see any reason why
- * we shouldn't be able to filter all possiable values
- * regardless of the ability of the rest of the kernel to do
- * anything useful with them.
- */
- if (type > ICMP6_MAXTYPE)
- errx(EX_DATAERR, "ICMP6 type out of range");
- cmd->d[type / 32] |= ( 1 << (type % 32));
+ if (*av == ',')
+ av++;
+ type = strtoul(av, &av, 0);
+ if (*av != ',' && *av != '\0')
+ errx(EX_DATAERR, "invalid ICMP6 type");
+ /*
+ * XXX: shouldn't this be 0xFF? I can't see any reason why
+ * we shouldn't be able to filter all possiable values
+ * regardless of the ability of the rest of the kernel to do
+ * anything useful with them.
+ */
+ if (type > ICMP6_MAXTYPE)
+ errx(EX_DATAERR, "ICMP6 type out of range");
+ cmd->d[type / 32] |= ( 1 << (type % 32));
}
cmd->o.opcode = O_ICMP6TYPE;
cmd->o.len |= F_INSN_SIZE(ipfw_insn_icmp6);
}
-
void
print_icmp6types(struct buf_pr *bp, ipfw_insn_u32 *cmd)
{
- int i, j;
- char sep= ' ';
+ int i, j;
+ char sep= ' ';
- bprintf(bp, " ip6 icmp6types");
- for (i = 0; i < 7; i++)
- for (j=0; j < 32; ++j) {
- if ( (cmd->d[i] & (1 << (j))) == 0)
- continue;
- bprintf(bp, "%c%d", sep, (i*32 + j));
- sep = ',';
- }
+ bprintf(bp, " ip6 icmp6types");
+ for (i = 0; i < 7; i++)
+ for (j=0; j < 32; ++j) {
+ if ( (cmd->d[i] & (1 << (j))) == 0)
+ continue;
+ bprintf(bp, "%c%d", sep, (i*32 + j));
+ sep = ',';
+ }
}
void
print_flow6id(struct buf_pr *bp, ipfw_insn_u32 *cmd)
{
- uint16_t i, limit = cmd->o.arg1;
- char sep = ',';
+ uint16_t i, limit = cmd->o.arg1;
+ char sep = ',';
- bprintf(bp, " flow-id ");
- for( i=0; i < limit; ++i) {
- if (i == limit - 1)
- sep = ' ';
- bprintf(bp, "%d%c", cmd->d[i], sep);
- }
+ bprintf(bp, " flow-id ");
+ for( i=0; i < limit; ++i) {
+ if (i == limit - 1)
+ sep = ' ';
+ bprintf(bp, "%d%c", cmd->d[i], sep);
+ }
}
/* structure and define for the extension header in ipv6 */
static struct _s_x ext6hdrcodes[] = {
- { "frag", EXT_FRAGMENT },
- { "hopopt", EXT_HOPOPTS },
- { "route", EXT_ROUTING },
- { "dstopt", EXT_DSTOPTS },
- { "ah", EXT_AH },
- { "esp", EXT_ESP },
- { "rthdr0", EXT_RTHDR0 },
- { "rthdr2", EXT_RTHDR2 },
- { NULL, 0 }
+ { "frag", EXT_FRAGMENT },
+ { "hopopt", EXT_HOPOPTS },
+ { "route", EXT_ROUTING },
+ { "dstopt", EXT_DSTOPTS },
+ { "ah", EXT_AH },
+ { "esp", EXT_ESP },
+ { "rthdr0", EXT_RTHDR0 },
+ { "rthdr2", EXT_RTHDR2 },
+ { NULL, 0 }
};
/* fills command for the extension header filtering */
int
fill_ext6hdr( ipfw_insn *cmd, char *av)
{
- int tok;
- char *s = av;
+ int tok;
+ char *s = av;
- cmd->arg1 = 0;
-
- while(s) {
- av = strsep( &s, ",") ;
- tok = match_token(ext6hdrcodes, av);
- switch (tok) {
- case EXT_FRAGMENT:
- cmd->arg1 |= EXT_FRAGMENT;
- break;
-
- case EXT_HOPOPTS:
- cmd->arg1 |= EXT_HOPOPTS;
- break;
-
- case EXT_ROUTING:
- cmd->arg1 |= EXT_ROUTING;
- break;
-
- case EXT_DSTOPTS:
- cmd->arg1 |= EXT_DSTOPTS;
- break;
-
- case EXT_AH:
- cmd->arg1 |= EXT_AH;
- break;
-
- case EXT_ESP:
- cmd->arg1 |= EXT_ESP;
- break;
-
- case EXT_RTHDR0:
- cmd->arg1 |= EXT_RTHDR0;
- break;
-
- case EXT_RTHDR2:
- cmd->arg1 |= EXT_RTHDR2;
- break;
-
- default:
- errx( EX_DATAERR, "invalid option for ipv6 exten header" );
- break;
- }
- }
- if (cmd->arg1 == 0 )
- return 0;
- cmd->opcode = O_EXT_HDR;
- cmd->len |= F_INSN_SIZE( ipfw_insn );
- return 1;
+ cmd->arg1 = 0;
+ while(s) {
+ av = strsep( &s, ",") ;
+ tok = match_token(ext6hdrcodes, av);
+ switch (tok) {
+ case EXT_FRAGMENT:
+ cmd->arg1 |= EXT_FRAGMENT;
+ break;
+ case EXT_HOPOPTS:
+ cmd->arg1 |= EXT_HOPOPTS;
+ break;
+ case EXT_ROUTING:
+ cmd->arg1 |= EXT_ROUTING;
+ break;
+ case EXT_DSTOPTS:
+ cmd->arg1 |= EXT_DSTOPTS;
+ break;
+ case EXT_AH:
+ cmd->arg1 |= EXT_AH;
+ break;
+ case EXT_ESP:
+ cmd->arg1 |= EXT_ESP;
+ break;
+ case EXT_RTHDR0:
+ cmd->arg1 |= EXT_RTHDR0;
+ break;
+ case EXT_RTHDR2:
+ cmd->arg1 |= EXT_RTHDR2;
+ break;
+ default:
+ errx(EX_DATAERR,
+ "invalid option for ipv6 exten header");
+ break;
+ }
+ }
+ if (cmd->arg1 == 0)
+ return (0);
+ cmd->opcode = O_EXT_HDR;
+ cmd->len |= F_INSN_SIZE(ipfw_insn);
+ return (1);
}
void
print_ext6hdr(struct buf_pr *bp, ipfw_insn *cmd )
{
- char sep = ' ';
+ char sep = ' ';
- bprintf(bp, " extension header:");
- if (cmd->arg1 & EXT_FRAGMENT ) {
- bprintf(bp, "%cfragmentation", sep);
- sep = ',';
- }
- if (cmd->arg1 & EXT_HOPOPTS ) {
- bprintf(bp, "%chop options", sep);
- sep = ',';
- }
- if (cmd->arg1 & EXT_ROUTING ) {
- bprintf(bp, "%crouting options", sep);
- sep = ',';
- }
- if (cmd->arg1 & EXT_RTHDR0 ) {
- bprintf(bp, "%crthdr0", sep);
- sep = ',';
- }
- if (cmd->arg1 & EXT_RTHDR2 ) {
- bprintf(bp, "%crthdr2", sep);
- sep = ',';
- }
- if (cmd->arg1 & EXT_DSTOPTS ) {
- bprintf(bp, "%cdestination options", sep);
- sep = ',';
- }
- if (cmd->arg1 & EXT_AH ) {
- bprintf(bp, "%cauthentication header", sep);
- sep = ',';
- }
- if (cmd->arg1 & EXT_ESP ) {
- bprintf(bp, "%cencapsulated security payload", sep);
- }
+ bprintf(bp, " extension header:");
+ if (cmd->arg1 & EXT_FRAGMENT) {
+ bprintf(bp, "%cfragmentation", sep);
+ sep = ',';
+ }
+ if (cmd->arg1 & EXT_HOPOPTS) {
+ bprintf(bp, "%chop options", sep);
+ sep = ',';
+ }
+ if (cmd->arg1 & EXT_ROUTING) {
+ bprintf(bp, "%crouting options", sep);
+ sep = ',';
+ }
+ if (cmd->arg1 & EXT_RTHDR0) {
+ bprintf(bp, "%crthdr0", sep);
+ sep = ',';
+ }
+ if (cmd->arg1 & EXT_RTHDR2) {
+ bprintf(bp, "%crthdr2", sep);
+ sep = ',';
+ }
+ if (cmd->arg1 & EXT_DSTOPTS) {
+ bprintf(bp, "%cdestination options", sep);
+ sep = ',';
+ }
+ if (cmd->arg1 & EXT_AH) {
+ bprintf(bp, "%cauthentication header", sep);
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-user
mailing list