IFC @ r234692
sys/amd64/include/cpufunc.h sys/amd64/include/fpu.h sys/amd64/amd64/fpu.c sys/amd64/vmm/vmm.c - Add API to allow vmm FPU state init/save/restore. FP stuff discussed with: kib
This commit is contained in:
commit
38f1b189cd
@ -124,6 +124,7 @@ usr.sbin/zic edwin Heads-up appreciated, since this code is
|
||||
lib/libc/stdtime edwin Heads-up appreciated, since parts of this code
|
||||
is maintained by a third party source.
|
||||
sbin/routed bms Pre-commit review; notify vendor at rhyolite.com
|
||||
isci(4) jimharris Pre-commit review requested.
|
||||
|
||||
Following are the entries from the Makefiles, and a few other sources.
|
||||
Please remove stale entries from both their origin, and this file.
|
||||
|
25
Makefile
25
Makefile
@ -18,13 +18,14 @@
|
||||
# reinstallkernel.debug
|
||||
# kernel - buildkernel + installkernel.
|
||||
# kernel-toolchain - Builds the subset of world necessary to build a kernel
|
||||
# kernel-toolchains - Build kernel-toolchain for all universe targets.
|
||||
# doxygen - Build API documentation of the kernel, needs doxygen.
|
||||
# update - Convenient way to update your source tree(s).
|
||||
# check-old - List obsolete directories/files/libraries.
|
||||
# check-old-dirs - List obsolete directories.
|
||||
# check-old-files - List obsolete files.
|
||||
# check-old-libs - List obsolete libraries.
|
||||
# delete-old - Delete obsolete directories/files/libraries.
|
||||
# delete-old - Delete obsolete directories/files.
|
||||
# delete-old-dirs - Delete obsolete directories.
|
||||
# delete-old-files - Delete obsolete files.
|
||||
# delete-old-libs - Delete obsolete libraries.
|
||||
@ -131,20 +132,19 @@ _MAKE= PATH=${PATH} ${BINMAKE} -f Makefile.inc1 TARGET=${_TARGET} TARGET_ARCH=${
|
||||
|
||||
# Guess machine architecture from machine type, and vice versa.
|
||||
.if !defined(TARGET_ARCH) && defined(TARGET)
|
||||
_TARGET_ARCH= ${TARGET:S/pc98/i386/:S/mips/mipsel/}
|
||||
_TARGET_ARCH= ${TARGET:S/pc98/i386/}
|
||||
.elif !defined(TARGET) && defined(TARGET_ARCH) && \
|
||||
${TARGET_ARCH} != ${MACHINE_ARCH}
|
||||
_TARGET= ${TARGET_ARCH:C/mips.*e[lb]/mips/:C/armeb/arm/}
|
||||
_TARGET= ${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/armeb/arm/}
|
||||
.endif
|
||||
# Legacy names, for a transition period mips:mips -> mipsel:mips
|
||||
# Legacy names, for another transition period mips:mips(n32|64)?eb -> mips:mips\1
|
||||
.if defined(TARGET) && defined(TARGET_ARCH) && \
|
||||
${TARGET_ARCH} == "mips" && ${TARGET} == "mips"
|
||||
.warning "TARGET_ARCH of mips is deprecated in favor of mipsel or mipseb"
|
||||
.if defined(TARGET_BIG_ENDIAN)
|
||||
_TARGET_ARCH=mipseb
|
||||
.else
|
||||
_TARGET_ARCH=mipsel
|
||||
${TARGET} == "mips" && ${TARGET_ARCH:Mmips*eb}
|
||||
_TARGET_ARCH= ${TARGET_ARCH:C/eb$//}
|
||||
.warning "TARGET_ARCH of ${TARGET_ARCH} is deprecated in favor of ${_TARGET_ARCH}"
|
||||
.endif
|
||||
.if defined(TARGET) && ${TARGET} == "mips" && defined(TARGET_BIG_ENDIAN)
|
||||
.warning "TARGET_BIG_ENDIAN is no longer necessary for MIPS. Big-endian is not the default."
|
||||
.endif
|
||||
# arm with TARGET_BIG_ENDIAN -> armeb
|
||||
.if defined(TARGET_ARCH) && ${TARGET_ARCH} == "arm" && defined(TARGET_BIG_ENDIAN)
|
||||
@ -317,6 +317,9 @@ tinderbox:
|
||||
toolchains:
|
||||
@cd ${.CURDIR} && ${MAKE} UNIVERSE_TARGET=toolchain universe
|
||||
|
||||
kernel-toolchains:
|
||||
@cd ${.CURDIR} && ${MAKE} UNIVERSE_TARGET=kernel-toolchain universe
|
||||
|
||||
#
|
||||
# universe
|
||||
#
|
||||
@ -327,7 +330,7 @@ toolchains:
|
||||
.if make(universe) || make(universe_kernels) || make(tinderbox) || make(targets)
|
||||
TARGETS?=amd64 arm i386 ia64 mips pc98 powerpc sparc64
|
||||
TARGET_ARCHES_arm?= arm armeb
|
||||
TARGET_ARCHES_mips?= mipsel mipseb mips64el mips64eb mipsn32eb
|
||||
TARGET_ARCHES_mips?= mipsel mips mips64el mips64 mipsn32
|
||||
TARGET_ARCHES_powerpc?= powerpc powerpc64
|
||||
TARGET_ARCHES_pc98?= i386
|
||||
.for target in ${TARGETS}
|
||||
|
@ -15,8 +15,11 @@
|
||||
# -DNO_WWWUPDATE do not update www in ${MAKE} update
|
||||
# -DNO_CTF do not run the DTrace CTF conversion tools on built objects
|
||||
# LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list
|
||||
# LOCAL_TOOL_DIRS="list of dirs" to add additional dirs to the build-tools
|
||||
# list
|
||||
# TARGET="machine" to crossbuild world for a different machine type
|
||||
# TARGET_ARCH= may be required when a TARGET supports multiple endians
|
||||
# BUILDENV_SHELL= shell to launch for the buildenv target (def:/bin/sh)
|
||||
|
||||
#
|
||||
# The intended user-driven targets are:
|
||||
@ -104,6 +107,10 @@ CLEANDIR= clean cleandepend
|
||||
CLEANDIR= cleandir
|
||||
.endif
|
||||
|
||||
LOCAL_TOOL_DIRS?=
|
||||
|
||||
BUILDENV_SHELL?=/bin/sh
|
||||
|
||||
CVS?= cvs
|
||||
CVSFLAGS?= -A -P -d -I!
|
||||
SVN?= svn
|
||||
@ -129,7 +136,7 @@ VERSION!= uname -srp
|
||||
VERSION+= ${OSRELDATE}
|
||||
.endif
|
||||
|
||||
KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mipsel/mips mipseb/mips mips64el/mips mips64eb/mips mipsn32el/mips mipsn32eb/mips powerpc powerpc64/powerpc sparc64
|
||||
KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mips mipsel/mips mips64el/mips mips64/mips mipsn32el/mips mipsn32/mips powerpc powerpc64/powerpc sparc64
|
||||
.if ${TARGET} == ${TARGET_ARCH}
|
||||
_t= ${TARGET}
|
||||
.else
|
||||
@ -461,13 +468,6 @@ build32:
|
||||
-p ${LIB32TMP}/usr/include >/dev/null
|
||||
mkdir -p ${WORLDTMP}
|
||||
ln -sf ${.CURDIR}/sys ${WORLDTMP}
|
||||
.if ${MK_KERBEROS} != "no"
|
||||
.for _t in obj depend all
|
||||
cd ${.CURDIR}/kerberos5/tools; \
|
||||
MAKEOBJDIRPREFIX=${OBJTREE}/lib32 ${MAKE} SSP_CFLAGS= DESTDIR= \
|
||||
DIRPRFX=kerberos5/tools/ ${_t}
|
||||
.endfor
|
||||
.endif
|
||||
.for _t in obj includes
|
||||
cd ${.CURDIR}/include; ${LIB32WMAKE} DIRPRFX=include/ ${_t}
|
||||
cd ${.CURDIR}/lib; ${LIB32WMAKE} DIRPRFX=lib/ ${_t}
|
||||
@ -554,7 +554,7 @@ buildenvvars:
|
||||
|
||||
buildenv:
|
||||
@echo Entering world for ${TARGET_ARCH}:${TARGET}
|
||||
@cd ${.CURDIR} && env ${WMAKEENV} sh || true
|
||||
@cd ${.CURDIR} && env ${WMAKEENV} ${BUILDENV_SHELL} || true
|
||||
|
||||
TOOLCHAIN_TGTS= ${WMAKE_TGTS:N_depend:Neverything:Nbuild32}
|
||||
toolchain: ${TOOLCHAIN_TGTS}
|
||||
@ -828,6 +828,7 @@ buildkernel:
|
||||
@echo ">>> stage 2.3: build tools"
|
||||
@echo "--------------------------------------------------------------"
|
||||
cd ${KRNLOBJDIR}/${_kernel}; \
|
||||
PATH=${BPATH}:${PATH} \
|
||||
MAKESRCPATH=${KERNSRCDIR}/dev/aic7xxx/aicasm \
|
||||
${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF \
|
||||
-f ${KERNSRCDIR}/dev/aic7xxx/aicasm/Makefile
|
||||
@ -835,6 +836,7 @@ buildkernel:
|
||||
.if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES) && exists(${KERNSRCDIR}/modules)
|
||||
.for target in obj depend all
|
||||
cd ${KERNSRCDIR}/modules/aic7xxx/aicasm; \
|
||||
PATH=${BPATH}:${PATH} \
|
||||
MAKEOBJDIRPREFIX=${KRNLOBJDIR}/${_kernel}/modules \
|
||||
${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF ${target}
|
||||
.endfor
|
||||
@ -883,10 +885,21 @@ distributekernel distributekernel.debug:
|
||||
${CROSSENV} PATH=${TMPPATH} ${MAKE} KERNEL=${INSTKERNNAME} \
|
||||
DESTDIR=${DESTDIR}/${DISTDIR}/kernel \
|
||||
${.TARGET:S/distributekernel/install/}
|
||||
.for _kernel in ${BUILDKERNELS:S/${INSTALLKERNEL}//}
|
||||
cd ${KRNLOBJDIR}/${_kernel}; \
|
||||
${CROSSENV} PATH=${TMPPATH} ${MAKE} \
|
||||
KERNEL=${INSTKERNNAME}.${_kernel} \
|
||||
DESTDIR=${DESTDIR}/${DISTDIR}/kernel.${_kernel} \
|
||||
${.TARGET:S/distributekernel/install/}
|
||||
.endfor
|
||||
|
||||
packagekernel:
|
||||
${_+_}cd ${DESTDIR}/${DISTDIR}/kernel; \
|
||||
cd ${DESTDIR}/${DISTDIR}/kernel; \
|
||||
tar cvJf ${DESTDIR}/${DISTDIR}/kernel.txz .
|
||||
.for _kernel in ${BUILDKERNELS:S/${INSTALLKERNEL}//}
|
||||
cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \
|
||||
tar cvJf ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.txz .
|
||||
.endfor
|
||||
|
||||
#
|
||||
# doxygen
|
||||
@ -1034,9 +1047,11 @@ _clang_tblgen= \
|
||||
usr.bin/clang/clang-tblgen
|
||||
.endif
|
||||
|
||||
# dtrace tools are required for older bootstrap env and cross-build
|
||||
.if ${MK_CDDL} != "no" && \
|
||||
${BOOTSTRAPPING} < 800038 && \
|
||||
!(${BOOTSTRAPPING} >= 700112 && ${BOOTSTRAPPING} < 799999)
|
||||
((${BOOTSTRAPPING} < 800038 && \
|
||||
!(${BOOTSTRAPPING} >= 700112 && ${BOOTSTRAPPING} < 799999)) \
|
||||
|| (${MACHINE} != ${TARGET} || ${MACHINE_ARCH} != ${TARGET_ARCH}))
|
||||
_dtrace_tools= cddl/usr.bin/sgsmsg cddl/lib/libctf lib/libelf \
|
||||
lib/libdwarf cddl/usr.bin/ctfconvert cddl/usr.bin/ctfmerge
|
||||
.endif
|
||||
@ -1045,12 +1060,22 @@ _dtrace_tools= cddl/usr.bin/sgsmsg cddl/lib/libctf lib/libelf \
|
||||
_dtc= gnu/usr.bin/dtc
|
||||
.endif
|
||||
|
||||
.if ${MK_KERBEROS} != "no"
|
||||
_kerberos5_bootstrap_tools= \
|
||||
kerberos5/tools/make-roken \
|
||||
kerberos5/lib/libroken \
|
||||
kerberos5/lib/libvers \
|
||||
kerberos5/tools/asn1_compile \
|
||||
kerberos5/tools/slc
|
||||
.endif
|
||||
|
||||
# Please document (add comment) why something is in 'bootstrap-tools'.
|
||||
# Try to bound the building of the bootstrap-tool to just the
|
||||
# FreeBSD versions that need the tool built at this stage of the build.
|
||||
bootstrap-tools:
|
||||
.for _tool in \
|
||||
${_clang_tblgen} \
|
||||
${_kerberos5_bootstrap_tools} \
|
||||
${_dtrace_tools} \
|
||||
${_strfile} \
|
||||
${_gperf} \
|
||||
@ -1088,8 +1113,8 @@ _aicasm= sys/modules/aic7xxx/aicasm
|
||||
_share= share/syscons/scrnmaps
|
||||
.endif
|
||||
|
||||
.if ${MK_KERBEROS} != "no"
|
||||
_kerberos5_tools= kerberos5/tools
|
||||
.if ${MK_GCC} != "no" && ${MK_CLANG_IS_CC} == "no"
|
||||
_gcc_tools= gnu/usr.bin/cc/cc_tools
|
||||
.endif
|
||||
|
||||
.if ${MK_RESCUE} != "no"
|
||||
@ -1101,6 +1126,7 @@ build-tools:
|
||||
bin/csh \
|
||||
bin/sh \
|
||||
${_rescue} \
|
||||
${LOCAL_TOOL_DIRS} \
|
||||
lib/ncurses/ncurses \
|
||||
lib/ncurses/ncursesw \
|
||||
${_share} \
|
||||
@ -1115,8 +1141,7 @@ build-tools:
|
||||
${MAKE} DIRPRFX=${_tool}/ build-tools
|
||||
.endfor
|
||||
.for _tool in \
|
||||
gnu/usr.bin/cc/cc_tools \
|
||||
${_kerberos5_tools}
|
||||
${_gcc_tools}
|
||||
${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all)"; \
|
||||
cd ${.CURDIR}/${_tool}; \
|
||||
${MAKE} DIRPRFX=${_tool}/ obj; \
|
||||
@ -1145,14 +1170,12 @@ _kgzip= usr.sbin/kgzip
|
||||
_binutils= gnu/usr.bin/binutils
|
||||
.endif
|
||||
|
||||
.if ${MK_CLANG} != "no"
|
||||
.if ${CC:T:Mclang} == "clang"
|
||||
.if ${MK_CLANG} != "no" && (${MK_CLANG_IS_CC} != "no" || ${CC:T:Mclang} == "clang")
|
||||
_clang= usr.bin/clang
|
||||
_clang_libs= lib/clang
|
||||
.endif
|
||||
.endif
|
||||
|
||||
.if ${MK_GCC} != "no"
|
||||
.if ${MK_GCC} != "no" && ${MK_CLANG_IS_CC} == "no"
|
||||
_cc= gnu/usr.bin/cc
|
||||
.endif
|
||||
|
||||
@ -1220,12 +1243,20 @@ _startup_libs+= lib/libcxxrt
|
||||
.endif
|
||||
|
||||
gnu/lib/libgcc__L: lib/libc__L
|
||||
.if ${MK_LIBCPLUSPLUS} != "no"
|
||||
lib/libcxxrt__L: gnu/lib/libgcc__L
|
||||
.endif
|
||||
|
||||
_prebuild_libs= ${_kerberos5_lib_libasn1} ${_kerberos5_lib_libhdb} \
|
||||
_prebuild_libs= ${_kerberos5_lib_libasn1} \
|
||||
${_kerberos5_lib_libhdb} \
|
||||
${_kerberos5_lib_libheimbase} \
|
||||
${_kerberos5_lib_libheimntlm} \
|
||||
${_kerberos5_lib_libheimsqlite} \
|
||||
${_kerberos5_lib_libheimipcc} \
|
||||
${_kerberos5_lib_libhx509} ${_kerberos5_lib_libkrb5} \
|
||||
${_kerberos5_lib_libroken} \
|
||||
lib/libbz2 lib/libcom_err lib/libcrypt \
|
||||
${_kerberos5_lib_libwind} \
|
||||
lib/libbz2 ${_libcom_err} lib/libcrypt \
|
||||
lib/libexpat \
|
||||
${_lib_libgssapi} ${_lib_libipx} \
|
||||
lib/libkiconv lib/libkvm lib/liblzma lib/libmd \
|
||||
@ -1275,14 +1306,21 @@ _secure_lib= secure/lib
|
||||
.if ${MK_KERBEROS} != "no"
|
||||
kerberos5/lib/libasn1__L: lib/libcom_err__L kerberos5/lib/libroken__L
|
||||
kerberos5/lib/libhdb__L: kerberos5/lib/libasn1__L lib/libcom_err__L \
|
||||
kerberos5/lib/libkrb5__L kerberos5/lib/libroken__L
|
||||
kerberos5/lib/libheimntlm__L: secure/lib/libcrypto__L kerberos5/lib/libkrb5__L
|
||||
kerberos5/lib/libkrb5__L kerberos5/lib/libroken__L \
|
||||
kerberos5/lib/libwind__L kerberos5/lib/libheimsqlite__L
|
||||
kerberos5/lib/libheimntlm__L: secure/lib/libcrypto__L kerberos5/lib/libkrb5__L \
|
||||
kerberos5/lib/libroken__L lib/libcom_err__L
|
||||
kerberos5/lib/libhx509__L: kerberos5/lib/libasn1__L lib/libcom_err__L \
|
||||
secure/lib/libcrypto__L kerberos5/lib/libroken__L
|
||||
secure/lib/libcrypto__L kerberos5/lib/libroken__L kerberos5/lib/libwind__L
|
||||
kerberos5/lib/libkrb5__L: kerberos5/lib/libasn1__L lib/libcom_err__L \
|
||||
lib/libcrypt__L secure/lib/libcrypto__L kerberos5/lib/libhx509__L \
|
||||
kerberos5/lib/libroken__L
|
||||
kerberos5/lib/libroken__L kerberos5/lib/libwind__L \
|
||||
kerberos5/lib/libheimbase__L kerberos5/lib/libheimipcc__L
|
||||
kerberos5/lib/libroken__L: lib/libcrypt__L
|
||||
kerberos5/lib/libwind__L: kerberos5/lib/libroken__L lib/libcom_err__L
|
||||
kerberos5/lib/libheimbase__L: lib/libthr__L
|
||||
kerberos5/lib/libheimipcc__L: kerberos5/lib/libroken__L kerberos5/lib/libheimbase__L lib/libthr__L
|
||||
kerberos5/lib/libheimsqlite__L: lib/libthr__L
|
||||
.endif
|
||||
|
||||
.if ${MK_GSSAPI} != "no"
|
||||
@ -1297,10 +1335,15 @@ _lib_libipx= lib/libipx
|
||||
_kerberos5_lib= kerberos5/lib
|
||||
_kerberos5_lib_libasn1= kerberos5/lib/libasn1
|
||||
_kerberos5_lib_libhdb= kerberos5/lib/libhdb
|
||||
_kerberos5_lib_libheimbase= kerberos5/lib/libheimbase
|
||||
_kerberos5_lib_libkrb5= kerberos5/lib/libkrb5
|
||||
_kerberos5_lib_libhx509= kerberos5/lib/libhx509
|
||||
_kerberos5_lib_libroken= kerberos5/lib/libroken
|
||||
_kerberos5_lib_libheimntlm= kerberos5/lib/libheimntlm
|
||||
_kerberos5_lib_libheimsqlite= kerberos5/lib/libheimsqlite
|
||||
_kerberos5_lib_libheimipcc= kerberos5/lib/libheimipcc
|
||||
_kerberos5_lib_libwind= kerberos5/lib/libwind
|
||||
_libcom_err= lib/libcom_err
|
||||
.endif
|
||||
|
||||
.if ${MK_NIS} != "no"
|
||||
|
@ -1,5 +0,0 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.if ${MACHINE_ARCH} != "mipsel" && ${MACHINE_ARCH} != "mipseb"
|
||||
MK_RESCUE=no
|
||||
.endif
|
@ -38,6 +38,88 @@
|
||||
# xargs -n1 | sort | uniq -d;
|
||||
# done
|
||||
|
||||
# 20120415: new clang import which bumps version from 3.0 to 3.1
|
||||
OLD_FILES+=usr/include/clang/3.0/altivec.h
|
||||
OLD_FILES+=usr/include/clang/3.0/avxintrin.h
|
||||
OLD_FILES+=usr/include/clang/3.0/emmintrin.h
|
||||
OLD_FILES+=usr/include/clang/3.0/immintrin.h
|
||||
OLD_FILES+=usr/include/clang/3.0/mm3dnow.h
|
||||
OLD_FILES+=usr/include/clang/3.0/mm_malloc.h
|
||||
OLD_FILES+=usr/include/clang/3.0/mmintrin.h
|
||||
OLD_FILES+=usr/include/clang/3.0/nmmintrin.h
|
||||
OLD_FILES+=usr/include/clang/3.0/pmmintrin.h
|
||||
OLD_FILES+=usr/include/clang/3.0/smmintrin.h
|
||||
OLD_FILES+=usr/include/clang/3.0/tmmintrin.h
|
||||
OLD_FILES+=usr/include/clang/3.0/wmmintrin.h
|
||||
OLD_FILES+=usr/include/clang/3.0/x86intrin.h
|
||||
OLD_FILES+=usr/include/clang/3.0/xmmintrin.h
|
||||
OLD_DIRS+=usr/include/clang/3.0
|
||||
# 20120322: Update heimdal to 1.5.1.
|
||||
OLD_FILES+=usr/include/krb5-v4compat.h \
|
||||
usr/include/krb_err.h \
|
||||
usr/include/hdb-private.h \
|
||||
usr/share/man/man3/krb5_addresses.3.gz \
|
||||
usr/share/man/man3/krb5_cc_cursor.3.gz \
|
||||
usr/share/man/man3/krb5_cc_ops.3.gz \
|
||||
usr/share/man/man3/krb5_config.3.gz \
|
||||
usr/share/man/man3/krb5_config_get_int_default.3.gz \
|
||||
usr/share/man/man3/krb5_context.3.gz \
|
||||
usr/share/man/man3/krb5_data.3.gz \
|
||||
usr/share/man/man3/krb5_err.3.gz \
|
||||
usr/share/man/man3/krb5_errx.3.gz \
|
||||
usr/share/man/man3/krb5_keyblock.3.gz \
|
||||
usr/share/man/man3/krb5_keytab_entry.3.gz \
|
||||
usr/share/man/man3/krb5_kt_cursor.3.gz \
|
||||
usr/share/man/man3/krb5_kt_ops.3.gz \
|
||||
usr/share/man/man3/krb5_set_warn_dest.3.gz \
|
||||
usr/share/man/man3/krb5_verr.3.gz \
|
||||
usr/share/man/man3/krb5_verrx.3.gz \
|
||||
usr/share/man/man3/krb5_vwarnx.3.gz \
|
||||
usr/share/man/man3/krb5_warn.3.gz \
|
||||
usr/share/man/man3/krb5_warnx.3.gz
|
||||
OLD_LIBS+=usr/lib/libasn1.so.10 \
|
||||
usr/lib/libhdb.so.10 \
|
||||
usr/lib/libheimntlm.so.10 \
|
||||
usr/lib/libhx509.so.10 \
|
||||
usr/lib/libkadm5clnt.so.10 \
|
||||
usr/lib/libkadm5srv.so.10 \
|
||||
usr/lib/libkafs5.so.10 \
|
||||
usr/lib/libkrb5.so.10 \
|
||||
usr/lib/libroken.so.10 \
|
||||
usr/lib32/libasn1.so.10 \
|
||||
usr/lib32/libhdb.so.10 \
|
||||
usr/lib32/libheimntlm.so.10 \
|
||||
usr/lib32/libhx509.so.10 \
|
||||
usr/lib32/libkadm5clnt.so.10 \
|
||||
usr/lib32/libkadm5srv.so.10 \
|
||||
usr/lib32/libkafs5.so.10 \
|
||||
usr/lib32/libkrb5.so.10 \
|
||||
usr/lib32/libroken.so.10
|
||||
# 20120309: Remove fifofs header files.
|
||||
OLD_FILES+=usr/include/fs/fifofs/fifo.h
|
||||
OLD_DIRS+=usr/include/fs/fifofs
|
||||
# 20120225: libarchive 3.0.3
|
||||
OLD_FILES+=usr/share/man/man3/archive_read_data_into_buffer.3.gz \
|
||||
usr/share/man/man3/archive_read_support_compression_all.3.gz \
|
||||
usr/share/man/man3/archive_read_support_compression_bzip2.3.gz \
|
||||
usr/share/man/man3/archive_read_support_compression_compress.3.gz \
|
||||
usr/share/man/man3/archive_read_support_compression_gzip.3.gz \
|
||||
usr/share/man/man3/archive_read_support_compression_lzma.3.gz \
|
||||
usr/share/man/man3/archive_read_support_compression_none.3.gz \
|
||||
usr/share/man/man3/archive_read_support_compression_program.3.gz \
|
||||
usr/share/man/man3/archive_read_support_compression_program_signature.3.gz \
|
||||
usr/share/man/man3/archive_read_support_compression_xz.3.gz \
|
||||
usr/share/man/man3/archive_write_set_callbacks.3.gz \
|
||||
usr/share/man/man3/archive_write_set_compression_bzip2.3.gz \
|
||||
usr/share/man/man3/archive_write_set_compression_compress.3.gz \
|
||||
usr/share/man/man3/archive_write_set_compression_gzip.3.gz \
|
||||
usr/share/man/man3/archive_write_set_compression_none.3.gz \
|
||||
usr/share/man/man3/archive_write_set_compression_program.3.gz
|
||||
OLD_LIBS+=usr/lib/libarchive.so.5
|
||||
OLD_LIBS+=usr/lib32/libarchive.so.5
|
||||
# 20120113: removal of wtmpcvt(1)
|
||||
OLD_FILES+=usr/bin/wtmpcvt
|
||||
OLD_FILES+=usr/share/man/man1/wtmpcvt.1.gz
|
||||
# 20111214: eventtimers(7) moved to eventtimers(4)
|
||||
OLD_FILES+=usr/share/man/man7/eventtimers.7.gz
|
||||
# 20111125: amd(4) removed
|
||||
@ -47,12 +129,10 @@ OLD_FILES+=usr/lib/libodialog.a
|
||||
OLD_FILES+=usr/lib/libodialog.so
|
||||
OLD_LIBS+=usr/lib/libodialog.so.7
|
||||
OLD_FILES+=usr/lib/libodialog_p.a
|
||||
.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64"
|
||||
OLD_FILES+=usr/lib32/libodialog.a
|
||||
OLD_FILES+=usr/lib32/libodialog.so
|
||||
OLD_LIBS+=usr/lib32/libodialog.so.7
|
||||
OLD_FILES+=usr/lib32/libodialog_p.a
|
||||
.endif
|
||||
# 20110930: sysinstall removed
|
||||
OLD_FILES+=usr/sbin/sysinstall
|
||||
OLD_FILES+=usr/share/man/man8/sysinstall.8.gz
|
||||
@ -60,12 +140,10 @@ OLD_FILES+=usr/lib/libftpio.a
|
||||
OLD_FILES+=usr/lib/libftpio.so
|
||||
OLD_LIBS+=usr/lib/libftpio.so.8
|
||||
OLD_FILES+=usr/lib/libftpio_p.a
|
||||
.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64"
|
||||
OLD_FILES+=usr/lib32/libftpio.a
|
||||
OLD_FILES+=usr/lib32/libftpio.so
|
||||
OLD_LIBS+=usr/lib32/libftpio.so.8
|
||||
OLD_FILES+=usr/lib32/libftpio_p.a
|
||||
.endif
|
||||
OLD_FILES+=usr/include/ftpio.h
|
||||
OLD_FILES+=usr/share/man/man3/ftpio.3.gz
|
||||
# 20110915: rename congestion control manpages
|
||||
@ -84,7 +162,6 @@ OLD_LIBS+=usr/lib/libdwarf.so.2
|
||||
OLD_LIBS+=usr/lib/libopie.so.6
|
||||
OLD_LIBS+=usr/lib/librtld_db.so.1
|
||||
OLD_LIBS+=usr/lib/libtacplus.so.4
|
||||
.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64"
|
||||
OLD_LIBS+=usr/lib32/libcam.so.5
|
||||
OLD_LIBS+=usr/lib32/libpcap.so.7
|
||||
OLD_LIBS+=usr/lib32/libufs.so.5
|
||||
@ -93,7 +170,6 @@ OLD_LIBS+=usr/lib32/libdwarf.so.2
|
||||
OLD_LIBS+=usr/lib32/libopie.so.6
|
||||
OLD_LIBS+=usr/lib32/librtld_db.so.1
|
||||
OLD_LIBS+=usr/lib32/libtacplus.so.4
|
||||
.endif
|
||||
# 20110817: no more acd.4, ad.4, afd.4 and ast.4
|
||||
OLD_FILES+=usr/share/man/man4/acd.4.gz
|
||||
OLD_FILES+=usr/share/man/man4/ad.4.gz
|
||||
@ -133,17 +209,13 @@ OLD_FILES+=usr/lib/libpkg.a
|
||||
OLD_FILES+=usr/lib/libpkg.so
|
||||
OLD_LIBS+=usr/lib/libpkg.so.0
|
||||
OLD_FILES+=usr/lib/libpkg_p.a
|
||||
.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64"
|
||||
OLD_FILES+=usr/lib32/libpkg.a
|
||||
OLD_FILES+=usr/lib32/libpkg.so
|
||||
OLD_LIBS+=usr/lib32/libpkg.so.0
|
||||
OLD_FILES+=usr/lib32/libpkg_p.a
|
||||
.endif
|
||||
# 20110517: libsbuf version bump
|
||||
OLD_LIBS+=lib/libsbuf.so.5
|
||||
.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64"
|
||||
OLD_LIBS+=usr/lib32/libsbuf.so.5
|
||||
.endif
|
||||
# 20110502: new clang import which bumps version from 2.9 to 3.0
|
||||
OLD_FILES+=usr/include/clang/2.9/emmintrin.h
|
||||
OLD_FILES+=usr/include/clang/2.9/mm_malloc.h
|
||||
@ -172,12 +244,10 @@ OLD_FILES+=usr/lib/libobjc_p.a
|
||||
OLD_FILES+=usr/libexec/cc1obj
|
||||
OLD_LIBS+=usr/lib/libobjc.so.4
|
||||
OLD_DIRS+=usr/include/objc
|
||||
.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64"
|
||||
OLD_FILES+=usr/lib32/libobjc.a
|
||||
OLD_FILES+=usr/lib32/libobjc.so
|
||||
OLD_FILES+=usr/lib32/libobjc_p.a
|
||||
OLD_LIBS+=usr/lib32/libobjc.so.4
|
||||
.endif
|
||||
# 20110331: firmware.img created at build time
|
||||
OLD_FILES+=usr/share/examples/kld/firmware/fwimage/firmware.img
|
||||
# 20110224: sticky.8 -> sticky.7
|
||||
@ -299,9 +369,7 @@ OLD_FILES+=usr/include/machine/intr.h
|
||||
.endif
|
||||
# 20100514: library version bump for versioned symbols for liblzma
|
||||
OLD_LIBS+=usr/lib/liblzma.so.0
|
||||
.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64"
|
||||
OLD_LIBS+=usr/lib32/liblzma.so.0
|
||||
.endif
|
||||
# 20100511: move GCC-specific headers to /usr/include/gcc
|
||||
.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386"
|
||||
OLD_FILES+=usr/include/emmintrin.h
|
||||
@ -342,9 +410,7 @@ OLD_FILES+=usr/share/info/cpio.info.gz
|
||||
OLD_FILES+=usr/share/man/man1/gcpio.1.gz
|
||||
# 20100322: libz update
|
||||
OLD_LIBS+=lib/libz.so.5
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libz.so.5
|
||||
.endif
|
||||
# 20100314: removal of regexp.h
|
||||
OLD_FILES+=usr/include/regexp.h
|
||||
OLD_FILES+=usr/share/man/man3/regexp.3.gz
|
||||
@ -393,6 +459,7 @@ OLD_FILES+=usr/share/man/man5/lastlog.5.gz
|
||||
OLD_FILES+=usr/share/man/man5/utmp.5.gz
|
||||
OLD_FILES+=usr/share/man/man5/wtmp.5.gz
|
||||
OLD_LIBS+=lib/libutil.so.8
|
||||
OLB_LIBS+=usr/lib32/libutil.so.8
|
||||
# 20100105: new userland semaphore implementation
|
||||
OLD_FILES+=usr/include/sys/semaphore.h
|
||||
# 20100103: ntptrace(8) removed
|
||||
@ -600,7 +667,6 @@ OLD_LIBS+=usr/lib/snmp_hostres.so.5
|
||||
OLD_LIBS+=usr/lib/snmp_mibII.so.5
|
||||
OLD_LIBS+=usr/lib/snmp_netgraph.so.5
|
||||
OLD_LIBS+=usr/lib/snmp_pf.so.5
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libalias.so.6
|
||||
OLD_LIBS+=usr/lib32/libarchive.so.4
|
||||
OLD_LIBS+=usr/lib32/libauditd.so.4
|
||||
@ -701,9 +767,10 @@ OLD_LIBS+=usr/lib32/pam_self.so.4
|
||||
OLD_LIBS+=usr/lib32/pam_ssh.so.4
|
||||
OLD_LIBS+=usr/lib32/pam_tacplus.so.4
|
||||
OLD_LIBS+=usr/lib32/pam_unix.so.4
|
||||
.endif
|
||||
# 20090718: the gdm pam.d file is no longer required.
|
||||
OLD_FILES+=etc/pam.d/gdm
|
||||
# 20090714: net_add_domain(9) renamed to domain_add(9)
|
||||
OLD_FILES+=usr/share/man/man9/net_add_domain.9.gz
|
||||
# 20090713: vimage container structs removed.
|
||||
OLD_FILES+=usr/include/netinet/vinet.h
|
||||
OLD_FILES+=usr/include/netinet6/vinet6.h
|
||||
@ -886,9 +953,7 @@ OLD_FILES+=usr/share/man/man8/sliplogin.8.gz
|
||||
OLD_FILES+=usr/share/man/man8/slstat.8.gz
|
||||
# 20090321: libpcap upgraded to 1.0.0
|
||||
OLD_LIBS+=lib/libpcap.so.5
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libpcap.so.5
|
||||
.endif
|
||||
# 20090319: uscanner(4) has been removed
|
||||
OLD_FILES+=usr/share/man/man4/uscanner.4.gz
|
||||
# 20090313: k8temp(4) renamed to amdtemp(4)
|
||||
@ -900,17 +965,13 @@ OLD_FILES+=usr/lib/libusb20.so
|
||||
OLD_FILES+=usr/lib/libusb20_p.a
|
||||
OLD_FILES+=usr/include/libusb20_compat01.h
|
||||
OLD_FILES+=usr/include/libusb20_compat10.h
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libusb20.so.1
|
||||
OLD_FILES+=usr/lib32/libusb20.a
|
||||
OLD_FILES+=usr/lib32/libusb20.so
|
||||
OLD_FILES+=usr/lib32/libusb20_p.a
|
||||
.endif
|
||||
# 20090226: libmp(3) functions renamed
|
||||
OLD_LIBS+=usr/lib/libmp.so.6
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libmp.so.6
|
||||
.endif
|
||||
# 20090223: changeover of USB stacks
|
||||
OLD_FILES+=usr/include/dev/usb2/include/ufm2_ioctl.h
|
||||
OLD_FILES+=usr/include/dev/usb2/include/urio2_ioctl.h
|
||||
@ -1213,9 +1274,7 @@ OLD_LIBS+=usr/lib/libkadm5srv.so.9
|
||||
OLD_LIBS+=usr/lib/libkafs5.so.9
|
||||
OLD_LIBS+=usr/lib/libkrb5.so.9
|
||||
OLD_LIBS+=usr/lib/libroken.so.9
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libgssapi.so.9
|
||||
.endif
|
||||
# 20080420: Symbol card support dropped
|
||||
OLD_FILES+=usr/include/dev/wi/spectrum24t_cf.h
|
||||
# 20080420: awi removal
|
||||
@ -1242,10 +1301,8 @@ OLD_FILES+=usr/share/man/man2/kse_release.2.gz
|
||||
OLD_FILES+=usr/share/man/man2/kse_switchin.2.gz
|
||||
OLD_FILES+=usr/share/man/man2/kse_thr_interrupt.2.gz
|
||||
OLD_FILES+=usr/share/man/man2/kse_wakeup.2.gz
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_FILES+=usr/lib32/libkse.so
|
||||
OLD_LIBS+=usr/lib32/libkse.so.3
|
||||
.endif
|
||||
# 20080220: geom_lvm rename to geom_linux_lvm
|
||||
OLD_FILES+=usr/share/man/man4/geom_lvm.4.gz
|
||||
# 20080126: oldcard.4 removal
|
||||
@ -1265,11 +1322,9 @@ OLD_FILES+=usr/include/sys/xrpuio.h
|
||||
OLD_FILES+=usr/lib/libkse.a
|
||||
OLD_FILES+=usr/lib/libkse_p.a
|
||||
OLD_FILES+=usr/lib/libkse_pic.a
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_FILES+=usr/lib32/libkse.a
|
||||
OLD_FILES+=usr/lib32/libkse_p.a
|
||||
OLD_FILES+=usr/lib32/libkse_pic.a
|
||||
.endif
|
||||
# 20071129: Removed a Solaris compatibility header
|
||||
OLD_FILES+=usr/include/sys/_elf_solaris.h
|
||||
# 20071125: Renamed to pmc_get_msr()
|
||||
@ -1369,12 +1424,10 @@ OLD_DIRS+=usr/include/netatm/ipatm
|
||||
OLD_DIRS+=usr/include/netatm/uni
|
||||
OLD_DIRS+=usr/include/netatm
|
||||
OLD_DIRS+=usr/share/examples/atm
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_FILES+=usr/lib32/libatm.a
|
||||
OLD_FILES+=usr/lib32/libatm.so
|
||||
OLD_LIBS+=usr/lib32/libatm.so.5
|
||||
OLD_FILES+=usr/lib32/libatm_p.a
|
||||
.endif
|
||||
# 20070705: I4B headers repo-copied to include/i4b/
|
||||
.if ${TARGET_ARCH} == "i386"
|
||||
OLD_FILES+=usr/include/machine/i4b_cause.h
|
||||
@ -1459,7 +1512,6 @@ OLD_LIBS+=usr/lib/snmp_hostres.so.4
|
||||
OLD_LIBS+=usr/lib/snmp_mibII.so.4
|
||||
OLD_LIBS+=usr/lib/snmp_netgraph.so.4
|
||||
OLD_LIBS+=usr/lib/snmp_pf.so.4
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libalias.so.5
|
||||
OLD_LIBS+=usr/lib32/libbsnmp.so.3
|
||||
OLD_LIBS+=usr/lib32/libdialog.so.5
|
||||
@ -1494,7 +1546,6 @@ OLD_LIBS+=usr/lib32/pam_self.so.3
|
||||
OLD_LIBS+=usr/lib32/pam_ssh.so.3
|
||||
OLD_LIBS+=usr/lib32/pam_tacplus.so.3
|
||||
OLD_LIBS+=usr/lib32/pam_unix.so.3
|
||||
.endif
|
||||
# 20070613: IPX over IP tunnel removal
|
||||
OLD_FILES+=usr/include/netipx/ipx_ip.h
|
||||
# 20070605: sched_core removal
|
||||
@ -1564,7 +1615,6 @@ OLD_LIBS+=usr/lib/libwrap.so.4
|
||||
OLD_LIBS+=usr/lib/libypclnt.so.2
|
||||
OLD_LIBS+=usr/lib/snmp_bridge.so.3
|
||||
OLD_LIBS+=usr/lib/snmp_hostres.so.3
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libatm.so.4
|
||||
OLD_LIBS+=usr/lib32/libbegemot.so.2
|
||||
OLD_LIBS+=usr/lib32/libbluetooth.so.2
|
||||
@ -1623,7 +1673,6 @@ OLD_LIBS+=usr/lib32/libvgl.so.4
|
||||
OLD_LIBS+=usr/lib32/libwrap.so.4
|
||||
OLD_LIBS+=usr/lib32/libypclnt.so.2
|
||||
OLD_LIBS+=usr/lib32/libz.so.3
|
||||
.endif
|
||||
# 20070519: GCC 4.2
|
||||
OLD_FILES+=usr/bin/f77
|
||||
OLD_FILES+=usr/bin/protoize
|
||||
@ -1870,9 +1919,7 @@ OLD_FILES+=usr/bin/uuidgen
|
||||
OLD_FILES+=usr/share/info/bzip2.info.gz
|
||||
# 20070303: libarchive 2.0
|
||||
OLD_LIBS+=usr/lib/libarchive.so.3
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libarchive.so.3
|
||||
.endif
|
||||
# 20070301: remove addr2ascii and ascii2addr
|
||||
OLD_FILES+=usr/share/man/man3/addr2ascii.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/ascii2addr.3.gz
|
||||
@ -1889,14 +1936,12 @@ OLD_FILES+=usr/lib/libmytinfo_p.a
|
||||
OLD_FILES+=usr/lib/libmytinfow.a
|
||||
OLD_FILES+=usr/lib/libmytinfow.so
|
||||
OLD_FILES+=usr/lib/libmytinfow_p.a
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_FILES+=usr/lib32/libmytinfo.a
|
||||
OLD_FILES+=usr/lib32/libmytinfo.so
|
||||
OLD_FILES+=usr/lib32/libmytinfo_p.a
|
||||
OLD_FILES+=usr/lib32/libmytinfow.a
|
||||
OLD_FILES+=usr/lib32/libmytinfow.so
|
||||
OLD_FILES+=usr/lib32/libmytinfow_p.a
|
||||
.endif
|
||||
# 20070128: remove vnconfig
|
||||
OLD_FILES+=usr/sbin/vnconfig
|
||||
# 20070127: remove bpf_compat.h
|
||||
@ -4579,9 +4624,7 @@ OLD_FILES+=usr/share/man/man1/x509.1.gz
|
||||
OLD_FILES+=usr/share/man/man3/SSL_COMP_add_compression_method.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/SSL_CTX_get_ex_new_index.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/archive_entry_dup.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/archive_entry_hardlink_w.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/archive_entry_set_tartype.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/archive_entry_symlink_w.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/archive_entry_tartype.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/archive_read_data_into_file.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/archive_read_open_tar.3.gz
|
||||
@ -5240,40 +5283,32 @@ OLD_LIBS+=usr/lib/libkadm5srv.so.8
|
||||
OLD_LIBS+=usr/lib/libkafs5.so.8
|
||||
OLD_LIBS+=usr/lib/libkrb5.so.8
|
||||
OLD_LIBS+=usr/lib/libobjc.so.2
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libgssapi.so.8
|
||||
OLD_LIBS+=usr/lib32/libobjc.so.2
|
||||
.endif
|
||||
# 20070519: GCC 4.2
|
||||
OLD_LIBS+=usr/lib/libg2c.a
|
||||
OLD_LIBS+=usr/lib/libg2c.so
|
||||
OLD_LIBS+=usr/lib/libg2c.so.2
|
||||
OLD_LIBS+=usr/lib/libg2c_p.a
|
||||
OLD_LIBS+=usr/lib/libgcc_pic.a
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libg2c.a
|
||||
OLD_LIBS+=usr/lib32/libg2c.so
|
||||
OLD_LIBS+=usr/lib32/libg2c.so.2
|
||||
OLD_LIBS+=usr/lib32/libg2c_p.a
|
||||
OLD_LIBS+=usr/lib32/libgcc_pic.a
|
||||
.endif
|
||||
# 20060729: OpenSSL 0.9.7e -> 0.9.8b upgrade
|
||||
OLD_LIBS+=lib/libcrypto.so.4
|
||||
OLD_LIBS+=usr/lib/libssl.so.4
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libcrypto.so.4
|
||||
OLD_LIBS+=usr/lib32/libssl.so.4
|
||||
.endif
|
||||
# 20060521: gethostbyaddr(3) ABI change
|
||||
OLD_LIBS+=usr/lib/libroken.so.8
|
||||
OLD_LIBS+=lib/libatm.so.3
|
||||
OLD_LIBS+=lib/libc.so.6
|
||||
OLD_LIBS+=lib/libutil.so.5
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libatm.so.3
|
||||
OLD_LIBS+=usr/lib32/libc.so.6
|
||||
OLD_LIBS+=usr/lib32/libutil.so.5
|
||||
.endif
|
||||
# 20060413: shared library moved to /usr/lib
|
||||
OLD_LIBS+=lib/libgpib.so.1
|
||||
# 20060413: libpcap.so.4 moved to /lib/
|
||||
@ -5287,12 +5322,10 @@ OLD_LIBS+=usr/lib/libc_r.a
|
||||
OLD_LIBS+=usr/lib/libc_r.so
|
||||
OLD_LIBS+=usr/lib/libc_r.so.7
|
||||
OLD_LIBS+=usr/lib/libc_r_p.a
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libc_r.a
|
||||
OLD_LIBS+=usr/lib32/libc_r.so
|
||||
OLD_LIBS+=usr/lib32/libc_r.so.7
|
||||
OLD_LIBS+=usr/lib32/libc_r_p.a
|
||||
.endif
|
||||
# 20050722: bump for 6.0-RELEASE
|
||||
OLD_LIBS+=lib/libalias.so.4
|
||||
OLD_LIBS+=lib/libatm.so.2
|
||||
@ -5504,10 +5537,8 @@ OLD_LIBS+=usr/lib/libc_r.so.3
|
||||
OLD_LIBS+=usr/lib/libarchive.so.2
|
||||
OLD_LIBS+=usr/lib/libbsnmp.so.1
|
||||
OLD_LIBS+=usr/lib/libc_r.so.6
|
||||
.if ${TARGET_ARCH} == "amd64"
|
||||
OLD_LIBS+=usr/lib32/libarchive.so.2
|
||||
OLD_LIBS+=usr/lib32/libc_r.so.6
|
||||
.endif
|
||||
OLD_LIBS+=usr/lib/libcipher.so.2
|
||||
OLD_LIBS+=usr/lib/libgssapi.so.6
|
||||
OLD_LIBS+=usr/lib/libkse.so.1
|
||||
|
57
UPDATING
57
UPDATING
@ -19,8 +19,61 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10.x IS SLOW:
|
||||
includes various WITNESS- related kernel options, INVARIANTS, malloc
|
||||
debugging flags in userland, and various verbose features in the
|
||||
kernel. Many developers choose to disable these features on build
|
||||
machines to maximize performance. (To disable malloc debugging, run
|
||||
ln -s aj /etc/malloc.conf.)
|
||||
machines to maximize performance. (To completely disable malloc
|
||||
debugging, define MALLOC_PRODUCTION in /etc/make.conf, or to merely
|
||||
disable the most expensive debugging functionality run
|
||||
"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
|
||||
|
||||
20120417:
|
||||
The malloc(3) implementation embedded in libc now uses sources imported
|
||||
as contrib/jemalloc. The most disruptive API change is to
|
||||
/etc/malloc.conf. If your system has an old-style /etc/malloc.conf,
|
||||
delete it prior to installworld, and optionally re-create it using the
|
||||
new format after rebooting. See malloc.conf(5) for details
|
||||
(specifically the TUNING section and the "opt.*" entries in the MALLCTL
|
||||
NAMESPACE section).
|
||||
|
||||
20120328:
|
||||
Big-endian MIPS TARGET_ARCH values no longer end in "eb". mips64eb
|
||||
is now spelled mips64. mipsn32eb is now spelled mipsn32. mipseb is
|
||||
now spelled mips. This is to aid compatibility with third-party
|
||||
software that expects this naming scheme in uname(3). Little-endian
|
||||
settings are unchanged.
|
||||
|
||||
20120306:
|
||||
Disable by default the option VFS_ALLOW_NONMPSAFE for all supported
|
||||
platforms.
|
||||
|
||||
20120229:
|
||||
Now unix domain sockets behave "as expected" on nullfs(5). Previously
|
||||
nullfs(5) did not pass through all behaviours to the underlying layer,
|
||||
as a result if we bound to a socket on the lower layer we could connect
|
||||
only to the lower path; if we bound to the upper layer we could connect
|
||||
only to the upper path. The new behavior is one can connect to both the
|
||||
lower and the upper paths regardless what layer path one binds to.
|
||||
|
||||
20120211:
|
||||
The getifaddrs upgrade path broken with 20111215 has been restored.
|
||||
If you have upgraded in between 20111215 and 20120209 you need to
|
||||
recompile libc again with your kernel. You still need to recompile
|
||||
world to be able to configure CARP but this restriction already
|
||||
comes from 20111215.
|
||||
|
||||
20120114:
|
||||
The set_rcvar() function has been removed from /etc/rc.subr. All
|
||||
base and ports rc.d scripts have been updated, so if you have a
|
||||
port installed with a script in /usr/local/etc/rc.d you can either
|
||||
hand-edit the rcvar= line, or reinstall the port.
|
||||
|
||||
An easy way to handle the mass-update of /etc/rc.d:
|
||||
rm /etc/rc.d/* && mergemaster -i
|
||||
|
||||
20120109:
|
||||
panic(9) now stops other CPUs in the SMP systems, disables interrupts
|
||||
on the current CPU and prevents other threads from running.
|
||||
This behavior can be reverted using the kern.stop_scheduler_on_panic
|
||||
tunable/sysctl.
|
||||
The new behavior can be incompatible with kern.sync_on_panic.
|
||||
|
||||
20111215:
|
||||
The carp(4) facility has been changed significantly. Configuration
|
||||
|
@ -18,7 +18,7 @@ DFLAGS= -D_PATH_TCSHELL='"/rescue/${PROG}"'
|
||||
DFLAGS= -D_PATH_TCSHELL='"/bin/${PROG}"'
|
||||
.endif
|
||||
CFLAGS+= -I. -I${.CURDIR} -I${TCSHDIR} ${DFLAGS}
|
||||
WARNS?= 0
|
||||
WARNS?= 1
|
||||
SRCS= sh.c sh.dir.c sh.dol.c sh.err.c sh.exec.c sh.char.c \
|
||||
sh.exp.c sh.file.c sh.func.c sh.glob.c sh.hist.c sh.init.c \
|
||||
sh.lex.c sh.misc.c sh.parse.c sh.print.c sh.proc.c sh.sem.c \
|
||||
@ -116,10 +116,10 @@ gethost: gethost.c sh.err.h tc.const.h sh.h
|
||||
${CC} -o gethost ${LDFLAGS} ${CFLAGS:C/-DHAVE_ICONV//} \
|
||||
${TCSHDIR}/gethost.c
|
||||
|
||||
tc.defs.c: gethost ${.CURDIR}/host.defs
|
||||
tc.defs.c: gethost ${TCSHDIR}/host.defs
|
||||
@rm -f ${.TARGET}
|
||||
@echo "/* Do not edit this file, make creates it */" > ${.TARGET}
|
||||
./gethost ${.CURDIR}/host.defs >> ${.TARGET}
|
||||
./gethost ${TCSHDIR}/host.defs >> ${.TARGET}
|
||||
|
||||
ed.defns.h: ed.defns.c
|
||||
@rm -f ${.TARGET}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* $FreeBSD$ */
|
||||
/* config.h. Generated by configure. */
|
||||
/* config.h. Generated from config.h.in by configure. */
|
||||
/* config.h.in. Generated from configure.in by autoheader. */
|
||||
|
||||
/* Define to the type of elements in the array set by `getgroups'. Usually
|
||||
@ -12,9 +12,6 @@
|
||||
/* Define to 1 if you have the <auth.h> header file. */
|
||||
/* #undef HAVE_AUTH_H */
|
||||
|
||||
/* Define to 1 if you have the `catgets' function. */
|
||||
#define HAVE_CATGETS 1
|
||||
|
||||
/* Define to 1 if you have the <crypt.h> header file. */
|
||||
/* #undef HAVE_CRYPT_H */
|
||||
|
||||
@ -41,6 +38,9 @@
|
||||
/* Define to 1 if you have the `dup2' function. */
|
||||
#define HAVE_DUP2 1
|
||||
|
||||
/* Define to 1 if you have the <features.h> header file. */
|
||||
/* #undef HAVE_FEATURES_H */
|
||||
|
||||
/* Define to 1 if you have the `getauthid' function. */
|
||||
/* #undef HAVE_GETAUTHID */
|
||||
|
||||
@ -54,9 +54,12 @@
|
||||
#define HAVE_GETPWENT 1
|
||||
|
||||
/* Define to 1 if you have the `getutent' function. */
|
||||
#define HAVE_GETUTENT 1
|
||||
/* #undef HAVE_GETUTENT */
|
||||
|
||||
/* Define if you have the iconv() function. */
|
||||
/* Define to 1 if you have the `getutxent' function. */
|
||||
#define HAVE_GETUTXENT 1
|
||||
|
||||
/* Define if you have the iconv() function and it works. */
|
||||
/* #undef HAVE_ICONV */
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
@ -65,6 +68,9 @@
|
||||
/* Define to 1 if the system has the type `long long'. */
|
||||
#define HAVE_LONG_LONG 1
|
||||
|
||||
/* Define to 1 if you have the `mallinfo' function. */
|
||||
/* #undef HAVE_MALLINFO */
|
||||
|
||||
/* Define to 1 if mbrtowc and mbstate_t are properly declared. */
|
||||
#define HAVE_MBRTOWC 1
|
||||
|
||||
@ -77,6 +83,9 @@
|
||||
/* Define to 1 if you have the `memset' function. */
|
||||
#define HAVE_MEMSET 1
|
||||
|
||||
/* Define to 1 if you have the `mkstemp' function. */
|
||||
#define HAVE_MKSTEMP 1
|
||||
|
||||
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
|
||||
/* #undef HAVE_NDIR_H */
|
||||
|
||||
@ -86,6 +95,9 @@
|
||||
/* Define to 1 if you have the `nl_langinfo' function. */
|
||||
#define HAVE_NL_LANGINFO 1
|
||||
|
||||
/* Define to 1 if you have the <paths.h> header file. */
|
||||
#define HAVE_PATHS_H 1
|
||||
|
||||
/* Define to 1 if you have the `sbrk' function. */
|
||||
#define HAVE_SBRK 1
|
||||
|
||||
@ -120,22 +132,34 @@
|
||||
/* Define to 1 if you have the `strstr' function. */
|
||||
#define HAVE_STRSTR 1
|
||||
|
||||
/* Define to 1 if `d_ino' is member of `struct dirent'. */
|
||||
/* Define to 1 if `d_ino' is a member of `struct dirent'. */
|
||||
#define HAVE_STRUCT_DIRENT_D_INO 1
|
||||
|
||||
/* Define to 1 if `ss_family' is member of `struct sockaddr_storage'. */
|
||||
/* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */
|
||||
#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
|
||||
|
||||
/* Define to 1 if `ut_host' is member of `struct utmp'. */
|
||||
/* Define to 1 if `ut_host' is a member of `struct utmpx'. */
|
||||
#define HAVE_STRUCT_UTMPX_UT_HOST 1
|
||||
|
||||
/* Define to 1 if `ut_tv' is a member of `struct utmpx'. */
|
||||
#define HAVE_STRUCT_UTMPX_UT_TV 1
|
||||
|
||||
/* Define to 1 if `ut_user' is a member of `struct utmpx'. */
|
||||
#define HAVE_STRUCT_UTMPX_UT_USER 1
|
||||
|
||||
/* Define to 1 if `ut_xtime' is a member of `struct utmpx'. */
|
||||
/* #undef HAVE_STRUCT_UTMPX_UT_XTIME */
|
||||
|
||||
/* Define to 1 if `ut_host' is a member of `struct utmp'. */
|
||||
#define HAVE_STRUCT_UTMP_UT_HOST 1
|
||||
|
||||
/* Define to 1 if `ut_tv' is member of `struct utmp'. */
|
||||
/* Define to 1 if `ut_tv' is a member of `struct utmp'. */
|
||||
#define HAVE_STRUCT_UTMP_UT_TV 1
|
||||
|
||||
/* Define to 1 if `ut_user' is member of `struct utmp'. */
|
||||
/* Define to 1 if `ut_user' is a member of `struct utmp'. */
|
||||
#define HAVE_STRUCT_UTMP_UT_USER 1
|
||||
|
||||
/* Define to 1 if `ut_xtime' is member of `struct utmp'. */
|
||||
/* Define to 1 if `ut_xtime' is a member of `struct utmp'. */
|
||||
/* #undef HAVE_STRUCT_UTMP_UT_XTIME */
|
||||
|
||||
/* Define to 1 if you have the `sysconf' function. */
|
||||
@ -179,25 +203,31 @@
|
||||
/* Support NLS. */
|
||||
#define NLS 1
|
||||
|
||||
/* Support NLS catalogs. */
|
||||
#define NLS_CATALOGS 1
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT ""
|
||||
#define PACKAGE_BUGREPORT "http://bugs.gw.com/"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME ""
|
||||
#define PACKAGE_NAME "tcsh"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING ""
|
||||
#define PACKAGE_STRING "tcsh 6.18.01"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME ""
|
||||
#define PACKAGE_TARNAME "tcsh"
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION ""
|
||||
#define PACKAGE_VERSION "6.18.01"
|
||||
|
||||
/* Define to 1 if the `setpgrp' function takes no argument. */
|
||||
/* #undef SETPGRP_VOID */
|
||||
|
||||
/* The size of a `wchar_t', as computed by sizeof. */
|
||||
/* The size of `wchar_t', as computed by sizeof. */
|
||||
#define SIZEOF_WCHAR_T 4
|
||||
|
||||
/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
|
||||
@ -206,6 +236,11 @@
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
|
||||
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
|
||||
#define below would cause a syntax error. */
|
||||
/* #undef _UINT32_T */
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
/* #undef const */
|
||||
|
||||
@ -215,7 +250,7 @@
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
/* #undef mode_t */
|
||||
|
||||
/* Define to `unsigned' if <sys/types.h> does not define. */
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
||||
|
||||
/* Define to `int' if neither <sys/types.h> nor <sys/socket.h> define. */
|
||||
@ -227,6 +262,10 @@
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
/* #undef uid_t */
|
||||
|
||||
/* Define to the type of an unsigned integer type of width exactly 32 bits if
|
||||
such a type exists and the standard includes do not define it. */
|
||||
/* #undef uint32_t */
|
||||
|
||||
/* Define to empty if the keyword `volatile' does not work. Warning: valid
|
||||
code using `volatile' can become incorrect without. Disable with care. */
|
||||
/* #undef volatile */
|
||||
@ -234,9 +273,5 @@
|
||||
#include "config_p.h"
|
||||
#include "config_f.h"
|
||||
|
||||
#ifndef NO_NLS_CATALOGS
|
||||
#define NLS_CATALOGS
|
||||
#endif
|
||||
|
||||
/* Work around a vendor issue where config_f.h is #undef'ing this setting */
|
||||
#define SYSMALLOC
|
||||
|
@ -106,9 +106,6 @@
|
||||
|
||||
#elif defined(__APPLE__)
|
||||
# define SYSMALLOC
|
||||
|
||||
#else
|
||||
# define NLS_CATALOGS
|
||||
#endif
|
||||
|
||||
#endif /* _h_config */
|
||||
|
1140
bin/csh/host.defs
1140
bin/csh/host.defs
File diff suppressed because it is too large
Load Diff
@ -29,7 +29,7 @@
|
||||
.\" @(#)df.1 8.3 (Berkeley) 5/8/95
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd October 18, 2011
|
||||
.Dd March 3, 2012
|
||||
.Dt DF 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -158,7 +158,9 @@ is set, the block counts will be displayed in units of that size block.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr lsvfs 1 ,
|
||||
.Xr pstat 1 ,
|
||||
.Xr quota 1 ,
|
||||
.Xr swapinfo 1 ,
|
||||
.Xr fstatfs 2 ,
|
||||
.Xr getfsstat 2 ,
|
||||
.Xr statfs 2 ,
|
||||
|
@ -30,7 +30,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd September 9, 2010
|
||||
.Dd February 25, 2012
|
||||
.Dt EXPR 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -52,7 +52,7 @@ Several of the operators have special meaning to command interpreters
|
||||
and must therefore be quoted appropriately.
|
||||
All integer operands are interpreted in base 10 and must consist of only
|
||||
an optional leading minus sign followed by one or more digits (unless
|
||||
less strict parsing has been enabled for backwards compatibilty with
|
||||
less strict parsing has been enabled for backwards compatibility with
|
||||
prior versions of
|
||||
.Nm
|
||||
in
|
||||
@ -176,7 +176,8 @@ option, since this matches the historic behavior of
|
||||
.Nm
|
||||
in
|
||||
.Fx . This option makes number parsing less strict and permits leading
|
||||
white space and an optional leading plus sign. In addition, empty operands
|
||||
white space and an optional leading plus sign.
|
||||
In addition, empty operands
|
||||
have an implied value of zero in numeric context.
|
||||
For historical reasons, defining the environment variable
|
||||
.Ev EXPR_COMPAT
|
||||
@ -284,7 +285,7 @@ An empty operand string is interpreted as 0.
|
||||
.Bl -bullet
|
||||
.It
|
||||
Leading white space and/or a plus sign before an otherwise valid positive
|
||||
numberic operand are allowed and will be ignored.
|
||||
numeric operand are allowed and will be ignored.
|
||||
.El
|
||||
.Pp
|
||||
The extended arithmetic range and overflow checks do not conflict with
|
||||
@ -300,7 +301,8 @@ standard, the use of string arguments
|
||||
.Va index ,
|
||||
or
|
||||
.Va match
|
||||
produces undefined results. In this version of
|
||||
produces undefined results.
|
||||
In this version of
|
||||
.Nm ,
|
||||
these arguments are treated just as their respective string values.
|
||||
.Pp
|
||||
|
@ -540,7 +540,7 @@ op_colon(struct val *a, struct val *b)
|
||||
v = make_str(a->u.s + rm[1].rm_so);
|
||||
|
||||
} else
|
||||
v = make_integer((intmax_t)(rm[0].rm_eo - rm[0].rm_so));
|
||||
v = make_integer((intmax_t)(rm[0].rm_eo));
|
||||
else
|
||||
if (rp.re_nsub == 0)
|
||||
v = make_integer((intmax_t)0);
|
||||
|
@ -84,7 +84,6 @@ everything after a '#' character, are ignored. Almost any printable
|
||||
character except '=' is acceptable as part of a name. Quotes
|
||||
are optional and necessary only if the value contains
|
||||
whitespace.
|
||||
.Pp
|
||||
.Sh SEE ALSO
|
||||
.Xr kenv 2 ,
|
||||
.Xr config 5 ,
|
||||
|
126
bin/ps/print.c
126
bin/ps/print.c
@ -99,10 +99,8 @@ printheader(void)
|
||||
char *
|
||||
arguments(KINFO *k, VARENT *ve)
|
||||
{
|
||||
VAR *v;
|
||||
char *vis_args;
|
||||
|
||||
v = ve->var;
|
||||
if ((vis_args = malloc(strlen(k->ki_args) * 4 + 1)) == NULL)
|
||||
errx(1, "malloc failed");
|
||||
strvis(vis_args, k->ki_args, VIS_TAB | VIS_NL | VIS_NOSLASH);
|
||||
@ -116,10 +114,8 @@ arguments(KINFO *k, VARENT *ve)
|
||||
char *
|
||||
command(KINFO *k, VARENT *ve)
|
||||
{
|
||||
VAR *v;
|
||||
char *vis_args, *vis_env, *str;
|
||||
|
||||
v = ve->var;
|
||||
if (cflag) {
|
||||
/* If it is the last field, then don't pad */
|
||||
if (STAILQ_NEXT(ve, next_ve) == NULL) {
|
||||
@ -172,10 +168,8 @@ command(KINFO *k, VARENT *ve)
|
||||
char *
|
||||
ucomm(KINFO *k, VARENT *ve)
|
||||
{
|
||||
VAR *v;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
if (STAILQ_NEXT(ve, next_ve) == NULL) { /* last field, don't pad */
|
||||
asprintf(&str, "%s%s%s%s",
|
||||
k->ki_d.prefix ? k->ki_d.prefix : "",
|
||||
@ -192,12 +186,10 @@ ucomm(KINFO *k, VARENT *ve)
|
||||
}
|
||||
|
||||
char *
|
||||
tdnam(KINFO *k, VARENT *ve)
|
||||
tdnam(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
if (showthreads && k->ki_p->ki_numthreads > 1)
|
||||
str = strdup(k->ki_p->ki_tdname);
|
||||
else
|
||||
@ -207,28 +199,24 @@ tdnam(KINFO *k, VARENT *ve)
|
||||
}
|
||||
|
||||
char *
|
||||
logname(KINFO *k, VARENT *ve)
|
||||
logname(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
|
||||
v = ve->var;
|
||||
if (*k->ki_p->ki_login == '\0')
|
||||
return (NULL);
|
||||
return (strdup(k->ki_p->ki_login));
|
||||
}
|
||||
|
||||
char *
|
||||
state(KINFO *k, VARENT *ve)
|
||||
state(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
int flag, tdflags;
|
||||
char *cp, *buf;
|
||||
VAR *v;
|
||||
|
||||
buf = malloc(16);
|
||||
if (buf == NULL)
|
||||
errx(1, "malloc failed");
|
||||
|
||||
v = ve->var;
|
||||
flag = k->ki_p->ki_flag;
|
||||
tdflags = k->ki_p->ki_tdflags; /* XXXKSE */
|
||||
cp = buf;
|
||||
@ -294,72 +282,58 @@ state(KINFO *k, VARENT *ve)
|
||||
#define scalepri(x) ((x) - PZERO)
|
||||
|
||||
char *
|
||||
pri(KINFO *k, VARENT *ve)
|
||||
pri(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
asprintf(&str, "%d", scalepri(k->ki_p->ki_pri.pri_level));
|
||||
return (str);
|
||||
}
|
||||
|
||||
char *
|
||||
upr(KINFO *k, VARENT *ve)
|
||||
upr(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
asprintf(&str, "%d", scalepri(k->ki_p->ki_pri.pri_user));
|
||||
return (str);
|
||||
}
|
||||
#undef scalepri
|
||||
|
||||
char *
|
||||
uname(KINFO *k, VARENT *ve)
|
||||
uname(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
|
||||
v = ve->var;
|
||||
return (strdup(user_from_uid(k->ki_p->ki_uid, 0)));
|
||||
}
|
||||
|
||||
char *
|
||||
egroupname(KINFO *k, VARENT *ve)
|
||||
egroupname(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
|
||||
v = ve->var;
|
||||
return (strdup(group_from_gid(k->ki_p->ki_groups[0], 0)));
|
||||
}
|
||||
|
||||
char *
|
||||
rgroupname(KINFO *k, VARENT *ve)
|
||||
rgroupname(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
|
||||
v = ve->var;
|
||||
return (strdup(group_from_gid(k->ki_p->ki_rgid, 0)));
|
||||
}
|
||||
|
||||
char *
|
||||
runame(KINFO *k, VARENT *ve)
|
||||
runame(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
|
||||
v = ve->var;
|
||||
return (strdup(user_from_uid(k->ki_p->ki_ruid, 0)));
|
||||
}
|
||||
|
||||
char *
|
||||
tdev(KINFO *k, VARENT *ve)
|
||||
tdev(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
dev_t dev;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
dev = k->ki_p->ki_tdev;
|
||||
if (dev == NODEV)
|
||||
str = strdup("-");
|
||||
@ -370,13 +344,11 @@ tdev(KINFO *k, VARENT *ve)
|
||||
}
|
||||
|
||||
char *
|
||||
tname(KINFO *k, VARENT *ve)
|
||||
tname(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
dev_t dev;
|
||||
char *ttname, *str;
|
||||
|
||||
v = ve->var;
|
||||
dev = k->ki_p->ki_tdev;
|
||||
if (dev == NODEV || (ttname = devname(dev, S_IFCHR)) == NULL)
|
||||
str = strdup("- ");
|
||||
@ -394,13 +366,11 @@ tname(KINFO *k, VARENT *ve)
|
||||
}
|
||||
|
||||
char *
|
||||
longtname(KINFO *k, VARENT *ve)
|
||||
longtname(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
dev_t dev;
|
||||
const char *ttname;
|
||||
|
||||
v = ve->var;
|
||||
dev = k->ki_p->ki_tdev;
|
||||
if (dev == NODEV || (ttname = devname(dev, S_IFCHR)) == NULL)
|
||||
ttname = "-";
|
||||
@ -409,9 +379,8 @@ longtname(KINFO *k, VARENT *ve)
|
||||
}
|
||||
|
||||
char *
|
||||
started(KINFO *k, VARENT *ve)
|
||||
started(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
time_t then;
|
||||
struct tm *tp;
|
||||
static int use_ampm = -1;
|
||||
@ -422,7 +391,6 @@ started(KINFO *k, VARENT *ve)
|
||||
if (buf == NULL)
|
||||
errx(1, "malloc failed");
|
||||
|
||||
v = ve->var;
|
||||
if (!k->ki_valid)
|
||||
return (NULL);
|
||||
if (use_ampm < 0)
|
||||
@ -441,9 +409,8 @@ started(KINFO *k, VARENT *ve)
|
||||
}
|
||||
|
||||
char *
|
||||
lstarted(KINFO *k, VARENT *ve)
|
||||
lstarted(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
time_t then;
|
||||
char *buf;
|
||||
size_t buflen = 100;
|
||||
@ -452,7 +419,6 @@ lstarted(KINFO *k, VARENT *ve)
|
||||
if (buf == NULL)
|
||||
errx(1, "malloc failed");
|
||||
|
||||
v = ve->var;
|
||||
if (!k->ki_valid)
|
||||
return (NULL);
|
||||
then = k->ki_p->ki_start.tv_sec;
|
||||
@ -461,12 +427,10 @@ lstarted(KINFO *k, VARENT *ve)
|
||||
}
|
||||
|
||||
char *
|
||||
lockname(KINFO *k, VARENT *ve)
|
||||
lockname(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
if (k->ki_p->ki_kiflag & KI_LOCKBLOCK) {
|
||||
if (k->ki_p->ki_lockname[0] != 0)
|
||||
str = strdup(k->ki_p->ki_lockname);
|
||||
@ -479,12 +443,10 @@ lockname(KINFO *k, VARENT *ve)
|
||||
}
|
||||
|
||||
char *
|
||||
wchan(KINFO *k, VARENT *ve)
|
||||
wchan(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
if (k->ki_p->ki_wchan) {
|
||||
if (k->ki_p->ki_wmesg[0] != 0)
|
||||
str = strdup(k->ki_p->ki_wmesg);
|
||||
@ -497,12 +459,10 @@ wchan(KINFO *k, VARENT *ve)
|
||||
}
|
||||
|
||||
char *
|
||||
nwchan(KINFO *k, VARENT *ve)
|
||||
nwchan(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
if (k->ki_p->ki_wchan)
|
||||
asprintf(&str, "%0lx", (long)k->ki_p->ki_wchan);
|
||||
else
|
||||
@ -512,12 +472,10 @@ nwchan(KINFO *k, VARENT *ve)
|
||||
}
|
||||
|
||||
char *
|
||||
mwchan(KINFO *k, VARENT *ve)
|
||||
mwchan(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
if (k->ki_p->ki_wchan) {
|
||||
if (k->ki_p->ki_wmesg[0] != 0)
|
||||
str = strdup(k->ki_p->ki_wmesg);
|
||||
@ -535,27 +493,23 @@ mwchan(KINFO *k, VARENT *ve)
|
||||
}
|
||||
|
||||
char *
|
||||
vsize(KINFO *k, VARENT *ve)
|
||||
vsize(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
asprintf(&str, "%lu", (u_long)(k->ki_p->ki_size / 1024));
|
||||
return (str);
|
||||
}
|
||||
|
||||
static char *
|
||||
printtime(KINFO *k, VARENT *ve, long secs, long psecs)
|
||||
printtime(KINFO *k, VARENT *ve __unused, long secs, long psecs)
|
||||
/* psecs is "parts" of a second. first micro, then centi */
|
||||
{
|
||||
VAR *v;
|
||||
static char decimal_point;
|
||||
char *str;
|
||||
|
||||
if (decimal_point == '\0')
|
||||
decimal_point = localeconv()->decimal_point[0];
|
||||
v = ve->var;
|
||||
if (!k->ki_valid) {
|
||||
secs = 0;
|
||||
psecs = 0;
|
||||
@ -618,14 +572,12 @@ usertime(KINFO *k, VARENT *ve)
|
||||
}
|
||||
|
||||
char *
|
||||
elapsed(KINFO *k, VARENT *ve)
|
||||
elapsed(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
time_t val;
|
||||
int days, hours, mins, secs;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
if (!k->ki_valid)
|
||||
return (NULL);
|
||||
val = now - k->ki_p->ki_start.tv_sec;
|
||||
@ -646,13 +598,11 @@ elapsed(KINFO *k, VARENT *ve)
|
||||
}
|
||||
|
||||
char *
|
||||
elapseds(KINFO *k, VARENT *ve)
|
||||
elapseds(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
time_t val;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
if (!k->ki_valid)
|
||||
return (NULL);
|
||||
val = now - k->ki_p->ki_start.tv_sec;
|
||||
@ -682,12 +632,10 @@ getpcpu(const KINFO *k)
|
||||
}
|
||||
|
||||
char *
|
||||
pcpu(KINFO *k, VARENT *ve)
|
||||
pcpu(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
asprintf(&str, "%.1f", getpcpu(k));
|
||||
return (str);
|
||||
}
|
||||
@ -712,47 +660,39 @@ getpmem(KINFO *k)
|
||||
}
|
||||
|
||||
char *
|
||||
pmem(KINFO *k, VARENT *ve)
|
||||
pmem(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
asprintf(&str, "%.1f", getpmem(k));
|
||||
return (str);
|
||||
}
|
||||
|
||||
char *
|
||||
pagein(KINFO *k, VARENT *ve)
|
||||
pagein(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
char *str;
|
||||
|
||||
v = ve->var;
|
||||
asprintf(&str, "%ld", k->ki_valid ? k->ki_p->ki_rusage.ru_majflt : 0);
|
||||
return (str);
|
||||
}
|
||||
|
||||
/* ARGSUSED */
|
||||
char *
|
||||
maxrss(KINFO *k __unused, VARENT *ve)
|
||||
maxrss(KINFO *k __unused, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
|
||||
v = ve->var;
|
||||
/* XXX not yet */
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
char *
|
||||
priorityr(KINFO *k, VARENT *ve)
|
||||
priorityr(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
struct priority *lpri;
|
||||
char *str;
|
||||
unsigned class, level;
|
||||
|
||||
v = ve->var;
|
||||
lpri = &k->ki_p->ki_pri;
|
||||
class = lpri->pri_class;
|
||||
level = lpri->pri_level;
|
||||
@ -852,25 +792,21 @@ rvar(KINFO *k, VARENT *ve)
|
||||
}
|
||||
|
||||
char *
|
||||
emulname(KINFO *k, VARENT *ve)
|
||||
emulname(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
|
||||
v = ve->var;
|
||||
if (k->ki_p->ki_emul == NULL)
|
||||
return (NULL);
|
||||
return (strdup(k->ki_p->ki_emul));
|
||||
}
|
||||
|
||||
char *
|
||||
label(KINFO *k, VARENT *ve)
|
||||
label(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
char *string;
|
||||
VAR *v;
|
||||
mac_t proclabel;
|
||||
int error;
|
||||
|
||||
v = ve->var;
|
||||
string = NULL;
|
||||
if (mac_prepare_process_label(&proclabel) == -1) {
|
||||
warn("mac_prepare_process_label");
|
||||
@ -887,12 +823,10 @@ out:
|
||||
}
|
||||
|
||||
char *
|
||||
loginclass(KINFO *k, VARENT *ve)
|
||||
loginclass(KINFO *k, VARENT *ve __unused)
|
||||
{
|
||||
VAR *v;
|
||||
char *s;
|
||||
|
||||
v = ve->var;
|
||||
/*
|
||||
* Don't display login class for system processes;
|
||||
* login classes are used for resource limits,
|
||||
|
63
bin/ps/ps.1
63
bin/ps/ps.1
@ -29,7 +29,7 @@
|
||||
.\" @(#)ps.1 8.3 (Berkeley) 4/18/94
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd November 22, 2011
|
||||
.Dd March 8, 2012
|
||||
.Dt PS 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -292,36 +292,37 @@ The flags associated with the process as in
|
||||
the include file
|
||||
.In sys/proc.h :
|
||||
.Bl -column P_SINGLE_BOUNDARY 0x40000000
|
||||
.It Dv "P_ADVLOCK" Ta No "0x00001 Process may hold a POSIX advisory lock"
|
||||
.It Dv "P_CONTROLT" Ta No "0x00002 Has a controlling terminal"
|
||||
.It Dv "P_KTHREAD" Ta No "0x00004 Kernel thread"
|
||||
.It Dv "P_FOLLOWFORK" Ta No "0x00008 Attach debugger to new children"
|
||||
.It Dv "P_PPWAIT" Ta No "0x00010 Parent is waiting for child to exec/exit"
|
||||
.It Dv "P_PROFIL" Ta No "0x00020 Has started profiling"
|
||||
.It Dv "P_STOPPROF" Ta No "0x00040 Has thread in requesting to stop prof"
|
||||
.It Dv "P_HADTHREADS" Ta No "0x00080 Has had threads (no cleanup shortcuts)"
|
||||
.It Dv "P_SUGID" Ta No "0x00100 Had set id privileges since last exec"
|
||||
.It Dv "P_SYSTEM" Ta No "0x00200 System proc: no sigs, stats or swapping"
|
||||
.It Dv "P_SINGLE_EXIT" Ta No "0x00400 Threads suspending should exit, not wait"
|
||||
.It Dv "P_TRACED" Ta No "0x00800 Debugged process being traced"
|
||||
.It Dv "P_WAITED" Ta No "0x01000 Someone is waiting for us"
|
||||
.It Dv "P_WEXIT" Ta No "0x02000 Working on exiting"
|
||||
.It Dv "P_EXEC" Ta No "0x04000 Process called exec"
|
||||
.It Dv "P_WKILLED" Ta No "0x08000 Killed, shall go to kernel/user boundary ASAP"
|
||||
.It Dv "P_CONTINUED" Ta No "0x10000 Proc has continued from a stopped state"
|
||||
.It Dv "P_STOPPED_SIG" Ta No "0x20000 Stopped due to SIGSTOP/SIGTSTP"
|
||||
.It Dv "P_STOPPED_TRACE" Ta No "0x40000 Stopped because of tracing"
|
||||
.It Dv "P_STOPPED_SINGLE" Ta No "0x80000 Only one thread can continue"
|
||||
.It Dv "P_PROTECTED" Ta No "0x100000 Do not kill on memory overcommit"
|
||||
.It Dv "P_SIGEVENT" Ta No "0x200000 Process pending signals changed"
|
||||
.It Dv "P_SINGLE_BOUNDARY" Ta No "0x400000 Threads should suspend at user boundary"
|
||||
.It Dv "P_HWPMC" Ta No "0x800000 Process is using HWPMCs"
|
||||
.It Dv "P_JAILED" Ta No "0x1000000 Process is in jail"
|
||||
.It Dv "P_INEXEC" Ta No "0x4000000 Process is in execve()"
|
||||
.It Dv "P_STATCHILD" Ta No "0x8000000 Child process stopped or exited"
|
||||
.It Dv "P_INMEM" Ta No "0x10000000 Loaded into memory"
|
||||
.It Dv "P_SWAPPINGOUT" Ta No "0x20000000 Process is being swapped out"
|
||||
.It Dv "P_SWAPPINGIN" Ta No "0x40000000 Process is being swapped in"
|
||||
.It Dv "P_ADVLOCK" Ta No "0x00001" Ta "Process may hold a POSIX advisory lock"
|
||||
.It Dv "P_CONTROLT" Ta No "0x00002" Ta "Has a controlling terminal"
|
||||
.It Dv "P_KTHREAD" Ta No "0x00004" Ta "Kernel thread"
|
||||
.It Dv "P_FOLLOWFORK" Ta No "0x00008" Ta "Attach debugger to new children"
|
||||
.It Dv "P_PPWAIT" Ta No "0x00010" Ta "Parent is waiting for child to exec/exit"
|
||||
.It Dv "P_PROFIL" Ta No "0x00020" Ta "Has started profiling"
|
||||
.It Dv "P_STOPPROF" Ta No "0x00040" Ta "Has thread in requesting to stop prof"
|
||||
.It Dv "P_HADTHREADS" Ta No "0x00080" Ta "Has had threads (no cleanup shortcuts)"
|
||||
.It Dv "P_SUGID" Ta No "0x00100" Ta "Had set id privileges since last exec"
|
||||
.It Dv "P_SYSTEM" Ta No "0x00200" Ta "System proc: no sigs, stats or swapping"
|
||||
.It Dv "P_SINGLE_EXIT" Ta No "0x00400" Ta "Threads suspending should exit, not wait"
|
||||
.It Dv "P_TRACED" Ta No "0x00800" Ta "Debugged process being traced"
|
||||
.It Dv "P_WAITED" Ta No "0x01000" Ta "Someone is waiting for us"
|
||||
.It Dv "P_WEXIT" Ta No "0x02000" Ta "Working on exiting"
|
||||
.It Dv "P_EXEC" Ta No "0x04000" Ta "Process called exec"
|
||||
.It Dv "P_WKILLED" Ta No "0x08000" Ta "Killed, shall go to kernel/user boundary ASAP"
|
||||
.It Dv "P_CONTINUED" Ta No "0x10000" Ta "Proc has continued from a stopped state"
|
||||
.It Dv "P_STOPPED_SIG" Ta No "0x20000" Ta "Stopped due to SIGSTOP/SIGTSTP"
|
||||
.It Dv "P_STOPPED_TRACE" Ta No "0x40000" Ta "Stopped because of tracing"
|
||||
.It Dv "P_STOPPED_SINGLE" Ta No "0x80000" Ta "Only one thread can continue"
|
||||
.It Dv "P_PROTECTED" Ta No "0x100000" Ta "Do not kill on memory overcommit"
|
||||
.It Dv "P_SIGEVENT" Ta No "0x200000" Ta "Process pending signals changed"
|
||||
.It Dv "P_SINGLE_BOUNDARY" Ta No "0x400000" Ta "Threads should suspend at user boundary"
|
||||
.It Dv "P_HWPMC" Ta No "0x800000" Ta "Process is using HWPMCs"
|
||||
.It Dv "P_JAILED" Ta No "0x1000000" Ta "Process is in jail"
|
||||
.It Dv "P_ORPHAN" Ta No "0x2000000" Ta "Orphaned by original parent, reparented to debugger"
|
||||
.It Dv "P_INEXEC" Ta No "0x4000000" Ta "Process is in execve()"
|
||||
.It Dv "P_STATCHILD" Ta No "0x8000000" Ta "Child process stopped or exited"
|
||||
.It Dv "P_INMEM" Ta No "0x10000000" Ta "Loaded into memory"
|
||||
.It Dv "P_SWAPPINGOUT" Ta No "0x20000000" Ta "Process is being swapped out"
|
||||
.It Dv "P_SWAPPINGIN" Ta No "0x40000000" Ta "Process is being swapped in"
|
||||
.El
|
||||
.It Cm label
|
||||
The MAC label of the process.
|
||||
|
@ -625,7 +625,7 @@ main(int argc, char *argv[])
|
||||
|
||||
ks = STAILQ_FIRST(&kinfo[i].ki_ks);
|
||||
STAILQ_REMOVE_HEAD(&kinfo[i].ki_ks, ks_next);
|
||||
/* Truncate rightmost column if neccessary. */
|
||||
/* Truncate rightmost column if necessary. */
|
||||
if (STAILQ_NEXT(vent, next_ve) == NULL &&
|
||||
termwidth != UNLIMITED && ks->ks_str != NULL) {
|
||||
left = termwidth - linelen;
|
||||
|
@ -46,7 +46,7 @@
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
utility will wait until each of the given processes has terminated.
|
||||
utility will wait until each of the given processes has terminated.
|
||||
.Pp
|
||||
The following option is available:
|
||||
.Bl -tag -width indent
|
||||
@ -54,7 +54,6 @@ The following option is available:
|
||||
Print the exit status when each process terminates.
|
||||
.El
|
||||
.Sh DIAGNOSTICS
|
||||
.Pp
|
||||
The
|
||||
.Nm
|
||||
utility returns 0 on success, and >0 if an error occurs.
|
||||
|
@ -295,7 +295,7 @@ The ACL qualifier field describes the user or group associated with
|
||||
the ACL entry.
|
||||
It may consist of one of the following: uid or
|
||||
user name, or gid or group name. In entries whose tag type is
|
||||
one of
|
||||
one of
|
||||
.Dq Li owner@ ,
|
||||
.Dq Li group@ ,
|
||||
or
|
||||
|
@ -84,6 +84,8 @@ static const char prec[ARITH_BINOP_MAX - ARITH_BINOP_MIN] = {
|
||||
|
||||
#define ARITH_MAX_PREC 8
|
||||
|
||||
int letcmd(int, char **);
|
||||
|
||||
static __dead2 void yyerror(const char *s)
|
||||
{
|
||||
error("arithmetic expression: %s: \"%s\"", s, arith_startbuf);
|
||||
@ -377,4 +379,3 @@ letcmd(int argc, char **argv)
|
||||
out1fmt(ARITH_FORMAT_STR "\n", i);
|
||||
return !i;
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$");
|
||||
extern const char *arith_buf;
|
||||
|
||||
int
|
||||
yylex()
|
||||
yylex(void)
|
||||
{
|
||||
int value;
|
||||
const char *buf = arith_buf;
|
||||
|
@ -130,7 +130,12 @@ cdcmd(int argc, char **argv)
|
||||
(path = bltinlookup("CDPATH", 1)) == NULL)
|
||||
path = nullstr;
|
||||
while ((p = padvance(&path, dest)) != NULL) {
|
||||
if (stat(p, &statb) >= 0 && S_ISDIR(statb.st_mode)) {
|
||||
if (stat(p, &statb) < 0) {
|
||||
if (errno != ENOENT)
|
||||
errno1 = errno;
|
||||
} else if (!S_ISDIR(statb.st_mode))
|
||||
errno1 = ENOTDIR;
|
||||
else {
|
||||
if (!print) {
|
||||
/*
|
||||
* XXX - rethink
|
||||
|
@ -75,7 +75,7 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
|
||||
int evalskip; /* set if we are skipping commands */
|
||||
static int skipcount; /* number of levels to skip */
|
||||
int skipcount; /* number of levels to skip */
|
||||
MKINIT int loopnest; /* current loop nesting level */
|
||||
int funcnest; /* depth of function calls */
|
||||
static int builtin_flags; /* evalcommand flags for builtins */
|
||||
@ -89,7 +89,7 @@ int oexitstatus; /* saved exit status */
|
||||
|
||||
static void evalloop(union node *, int);
|
||||
static void evalfor(union node *, int);
|
||||
static union node *evalcase(union node *, int);
|
||||
static union node *evalcase(union node *);
|
||||
static void evalsubshell(union node *, int);
|
||||
static void evalredir(union node *, int);
|
||||
static void expredir(union node *);
|
||||
@ -256,7 +256,18 @@ evaltree(union node *n, int flags)
|
||||
evalfor(n, flags & ~EV_EXIT);
|
||||
break;
|
||||
case NCASE:
|
||||
next = evalcase(n, flags);
|
||||
next = evalcase(n);
|
||||
break;
|
||||
case NCLIST:
|
||||
next = n->nclist.body;
|
||||
break;
|
||||
case NCLISTFALLTHRU:
|
||||
if (n->nclist.body) {
|
||||
evaltree(n->nclist.body, flags & ~EV_EXIT);
|
||||
if (evalskip)
|
||||
goto out;
|
||||
}
|
||||
next = n->nclist.next;
|
||||
break;
|
||||
case NDEFUN:
|
||||
defun(n->narg.text, n->narg.next);
|
||||
@ -337,6 +348,7 @@ evalfor(union node *n, int flags)
|
||||
union node *argp;
|
||||
struct strlist *sp;
|
||||
struct stackmark smark;
|
||||
int status;
|
||||
|
||||
setstackmark(&smark);
|
||||
arglist.lastp = &arglist.list;
|
||||
@ -346,11 +358,12 @@ evalfor(union node *n, int flags)
|
||||
}
|
||||
*arglist.lastp = NULL;
|
||||
|
||||
exitstatus = 0;
|
||||
loopnest++;
|
||||
status = 0;
|
||||
for (sp = arglist.list ; sp ; sp = sp->next) {
|
||||
setvar(n->nfor.var, sp->text, 0);
|
||||
evaltree(n->nfor.body, flags);
|
||||
status = exitstatus;
|
||||
if (evalskip) {
|
||||
if (evalskip == SKIPCONT && --skipcount <= 0) {
|
||||
evalskip = 0;
|
||||
@ -363,12 +376,18 @@ evalfor(union node *n, int flags)
|
||||
}
|
||||
loopnest--;
|
||||
popstackmark(&smark);
|
||||
exitstatus = status;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Evaluate a case statement, returning the selected tree.
|
||||
*
|
||||
* The exit status needs care to get right.
|
||||
*/
|
||||
|
||||
static union node *
|
||||
evalcase(union node *n, int flags)
|
||||
evalcase(union node *n)
|
||||
{
|
||||
union node *cp;
|
||||
union node *patp;
|
||||
@ -378,25 +397,26 @@ evalcase(union node *n, int flags)
|
||||
setstackmark(&smark);
|
||||
arglist.lastp = &arglist.list;
|
||||
oexitstatus = exitstatus;
|
||||
exitstatus = 0;
|
||||
expandarg(n->ncase.expr, &arglist, EXP_TILDE);
|
||||
for (cp = n->ncase.cases ; cp ; cp = cp->nclist.next) {
|
||||
for (patp = cp->nclist.pattern ; patp ; patp = patp->narg.next) {
|
||||
if (casematch(patp, arglist.list->text)) {
|
||||
popstackmark(&smark);
|
||||
while (cp->nclist.next &&
|
||||
cp->type == NCLISTFALLTHRU) {
|
||||
evaltree(cp->nclist.body,
|
||||
flags & ~EV_EXIT);
|
||||
if (evalskip != 0)
|
||||
return (NULL);
|
||||
cp->type == NCLISTFALLTHRU &&
|
||||
cp->nclist.body == NULL)
|
||||
cp = cp->nclist.next;
|
||||
}
|
||||
if (cp->nclist.next &&
|
||||
cp->type == NCLISTFALLTHRU)
|
||||
return (cp);
|
||||
if (cp->nclist.body == NULL)
|
||||
exitstatus = 0;
|
||||
return (cp->nclist.body);
|
||||
}
|
||||
}
|
||||
}
|
||||
popstackmark(&smark);
|
||||
exitstatus = 0;
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
@ -901,6 +921,15 @@ evalcommand(union node *cmd, int flags, struct backcmd *backcmd)
|
||||
if (pipe(pip) < 0)
|
||||
error("Pipe call failed: %s", strerror(errno));
|
||||
}
|
||||
if (cmdentry.cmdtype == CMDNORMAL &&
|
||||
cmd->ncmd.redirect == NULL &&
|
||||
varlist.list == NULL &&
|
||||
(mode == FORK_FG || mode == FORK_NOJOB) &&
|
||||
!disvforkset() && !iflag && !mflag) {
|
||||
vforkexecshell(jp, argv, environment(), path,
|
||||
cmdentry.u.index, flags & EV_BACKCMD ? pip : NULL);
|
||||
goto parent;
|
||||
}
|
||||
if (forkshell(jp, cmd, mode) != 0)
|
||||
goto parent; /* at end of routine */
|
||||
if (flags & EV_BACKCMD) {
|
||||
|
@ -60,6 +60,7 @@ void evalbackcmd(union node *, struct backcmd *);
|
||||
#define in_function() funcnest
|
||||
extern int funcnest;
|
||||
extern int evalskip;
|
||||
extern int skipcount;
|
||||
|
||||
/* reasons for skipping commands (see comment on breakcmd routine) */
|
||||
#define SKIPBREAK 1
|
||||
|
@ -231,7 +231,9 @@ hashcmd(int argc __unused, char **argv __unused)
|
||||
int verbose;
|
||||
struct cmdentry entry;
|
||||
char *name;
|
||||
int errors;
|
||||
|
||||
errors = 0;
|
||||
verbose = 0;
|
||||
while ((c = nextopt("rv")) != '\0') {
|
||||
if (c == 'r') {
|
||||
@ -254,19 +256,21 @@ hashcmd(int argc __unused, char **argv __unused)
|
||||
&& cmdp->cmdtype == CMDNORMAL)
|
||||
delete_cmd_entry();
|
||||
find_command(name, &entry, DO_ERR, pathval());
|
||||
if (verbose) {
|
||||
if (entry.cmdtype != CMDUNKNOWN) { /* if no error msg */
|
||||
cmdp = cmdlookup(name, 0);
|
||||
if (cmdp != NULL)
|
||||
printentry(cmdp, verbose);
|
||||
else
|
||||
outfmt(out2, "%s: not found\n", name);
|
||||
if (entry.cmdtype == CMDUNKNOWN)
|
||||
errors = 1;
|
||||
else if (verbose) {
|
||||
cmdp = cmdlookup(name, 0);
|
||||
if (cmdp != NULL)
|
||||
printentry(cmdp, verbose);
|
||||
else {
|
||||
outfmt(out2, "%s: not found\n", name);
|
||||
errors = 1;
|
||||
}
|
||||
flushall();
|
||||
}
|
||||
argptr++;
|
||||
}
|
||||
return 0;
|
||||
return errors;
|
||||
}
|
||||
|
||||
|
||||
@ -493,7 +497,7 @@ hashcd(void)
|
||||
*/
|
||||
|
||||
void
|
||||
changepath(const char *newval)
|
||||
changepath(const char *newval __unused)
|
||||
{
|
||||
clearcmdentry();
|
||||
}
|
||||
|
@ -1,49 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
#-
|
||||
# Copyright (c) 1991, 1993
|
||||
# The Regents of the University of California. All rights reserved.
|
||||
#
|
||||
# This code is derived from software contributed to Berkeley by
|
||||
# Kenneth Almquist.
|
||||
#
|
||||
# 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.
|
||||
# 4. Neither the name of the University nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
|
||||
#
|
||||
# @(#)kill 8.2 (Berkeley) 5/4/95
|
||||
# $FreeBSD$
|
||||
|
||||
# Convert job names to process ids and then run /bin/kill.
|
||||
|
||||
kill() {
|
||||
local args x
|
||||
args=
|
||||
for x in "$@"
|
||||
do case $x in
|
||||
%*) x=`jobid "$x"` ;;
|
||||
esac
|
||||
args="$args $x"
|
||||
done
|
||||
/bin/kill $args
|
||||
}
|
@ -160,8 +160,7 @@ bad:
|
||||
|
||||
|
||||
void
|
||||
sethistsize(hs)
|
||||
const char *hs;
|
||||
sethistsize(const char *hs)
|
||||
{
|
||||
int histsize;
|
||||
HistEvent he;
|
||||
|
@ -97,7 +97,7 @@ int parsenleft; /* copy of parsefile->nleft */
|
||||
MKINIT int parselleft; /* copy of parsefile->lleft */
|
||||
char *parsenextc; /* copy of parsefile->nextc */
|
||||
MKINIT struct parsefile basepf; /* top level input file */
|
||||
char basebuf[BUFSIZ]; /* buffer for top level input file */
|
||||
char basebuf[BUFSIZ + 1]; /* buffer for top level input file */
|
||||
static struct parsefile *parsefile = &basepf; /* current input file */
|
||||
int init_editline = 0; /* editline library initialized? */
|
||||
int whichprompt; /* 1 == PS1, 2 == PS2 */
|
||||
@ -189,8 +189,8 @@ retry:
|
||||
nr = 0;
|
||||
else {
|
||||
nr = el_len;
|
||||
if (nr > BUFSIZ - 1)
|
||||
nr = BUFSIZ - 1;
|
||||
if (nr > BUFSIZ)
|
||||
nr = BUFSIZ;
|
||||
memcpy(parsenextc, rl_cp, nr);
|
||||
if (nr != el_len) {
|
||||
el_len -= nr;
|
||||
@ -200,7 +200,7 @@ retry:
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
nr = read(parsefile->fd, parsenextc, BUFSIZ - 1);
|
||||
nr = read(parsefile->fd, parsenextc, BUFSIZ);
|
||||
|
||||
if (nr <= 0) {
|
||||
if (nr < 0) {
|
||||
@ -428,13 +428,13 @@ setinputfd(int fd, int push)
|
||||
(void)fcntl(fd, F_SETFD, FD_CLOEXEC);
|
||||
if (push) {
|
||||
pushfile();
|
||||
parsefile->buf = ckmalloc(BUFSIZ);
|
||||
parsefile->buf = ckmalloc(BUFSIZ + 1);
|
||||
}
|
||||
if (parsefile->fd > 0)
|
||||
close(parsefile->fd);
|
||||
parsefile->fd = fd;
|
||||
if (parsefile->buf == NULL)
|
||||
parsefile->buf = ckmalloc(BUFSIZ);
|
||||
parsefile->buf = ckmalloc(BUFSIZ + 1);
|
||||
parselleft = parsenleft = 0;
|
||||
plinno = 1;
|
||||
}
|
||||
|
@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$");
|
||||
#undef CEOF /* syntax.h redefines this */
|
||||
#endif
|
||||
#include "redir.h"
|
||||
#include "exec.h"
|
||||
#include "show.h"
|
||||
#include "main.h"
|
||||
#include "parser.h"
|
||||
@ -92,6 +93,7 @@ static void restartjob(struct job *);
|
||||
#endif
|
||||
static void freejob(struct job *);
|
||||
static struct job *getjob(char *);
|
||||
pid_t getjobpgrp(char *);
|
||||
static pid_t dowait(int, struct job *);
|
||||
static pid_t waitproc(int, int *);
|
||||
static void checkzombies(void);
|
||||
@ -884,6 +886,54 @@ forkshell(struct job *jp, union node *n, int mode)
|
||||
}
|
||||
|
||||
|
||||
pid_t
|
||||
vforkexecshell(struct job *jp, char **argv, char **envp, const char *path, int idx, int pip[2])
|
||||
{
|
||||
pid_t pid;
|
||||
struct jmploc jmploc;
|
||||
struct jmploc *savehandler;
|
||||
|
||||
TRACE(("vforkexecshell(%%%td, %s, %p) called\n", jp - jobtab, argv[0],
|
||||
(void *)pip));
|
||||
INTOFF;
|
||||
flushall();
|
||||
savehandler = handler;
|
||||
pid = vfork();
|
||||
if (pid == -1) {
|
||||
TRACE(("Vfork failed, errno=%d\n", errno));
|
||||
INTON;
|
||||
error("Cannot fork: %s", strerror(errno));
|
||||
}
|
||||
if (pid == 0) {
|
||||
TRACE(("Child shell %d\n", (int)getpid()));
|
||||
if (setjmp(jmploc.loc))
|
||||
_exit(exception == EXEXEC ? exerrno : 2);
|
||||
if (pip != NULL) {
|
||||
close(pip[0]);
|
||||
if (pip[1] != 1) {
|
||||
dup2(pip[1], 1);
|
||||
close(pip[1]);
|
||||
}
|
||||
}
|
||||
handler = &jmploc;
|
||||
shellexec(argv, envp, path, idx);
|
||||
}
|
||||
handler = savehandler;
|
||||
if (jp) {
|
||||
struct procstat *ps = &jp->ps[jp->nprocs++];
|
||||
ps->pid = pid;
|
||||
ps->status = -1;
|
||||
ps->cmd = nullstr;
|
||||
jp->foreground = 1;
|
||||
#if JOBS
|
||||
setcurjob(jp);
|
||||
#endif
|
||||
}
|
||||
INTON;
|
||||
TRACE(("In parent shell: child = %d\n", (int)pid));
|
||||
return pid;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Wait for job to finish.
|
||||
|
@ -91,6 +91,7 @@ void setjobctl(int);
|
||||
void showjobs(int, int);
|
||||
struct job *makejob(union node *, int);
|
||||
pid_t forkshell(struct job *, union node *, int);
|
||||
pid_t vforkexecshell(struct job *, char **, char **, const char *, int, int []);
|
||||
int waitforjob(struct job *, int *);
|
||||
int stoppedjobs(void);
|
||||
int backgndpidset(void);
|
||||
|
@ -381,7 +381,7 @@ The following is a list of valid operators:
|
||||
.It Redirection operators:
|
||||
.Bl -column "XXX" "XXX" "XXX" "XXX" "XXX" -offset center -compact
|
||||
.It Li < Ta Li > Ta Li << Ta Li >> Ta Li <>
|
||||
.It Li <& Ta Li >& Ta Li <<- Ta Li >|
|
||||
.It Li <& Ta Li >& Ta Li <<- Ta Li >| Ta \&
|
||||
.El
|
||||
.El
|
||||
.Pp
|
||||
@ -1027,7 +1027,6 @@ or
|
||||
.Pp
|
||||
The first form executes the commands in a subshell environment.
|
||||
A subshell environment has its own copy of:
|
||||
.Pp
|
||||
.Bl -enum
|
||||
.It
|
||||
The current working directory as set by
|
||||
@ -1632,7 +1631,7 @@ All values are of type
|
||||
.It Constants
|
||||
Decimal, octal (starting with
|
||||
.Li 0 )
|
||||
and hexadecimal (starting with
|
||||
and hexadecimal (starting with
|
||||
.Li 0x )
|
||||
integer constants.
|
||||
.It Variables
|
||||
|
@ -191,10 +191,11 @@ trapcmd(int argc, char **argv)
|
||||
argv++;
|
||||
}
|
||||
}
|
||||
while (*argv) {
|
||||
for (; *argv; argv++) {
|
||||
if ((signo = sigstring_to_signum(*argv)) == -1) {
|
||||
warning("bad signal %s", *argv);
|
||||
errors = 1;
|
||||
continue;
|
||||
}
|
||||
INTOFF;
|
||||
if (action)
|
||||
@ -205,7 +206,6 @@ trapcmd(int argc, char **argv)
|
||||
if (signo != 0)
|
||||
setsignal(signo);
|
||||
INTON;
|
||||
argv++;
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
@ -412,7 +412,7 @@ void
|
||||
dotrap(void)
|
||||
{
|
||||
int i;
|
||||
int savestatus;
|
||||
int savestatus, prev_evalskip, prev_skipcount;
|
||||
|
||||
in_dotrap++;
|
||||
for (;;) {
|
||||
@ -427,10 +427,36 @@ dotrap(void)
|
||||
*/
|
||||
if (i == SIGCHLD)
|
||||
ignore_sigchld++;
|
||||
|
||||
/*
|
||||
* Backup current evalskip
|
||||
* state and reset it before
|
||||
* executing a trap, so that the
|
||||
* trap is not disturbed by an
|
||||
* ongoing break/continue/return
|
||||
* statement.
|
||||
*/
|
||||
prev_evalskip = evalskip;
|
||||
prev_skipcount = skipcount;
|
||||
evalskip = 0;
|
||||
|
||||
last_trapsig = i;
|
||||
savestatus = exitstatus;
|
||||
evalstring(trap[i], 0);
|
||||
exitstatus = savestatus;
|
||||
|
||||
/*
|
||||
* If such a command was not
|
||||
* already in progress, allow a
|
||||
* break/continue/return in the
|
||||
* trap action to have an effect
|
||||
* outside of it.
|
||||
*/
|
||||
if (prev_evalskip != 0) {
|
||||
evalskip = prev_evalskip;
|
||||
skipcount = prev_skipcount;
|
||||
}
|
||||
|
||||
if (i == SIGCHLD)
|
||||
ignore_sigchld--;
|
||||
}
|
||||
@ -501,6 +527,11 @@ exitshell_savedstatus(void)
|
||||
}
|
||||
handler = &loc1;
|
||||
if ((p = trap[0]) != NULL && *p != '\0') {
|
||||
/*
|
||||
* Reset evalskip, or the trap on EXIT could be
|
||||
* interrupted if the last command was a "return".
|
||||
*/
|
||||
evalskip = 0;
|
||||
trap[0] = NULL;
|
||||
evalstring(p, 0);
|
||||
}
|
||||
|
@ -94,6 +94,7 @@ struct var vps2;
|
||||
struct var vps4;
|
||||
struct var vvers;
|
||||
static struct var voptind;
|
||||
struct var vdisvfork;
|
||||
|
||||
int forcelocal;
|
||||
|
||||
@ -125,6 +126,8 @@ static const struct varinit varinit[] = {
|
||||
#endif
|
||||
{ &voptind, 0, "OPTIND=1",
|
||||
getoptsreset },
|
||||
{ &vdisvfork, VUNSET, "SH_DISABLE_VFORK=",
|
||||
NULL },
|
||||
{ NULL, 0, NULL,
|
||||
NULL }
|
||||
};
|
||||
@ -600,7 +603,7 @@ showvarscmd(int argc __unused, char **argv __unused)
|
||||
}
|
||||
}
|
||||
|
||||
INTON;
|
||||
INTOFF;
|
||||
vars = ckmalloc(n * sizeof(*vars));
|
||||
i = 0;
|
||||
for (vpp = vartab; vpp < vartab + VTABSIZE; vpp++) {
|
||||
@ -625,7 +628,7 @@ showvarscmd(int argc __unused, char **argv __unused)
|
||||
out1c('\n');
|
||||
}
|
||||
ckfree(vars);
|
||||
INTOFF;
|
||||
INTON;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -79,6 +79,7 @@ extern struct var vppid;
|
||||
extern struct var vps1;
|
||||
extern struct var vps2;
|
||||
extern struct var vps4;
|
||||
extern struct var vdisvfork;
|
||||
#ifndef NO_HISTORY
|
||||
extern struct var vhistsize;
|
||||
extern struct var vterm;
|
||||
@ -109,6 +110,7 @@ extern int initial_localeisutf8;
|
||||
#endif
|
||||
|
||||
#define mpathset() ((vmpath.flags & VUNSET) == 0)
|
||||
#define disvforkset() ((vdisvfork.flags & VUNSET) == 0)
|
||||
|
||||
void initvar(void);
|
||||
void setvar(const char *, const char *, int);
|
||||
|
@ -90,7 +90,6 @@ to restore the current terminal state as per
|
||||
The following arguments are available to set the terminal
|
||||
characteristics:
|
||||
.Ss Control Modes:
|
||||
.Pp
|
||||
Control mode flags affect hardware characteristics associated with the
|
||||
terminal.
|
||||
This corresponds to the c_cflag in the termios structure.
|
||||
@ -256,7 +255,6 @@ Do not (do) output CRs at column zero.
|
||||
On the terminal NL performs (does not perform) the CR function.
|
||||
.El
|
||||
.Ss Local Modes:
|
||||
.Pp
|
||||
Local mode flags (lflags) affect various and sundry characteristics of terminal
|
||||
processing.
|
||||
Historically the term "local" pertained to new job control features
|
||||
@ -386,7 +384,7 @@ is disabled (i.e., set to
|
||||
Recognized control-characters:
|
||||
.Bd -ragged -offset indent
|
||||
.Bl -column character Subscript
|
||||
.It control-
|
||||
.It control- Ta \& Ta \&
|
||||
.It character Ta Subscript Ta Description
|
||||
.It _________ Ta _________ Ta _______________
|
||||
.It eof Ta Tn VEOF Ta EOF No character
|
||||
@ -513,7 +511,6 @@ The size of the terminal is printed as two numbers on a single line,
|
||||
first rows, then columns.
|
||||
.El
|
||||
.Ss Compatibility Modes:
|
||||
.Pp
|
||||
These modes remain for compatibility with the previous version of
|
||||
the
|
||||
.Nm
|
||||
|
@ -82,7 +82,7 @@ main(int argc, char *argv[])
|
||||
|
||||
fds[n++] = open(file, O_RDWR | O_APPEND | O_CREAT | O_DSYNC |
|
||||
O_LARGEFILE | O_NOCTTY | O_NONBLOCK | O_NDELAY | O_RSYNC |
|
||||
O_SYNC | O_TRUNC | O_XATTR);
|
||||
O_SYNC | O_TRUNC | O_XATTR, 0666);
|
||||
|
||||
fds[n++] = open(file, O_RDWR);
|
||||
(void) lseek(fds[n - 1], 123, SEEK_SET);
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
#
|
||||
# CDDL HEADER START
|
||||
#
|
||||
|
@ -1,5 +1,5 @@
|
||||
'\" te
|
||||
.\" Copyright (c) 2011, Martin Matuska <mm@FreeBSD.org>.
|
||||
.\" Copyright (c) 2012, Martin Matuska <mm@FreeBSD.org>.
|
||||
.\" All Rights Reserved.
|
||||
.\"
|
||||
.\" The contents of this file are subject to the terms of the
|
||||
@ -18,13 +18,13 @@
|
||||
.\" information: Portions Copyright [yyyy] [name of copyright owner]
|
||||
.\"
|
||||
.\" Copyright (c) 2010, Sun Microsystems, Inc. All Rights Reserved.
|
||||
.\" Copyright 2011 Nexenta Systems, Inc. All rights reserved.
|
||||
.\" Copyright (c) 2011 by Delphix. All rights reserved.
|
||||
.\" Copyright (c) 2012 Nexenta Systems, Inc. All Rights Reserved.
|
||||
.\" Copyright (c) 2011, Pawel Jakub Dawidek <pjd@FreeBSD.org>
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd November 26, 2011
|
||||
.Dd April 22, 2012
|
||||
.Dt ZFS 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -35,7 +35,7 @@
|
||||
.Op Fl \&?
|
||||
.Nm
|
||||
.Cm create
|
||||
.Op Fl p
|
||||
.Op Fl pu
|
||||
.Op Fl o Ar property Ns = Ns Ar value
|
||||
.Ar ... filesystem
|
||||
.Nm
|
||||
@ -113,6 +113,7 @@
|
||||
.Op Fl r Ns | Ns Fl d Ar depth
|
||||
.Op Fl Hp
|
||||
.Op Fl o Ar all | field Ns Op , Ns Ar ...
|
||||
.Op Fl t Ar type Ns Op , Ns Ar ...
|
||||
.Op Fl s Ar source Ns Op , Ns Ar ...
|
||||
.Ar all | property Ns Op , Ns Ar ...
|
||||
.Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot
|
||||
@ -412,9 +413,15 @@ subcommand. You cannot attach a dataset to one jail and the children of the
|
||||
same dataset to another jails. To allow management of the dataset from within
|
||||
a jail, the
|
||||
.Sy jailed
|
||||
property has to be set. The
|
||||
property has to be set and the jail needs access to the
|
||||
.Pa /dev/zfs
|
||||
device. The
|
||||
.Sy quota
|
||||
property cannot be changed from within a jail.
|
||||
property cannot be changed from within a jail. See
|
||||
.Xr jail 8
|
||||
for information on how to allow mounting
|
||||
.Tn ZFS
|
||||
datasets from within a jail.
|
||||
.Pp
|
||||
.No A Tn ZFS
|
||||
dataset can be detached from a jail using the
|
||||
@ -826,7 +833,7 @@ disables integrity checking on user data. Disabling checksums is
|
||||
a recommended practice.
|
||||
.It Sy compression Ns = Ns Cm on | off | lzjb | gzip | gzip- Ns Ar N | Cm zle
|
||||
Controls the compression algorithm used for this dataset. The
|
||||
.CM lzjb
|
||||
.Cm lzjb
|
||||
compression algorithm is optimized for performance while providing decent data
|
||||
compression. Setting compression to
|
||||
.Cm on
|
||||
@ -1268,11 +1275,11 @@ for legacy mounts or the
|
||||
command for normal file systems, its mount options are set according to its
|
||||
properties. The correlation between properties and mount options is as follows:
|
||||
.Bl -column -offset 4n "PROPERTY" "MOUNT OPTION"
|
||||
.It PROPERTY MOUNT OPTION
|
||||
.It atime atime/noatime
|
||||
.It exec exec/noexec
|
||||
.It readonly ro/rw
|
||||
.It setuid suid/nosuid
|
||||
.It "PROPERTY MOUNT OPTION"
|
||||
.It "atime atime/noatime"
|
||||
.It "exec exec/noexec"
|
||||
.It "readonly ro/rw"
|
||||
.It "setuid suid/nosuid"
|
||||
.El
|
||||
.Pp
|
||||
In addition, these options can be set on a per-mount basis using the
|
||||
@ -1347,7 +1354,7 @@ Displays a help message.
|
||||
.It Xo
|
||||
.Nm
|
||||
.Cm create
|
||||
.Op Fl p
|
||||
.Op Fl pu
|
||||
.Op Fl o Ar property Ns = Ns Ar value
|
||||
.Ar ... filesystem
|
||||
.Xc
|
||||
@ -1367,6 +1374,8 @@ line using the
|
||||
.Fl o
|
||||
option is ignored. If the target filesystem already exists, the operation
|
||||
completes successfully.
|
||||
.It Fl u
|
||||
Newly created file system is not mounted.
|
||||
.It Fl o Ar property Ns = Ns Ar value
|
||||
Sets the specified property as if the command
|
||||
.Qq Nm Cm set Ar property Ns = Ns Ar value
|
||||
@ -1753,7 +1762,7 @@ A comma-separated list of types to display, where
|
||||
is one of
|
||||
.Sy filesystem , snapshot , volume , No or Sy all .
|
||||
For example, specifying
|
||||
.Fl o Cm snapshot
|
||||
.Fl t Cm snapshot
|
||||
displays only snapshots.
|
||||
.It Fl s Ar property
|
||||
A property for sorting the output by column in ascending order based on the
|
||||
@ -1811,6 +1820,7 @@ section.
|
||||
.Op Fl r Ns | Ns Fl d Ar depth
|
||||
.Op Fl Hp
|
||||
.Op Fl o Ar all | field Ns Op , Ns Ar ...
|
||||
.Op Fl t Ar type Ns Op , Ns Ar ...
|
||||
.Op Fl s Ar source Ns Op , Ns Ar ...
|
||||
.Ar all | property Ns Op , Ns Ar ...
|
||||
.Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot
|
||||
@ -1871,6 +1881,14 @@ Default values are
|
||||
The keyword
|
||||
.Cm all
|
||||
specifies all columns.
|
||||
.It Fl t Ar type Ns Op , Ns Ar ...
|
||||
A comma-separated list of types to display, where
|
||||
.Ar type
|
||||
is one of
|
||||
.Sy filesystem , snapshot , volume , No or Sy all .
|
||||
For example, specifying
|
||||
.Fl t Cm snapshot
|
||||
displays only snapshots.
|
||||
.It Fl s Ar source Ns Op , Ns Ar ...
|
||||
A comma-separated list of sources to display. Those properties coming from a
|
||||
source other than those in this list are ignored. Each source must be one of
|
||||
@ -2705,13 +2723,12 @@ to the jail identified by JID
|
||||
From now on this file system tree can be managed from within a jail if the
|
||||
.Sy jailed
|
||||
property has been set. To use this functionality, the jail needs the
|
||||
.Va enforce_statfs
|
||||
parameter set to
|
||||
.Sy 0
|
||||
and the
|
||||
.Va allow.mount
|
||||
parameter set to
|
||||
.Sy 1 .
|
||||
and
|
||||
.Va allow.mount.zfs
|
||||
parameters set to 1 and the
|
||||
.Va enforce_statfs
|
||||
parameter set to a value lower than 2.
|
||||
.Pp
|
||||
See
|
||||
.Xr jail 8
|
||||
|
@ -20,6 +20,8 @@
|
||||
*/
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012 Pawel Jakub Dawidek <pawel@dawidek.net>.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#include <libintl.h>
|
||||
@ -129,8 +131,11 @@ zfs_callback(zfs_handle_t *zhp, void *data)
|
||||
cb->cb_depth++;
|
||||
if (zfs_get_type(zhp) == ZFS_TYPE_FILESYSTEM)
|
||||
(void) zfs_iter_filesystems(zhp, zfs_callback, data);
|
||||
if ((zfs_get_type(zhp) != ZFS_TYPE_SNAPSHOT) && include_snaps)
|
||||
(void) zfs_iter_snapshots(zhp, zfs_callback, data);
|
||||
if ((zfs_get_type(zhp) != ZFS_TYPE_SNAPSHOT) && include_snaps) {
|
||||
(void) zfs_iter_snapshots(zhp,
|
||||
(cb->cb_flags & ZFS_ITER_SIMPLE) != 0, zfs_callback,
|
||||
data);
|
||||
}
|
||||
cb->cb_depth--;
|
||||
}
|
||||
|
||||
@ -184,6 +189,14 @@ zfs_free_sort_columns(zfs_sort_column_t *sc)
|
||||
}
|
||||
}
|
||||
|
||||
boolean_t
|
||||
zfs_sort_only_by_name(const zfs_sort_column_t *sc)
|
||||
{
|
||||
|
||||
return (sc != NULL && sc->sc_next == NULL &&
|
||||
sc->sc_prop == ZFS_PROP_NAME);
|
||||
}
|
||||
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
zfs_compare(const void *larg, const void *rarg, void *unused)
|
||||
@ -224,7 +237,13 @@ zfs_compare(const void *larg, const void *rarg, void *unused)
|
||||
lcreate = zfs_prop_get_int(l, ZFS_PROP_CREATETXG);
|
||||
rcreate = zfs_prop_get_int(r, ZFS_PROP_CREATETXG);
|
||||
|
||||
if (lcreate < rcreate)
|
||||
/*
|
||||
* Both lcreate and rcreate being 0 means we don't have
|
||||
* properties and we should compare full name.
|
||||
*/
|
||||
if (lcreate == 0 && rcreate == 0)
|
||||
ret = strcmp(lat + 1, rat + 1);
|
||||
else if (lcreate < rcreate)
|
||||
ret = -1;
|
||||
else if (lcreate > rcreate)
|
||||
ret = 1;
|
||||
@ -290,7 +309,14 @@ zfs_sort(const void *larg, const void *rarg, void *data)
|
||||
if (rvalid)
|
||||
verify(nvlist_lookup_string(rval,
|
||||
ZPROP_VALUE, &rstr) == 0);
|
||||
} else if (psc->sc_prop == ZFS_PROP_NAME) {
|
||||
lvalid = rvalid = B_TRUE;
|
||||
|
||||
(void) strlcpy(lbuf, zfs_get_name(l), sizeof(lbuf));
|
||||
(void) strlcpy(rbuf, zfs_get_name(r), sizeof(rbuf));
|
||||
|
||||
lstr = lbuf;
|
||||
rstr = rbuf;
|
||||
} else if (zfs_prop_is_string(psc->sc_prop)) {
|
||||
lvalid = (zfs_prop_get(l, psc->sc_prop, lbuf,
|
||||
sizeof (lbuf), NULL, NULL, 0, B_TRUE) == 0);
|
||||
|
@ -43,11 +43,13 @@ typedef struct zfs_sort_column {
|
||||
#define ZFS_ITER_PROP_LISTSNAPS (1 << 2)
|
||||
#define ZFS_ITER_DEPTH_LIMIT (1 << 3)
|
||||
#define ZFS_ITER_RECVD_PROPS (1 << 4)
|
||||
#define ZFS_ITER_SIMPLE (1 << 5)
|
||||
|
||||
int zfs_for_each(int, char **, int options, zfs_type_t,
|
||||
zfs_sort_column_t *, zprop_list_t **, int, zfs_iter_f, void *);
|
||||
int zfs_add_sort_column(zfs_sort_column_t **, const char *, boolean_t);
|
||||
void zfs_free_sort_columns(zfs_sort_column_t *);
|
||||
boolean_t zfs_sort_only_by_name(const zfs_sort_column_t *);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -21,9 +21,10 @@
|
||||
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright 2011 Nexenta Systems, Inc. All rights reserved.
|
||||
* Copyright 2012 Nexenta Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2011 by Delphix. All rights reserved.
|
||||
* Copyright (c) 2011 Pawel Jakub Dawidek <pawel@dawidek.net>.
|
||||
* Copyright (c) 2011-2012 Pawel Jakub Dawidek <pawel@dawidek.net>.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2011 Martin Matuska <mm@FreeBSD.org>. All rights reserved.
|
||||
*/
|
||||
|
||||
@ -216,7 +217,7 @@ get_usage(zfs_help_t idx)
|
||||
return (gettext("\tclone [-p] [-o property=value] ... "
|
||||
"<snapshot> <filesystem|volume>\n"));
|
||||
case HELP_CREATE:
|
||||
return (gettext("\tcreate [-p] [-o property=value] ... "
|
||||
return (gettext("\tcreate [-pu] [-o property=value] ... "
|
||||
"<filesystem>\n"
|
||||
"\tcreate [-ps] [-b blocksize] [-o property=value] ... "
|
||||
"-V <size> <volume>\n"));
|
||||
@ -226,7 +227,8 @@ get_usage(zfs_help_t idx)
|
||||
"<snapshot>[%<snapname>][,...]\n"));
|
||||
case HELP_GET:
|
||||
return (gettext("\tget [-rHp] [-d max] "
|
||||
"[-o \"all\" | field[,...]] [-s source[,...]]\n"
|
||||
"[-o \"all\" | field[,...]] [-t type[,...]] "
|
||||
"[-s source[,...]]\n"
|
||||
"\t <\"all\" | property[,...]> "
|
||||
"[filesystem|volume|snapshot] ...\n"));
|
||||
case HELP_INHERIT:
|
||||
@ -589,7 +591,7 @@ zfs_do_clone(int argc, char **argv)
|
||||
zfs_handle_t *zhp = NULL;
|
||||
boolean_t parents = B_FALSE;
|
||||
nvlist_t *props;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
int c;
|
||||
|
||||
if (nvlist_alloc(&props, NV_UNIQUE_NAME, 0) != 0)
|
||||
@ -679,7 +681,7 @@ usage:
|
||||
}
|
||||
|
||||
/*
|
||||
* zfs create [-p] [-o prop=value] ... fs
|
||||
* zfs create [-pu] [-o prop=value] ... fs
|
||||
* zfs create [-ps] [-b blocksize] [-o prop=value] ... -V vol size
|
||||
*
|
||||
* Create a new dataset. This command can be used to create filesystems
|
||||
@ -692,6 +694,8 @@ usage:
|
||||
* SPA_VERSION_REFRESERVATION, we set a refreservation instead.
|
||||
*
|
||||
* The '-p' flag creates all the non-existing ancestors of the target first.
|
||||
*
|
||||
* The '-u' flag prevents mounting of newly created file system.
|
||||
*/
|
||||
static int
|
||||
zfs_do_create(int argc, char **argv)
|
||||
@ -703,6 +707,7 @@ zfs_do_create(int argc, char **argv)
|
||||
boolean_t noreserve = B_FALSE;
|
||||
boolean_t bflag = B_FALSE;
|
||||
boolean_t parents = B_FALSE;
|
||||
boolean_t nomount = B_FALSE;
|
||||
int ret = 1;
|
||||
nvlist_t *props;
|
||||
uint64_t intval;
|
||||
@ -712,7 +717,7 @@ zfs_do_create(int argc, char **argv)
|
||||
nomem();
|
||||
|
||||
/* check options */
|
||||
while ((c = getopt(argc, argv, ":V:b:so:p")) != -1) {
|
||||
while ((c = getopt(argc, argv, ":V:b:so:pu")) != -1) {
|
||||
switch (c) {
|
||||
case 'V':
|
||||
type = ZFS_TYPE_VOLUME;
|
||||
@ -752,6 +757,9 @@ zfs_do_create(int argc, char **argv)
|
||||
case 's':
|
||||
noreserve = B_TRUE;
|
||||
break;
|
||||
case 'u':
|
||||
nomount = B_TRUE;
|
||||
break;
|
||||
case ':':
|
||||
(void) fprintf(stderr, gettext("missing size "
|
||||
"argument\n"));
|
||||
@ -769,6 +777,11 @@ zfs_do_create(int argc, char **argv)
|
||||
"used when creating a volume\n"));
|
||||
goto badusage;
|
||||
}
|
||||
if (nomount && type != ZFS_TYPE_FILESYSTEM) {
|
||||
(void) fprintf(stderr, gettext("'-u' can only be "
|
||||
"used when creating a file system\n"));
|
||||
goto badusage;
|
||||
}
|
||||
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
@ -851,7 +864,7 @@ zfs_do_create(int argc, char **argv)
|
||||
* verbose error message to let the user know that their filesystem was
|
||||
* in fact created, even if we failed to mount or share it.
|
||||
*/
|
||||
if (canmount == ZFS_CANMOUNT_ON) {
|
||||
if (!nomount && canmount == ZFS_CANMOUNT_ON) {
|
||||
if (zfs_mount(zhp, NULL, 0) != 0) {
|
||||
(void) fprintf(stderr, gettext("filesystem "
|
||||
"successfully created, but not mounted\n"));
|
||||
@ -1051,7 +1064,7 @@ destroy_print_cb(zfs_handle_t *zhp, void *arg)
|
||||
static int
|
||||
destroy_print_snapshots(zfs_handle_t *fs_zhp, destroy_cbdata_t *cb)
|
||||
{
|
||||
int err;
|
||||
int err = 0;
|
||||
assert(cb->cb_firstsnap == NULL);
|
||||
assert(cb->cb_prevsnap == NULL);
|
||||
err = zfs_iter_snapshots_sorted(fs_zhp, destroy_print_cb, cb);
|
||||
@ -1129,7 +1142,7 @@ destroy_clones(destroy_cbdata_t *cb)
|
||||
ZFS_TYPE_SNAPSHOT);
|
||||
if (zhp != NULL) {
|
||||
boolean_t defer = cb->cb_defer_destroy;
|
||||
int err;
|
||||
int err = 0;
|
||||
|
||||
/*
|
||||
* We can't defer destroy non-snapshots, so set it to
|
||||
@ -1206,7 +1219,7 @@ zfs_do_destroy(int argc, char **argv)
|
||||
|
||||
at = strchr(argv[0], '@');
|
||||
if (at != NULL) {
|
||||
int err;
|
||||
int err = 0;
|
||||
|
||||
/* Build the list of snaps to destroy in cb_nvl. */
|
||||
if (nvlist_alloc(&cb.cb_nvl, NV_UNIQUE_NAME, 0) != 0)
|
||||
@ -1472,8 +1485,9 @@ zfs_do_get(int argc, char **argv)
|
||||
{
|
||||
zprop_get_cbdata_t cb = { 0 };
|
||||
int i, c, flags = ZFS_ITER_ARGS_CAN_BE_PATHS;
|
||||
int types = ZFS_TYPE_DATASET;
|
||||
char *value, *fields;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
int limit = 0;
|
||||
zprop_list_t fake_name = { 0 };
|
||||
|
||||
@ -1488,7 +1502,7 @@ zfs_do_get(int argc, char **argv)
|
||||
cb.cb_type = ZFS_TYPE_DATASET;
|
||||
|
||||
/* check options */
|
||||
while ((c = getopt(argc, argv, ":d:o:s:rHp")) != -1) {
|
||||
while ((c = getopt(argc, argv, ":d:o:s:rt:Hp")) != -1) {
|
||||
switch (c) {
|
||||
case 'p':
|
||||
cb.cb_literal = B_TRUE;
|
||||
@ -1606,6 +1620,37 @@ zfs_do_get(int argc, char **argv)
|
||||
}
|
||||
break;
|
||||
|
||||
case 't':
|
||||
types = 0;
|
||||
flags &= ~ZFS_ITER_PROP_LISTSNAPS;
|
||||
while (*optarg != '\0') {
|
||||
static char *type_subopts[] = { "filesystem",
|
||||
"volume", "snapshot", "all", NULL };
|
||||
|
||||
switch (getsubopt(&optarg, type_subopts,
|
||||
&value)) {
|
||||
case 0:
|
||||
types |= ZFS_TYPE_FILESYSTEM;
|
||||
break;
|
||||
case 1:
|
||||
types |= ZFS_TYPE_VOLUME;
|
||||
break;
|
||||
case 2:
|
||||
types |= ZFS_TYPE_SNAPSHOT;
|
||||
break;
|
||||
case 3:
|
||||
types = ZFS_TYPE_DATASET;
|
||||
break;
|
||||
|
||||
default:
|
||||
(void) fprintf(stderr,
|
||||
gettext("invalid type '%s'\n"),
|
||||
value);
|
||||
usage(B_FALSE);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case '?':
|
||||
(void) fprintf(stderr, gettext("invalid option '%c'\n"),
|
||||
optopt);
|
||||
@ -1649,7 +1694,7 @@ zfs_do_get(int argc, char **argv)
|
||||
cb.cb_first = B_TRUE;
|
||||
|
||||
/* run for each object */
|
||||
ret = zfs_for_each(argc, argv, flags, ZFS_TYPE_DATASET, NULL,
|
||||
ret = zfs_for_each(argc, argv, flags, types, NULL,
|
||||
&cb.cb_proplist, limit, get_callback, &cb);
|
||||
|
||||
if (cb.cb_proplist == &fake_name)
|
||||
@ -1710,7 +1755,7 @@ zfs_do_inherit(int argc, char **argv)
|
||||
zfs_prop_t prop;
|
||||
inherit_cbdata_t cb = { 0 };
|
||||
char *propname;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
int flags = 0;
|
||||
boolean_t received = B_FALSE;
|
||||
|
||||
@ -1916,7 +1961,7 @@ zfs_do_upgrade(int argc, char **argv)
|
||||
{
|
||||
boolean_t all = B_FALSE;
|
||||
boolean_t showversions = B_FALSE;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
upgrade_cbdata_t cb = { 0 };
|
||||
char c;
|
||||
int flags = ZFS_ITER_ARGS_CAN_BE_PATHS;
|
||||
@ -2205,7 +2250,7 @@ userspace_cb(void *arg, const char *domain, uid_t rid, uint64_t space)
|
||||
uid_t id;
|
||||
uint64_t classes;
|
||||
#ifdef sun
|
||||
int err;
|
||||
int err = 0;
|
||||
directory_error_t e;
|
||||
#endif
|
||||
|
||||
@ -2561,7 +2606,7 @@ zfs_do_userspace(int argc, char **argv)
|
||||
boolean_t prtnum = B_FALSE;
|
||||
boolean_t parseable = B_FALSE;
|
||||
boolean_t sid2posix = B_FALSE;
|
||||
int error;
|
||||
int error = 0;
|
||||
int c;
|
||||
zfs_sort_column_t *default_sortcol = NULL;
|
||||
zfs_sort_column_t *sortcol = NULL;
|
||||
@ -2837,7 +2882,12 @@ print_dataset(zfs_handle_t *zhp, zprop_list_t *pl, boolean_t scripted)
|
||||
first = B_FALSE;
|
||||
}
|
||||
|
||||
if (pl->pl_prop != ZPROP_INVAL) {
|
||||
if (pl->pl_prop == ZFS_PROP_NAME) {
|
||||
(void) strlcpy(property, zfs_get_name(zhp),
|
||||
sizeof(property));
|
||||
propstr = property;
|
||||
right_justify = zfs_prop_align_right(pl->pl_prop);
|
||||
} else if (pl->pl_prop != ZPROP_INVAL) {
|
||||
if (zfs_prop_get(zhp, pl->pl_prop, property,
|
||||
sizeof (property), NULL, NULL, 0, B_FALSE) != 0)
|
||||
propstr = "-";
|
||||
@ -2919,7 +2969,7 @@ zfs_do_list(int argc, char **argv)
|
||||
list_cbdata_t cb = { 0 };
|
||||
char *value;
|
||||
int limit = 0;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
zfs_sort_column_t *sortcol = NULL;
|
||||
int flags = ZFS_ITER_PROP_LISTSNAPS | ZFS_ITER_ARGS_CAN_BE_PATHS;
|
||||
|
||||
@ -3003,6 +3053,13 @@ zfs_do_list(int argc, char **argv)
|
||||
if (fields == NULL)
|
||||
fields = default_fields;
|
||||
|
||||
/*
|
||||
* If we are only going to list snapshot names and sort by name,
|
||||
* then we can use faster version.
|
||||
*/
|
||||
if (strcmp(fields, "name") == 0 && zfs_sort_only_by_name(sortcol))
|
||||
flags |= ZFS_ITER_SIMPLE;
|
||||
|
||||
/*
|
||||
* If "-o space" and no types were specified, don't display snapshots.
|
||||
*/
|
||||
@ -3049,7 +3106,9 @@ zfs_do_rename(int argc, char **argv)
|
||||
{
|
||||
zfs_handle_t *zhp;
|
||||
renameflags_t flags = { 0 };
|
||||
int c, ret, types;
|
||||
int c;
|
||||
int ret = 0;
|
||||
int types;
|
||||
boolean_t parents = B_FALSE;
|
||||
|
||||
/* check options */
|
||||
@ -3142,7 +3201,7 @@ static int
|
||||
zfs_do_promote(int argc, char **argv)
|
||||
{
|
||||
zfs_handle_t *zhp;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
|
||||
/* check options */
|
||||
if (argc > 1 && argv[1][0] == '-') {
|
||||
@ -3263,7 +3322,7 @@ rollback_check(zfs_handle_t *zhp, void *data)
|
||||
static int
|
||||
zfs_do_rollback(int argc, char **argv)
|
||||
{
|
||||
int ret;
|
||||
int ret = 0;
|
||||
int c;
|
||||
boolean_t force = B_FALSE;
|
||||
rollback_cbdata_t cb = { 0 };
|
||||
@ -3381,7 +3440,7 @@ static int
|
||||
zfs_do_set(int argc, char **argv)
|
||||
{
|
||||
set_cbdata_t cb;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
|
||||
/* check for options */
|
||||
if (argc > 1 && argv[1][0] == '-') {
|
||||
@ -3435,7 +3494,7 @@ static int
|
||||
zfs_do_snapshot(int argc, char **argv)
|
||||
{
|
||||
boolean_t recursive = B_FALSE;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
char c;
|
||||
nvlist_t *props;
|
||||
|
||||
@ -4488,7 +4547,7 @@ parse_allow_args(int argc, char **argv, boolean_t un, struct allow_opts *opts)
|
||||
argc--;
|
||||
argv++;
|
||||
opts->dataset = munge_args(argc, argv, un, 2, &opts->perms);
|
||||
} else if (argc == 1) {
|
||||
} else if (argc == 1 && !un) {
|
||||
opts->prt_perms = B_TRUE;
|
||||
opts->dataset = argv[argc-1];
|
||||
} else {
|
||||
@ -4975,9 +5034,9 @@ zfs_do_allow_unallow_impl(int argc, char **argv, boolean_t un)
|
||||
parse_allow_args(argc, argv, un, &opts);
|
||||
|
||||
/* try to open the dataset */
|
||||
if ((zhp = zfs_open(g_zfs, opts.dataset, ZFS_TYPE_FILESYSTEM))
|
||||
== NULL) {
|
||||
(void) fprintf(stderr, "Failed to open Dataset *%s*\n",
|
||||
if ((zhp = zfs_open(g_zfs, opts.dataset, ZFS_TYPE_FILESYSTEM |
|
||||
ZFS_TYPE_VOLUME)) == NULL) {
|
||||
(void) fprintf(stderr, "Failed to open dataset: %s\n",
|
||||
opts.dataset);
|
||||
return (-1);
|
||||
}
|
||||
@ -4987,7 +5046,7 @@ zfs_do_allow_unallow_impl(int argc, char **argv, boolean_t un)
|
||||
|
||||
fs_perm_set_init(&fs_perm_set);
|
||||
if (parse_fs_perm_set(&fs_perm_set, perm_nvl) != 0) {
|
||||
(void) fprintf(stderr, "Failed to parse fsacl permissionsn");
|
||||
(void) fprintf(stderr, "Failed to parse fsacl permissions\n");
|
||||
goto cleanup1;
|
||||
}
|
||||
|
||||
@ -5273,7 +5332,7 @@ zfs_do_holds(int argc, char **argv)
|
||||
holds_cbdata_t cb = { 0 };
|
||||
|
||||
int limit = 0;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
int flags = 0;
|
||||
|
||||
/* check options */
|
||||
@ -5850,7 +5909,7 @@ static int
|
||||
unshare_unmount_path(int op, char *path, int flags, boolean_t is_manual)
|
||||
{
|
||||
zfs_handle_t *zhp;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
struct stat64 statbuf;
|
||||
struct extmnttab entry;
|
||||
const char *cmdname = (op == OP_SHARE) ? "unshare" : "unmount";
|
||||
@ -6318,7 +6377,7 @@ manual_mount(int argc, char **argv)
|
||||
zfs_handle_t *zhp;
|
||||
char mountpoint[ZFS_MAXPROPLEN];
|
||||
char mntopts[MNT_LINE_MAX] = { '\0' };
|
||||
int ret;
|
||||
int ret = 0;
|
||||
int c;
|
||||
int flags = 0;
|
||||
char *dataset, *path;
|
||||
@ -6468,7 +6527,7 @@ zfs_do_diff(int argc, char **argv)
|
||||
char *tosnap = NULL;
|
||||
char *fromsnap = NULL;
|
||||
char *atp, *copy;
|
||||
int err;
|
||||
int err = 0;
|
||||
int c;
|
||||
|
||||
while ((c = getopt(argc, argv, "FHt")) != -1) {
|
||||
@ -6538,7 +6597,7 @@ zfs_do_diff(int argc, char **argv)
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
int ret;
|
||||
int ret = 0;
|
||||
int i;
|
||||
char *progname;
|
||||
char *cmdname;
|
||||
|
@ -1779,7 +1779,7 @@ The following command creates a
|
||||
storage pool consisting of two, two-way
|
||||
mirrors and mirrored log devices:
|
||||
.Bd -literal -offset 2n
|
||||
.Li # Ic zpool create pool mirror da0 da1 mirror da2 da3 log miror da4 da5
|
||||
.Li # Ic zpool create pool mirror da0 da1 mirror da2 da3 log mirror da4 da5
|
||||
.Ed
|
||||
.It Sy Example 14 No Adding Cache Devices to a Tn ZFS No Pool
|
||||
.Pp
|
||||
|
@ -497,6 +497,12 @@ static const dt_ident_t _dtrace_globals[] = {
|
||||
{ "zonename", DT_IDENT_SCALAR, 0, DIF_VAR_ZONENAME,
|
||||
DT_ATTR_STABCMN, DT_VERS_1_0, &dt_idops_type, "string" },
|
||||
#endif
|
||||
|
||||
#if !defined(sun)
|
||||
{ "cpu", DT_IDENT_SCALAR, 0, DIF_VAR_CPU,
|
||||
DT_ATTR_STABCMN, DT_VERS_1_6_3, &dt_idops_type, "int" },
|
||||
#endif
|
||||
|
||||
{ NULL, 0, 0, 0, { 0, 0, 0 }, 0, NULL, NULL }
|
||||
};
|
||||
|
||||
|
@ -811,7 +811,7 @@ dt_proc_destroy(dtrace_hdl_t *dtp, struct ps_prochandle *P)
|
||||
#if defined(sun)
|
||||
(void) _lwp_kill(dpr->dpr_tid, SIGCANCEL);
|
||||
#else
|
||||
pthread_kill(dpr->dpr_tid, SIGUSR1);
|
||||
pthread_kill(dpr->dpr_tid, SIGTHR);
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
75
cddl/contrib/opensolaris/lib/libdtrace/mips/dt_isadep.c
Normal file
75
cddl/contrib/opensolaris/lib/libdtrace/mips/dt_isadep.c
Normal file
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* CDDL HEADER START
|
||||
*
|
||||
* The contents of this file are subject to the terms of the
|
||||
* Common Development and Distribution License, Version 1.0 only
|
||||
* (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 2005 Sun Microsystems, Inc. All rights reserved.
|
||||
* Use is subject to license terms.
|
||||
*/
|
||||
|
||||
#pragma ident "%Z%%M% %I% %E% SMI"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <libgen.h>
|
||||
|
||||
#include <dt_impl.h>
|
||||
#include <dt_pid.h>
|
||||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
dt_pid_create_entry_probe(struct ps_prochandle *P, dtrace_hdl_t *dtp,
|
||||
fasttrap_probe_spec_t *ftp, const GElf_Sym *symp)
|
||||
{
|
||||
|
||||
dt_dprintf("%s: unimplemented\n", __func__);
|
||||
return (DT_PROC_ERR);
|
||||
}
|
||||
|
||||
int
|
||||
dt_pid_create_return_probe(struct ps_prochandle *P, dtrace_hdl_t *dtp,
|
||||
fasttrap_probe_spec_t *ftp, const GElf_Sym *symp, uint64_t *stret)
|
||||
{
|
||||
|
||||
dt_dprintf("%s: unimplemented\n", __func__);
|
||||
return (DT_PROC_ERR);
|
||||
}
|
||||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
dt_pid_create_offset_probe(struct ps_prochandle *P, dtrace_hdl_t *dtp,
|
||||
fasttrap_probe_spec_t *ftp, const GElf_Sym *symp, ulong_t off)
|
||||
{
|
||||
|
||||
dt_dprintf("%s: unimplemented\n", __func__);
|
||||
return (DT_PROC_ERR);
|
||||
}
|
||||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
dt_pid_create_glob_offset_probes(struct ps_prochandle *P, dtrace_hdl_t *dtp,
|
||||
fasttrap_probe_spec_t *ftp, const GElf_Sym *symp, const char *pattern)
|
||||
{
|
||||
|
||||
dt_dprintf("%s: unimplemented\n", __func__);
|
||||
return (DT_PROC_ERR);
|
||||
}
|
@ -22,6 +22,8 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright 2011 Nexenta Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2011 Pawel Jakub Dawidek <pawel@dawidek.net>.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2011 by Delphix. All rights reserved.
|
||||
* All rights reserved.
|
||||
*/
|
||||
@ -505,7 +507,7 @@ extern int zfs_iter_root(libzfs_handle_t *, zfs_iter_f, void *);
|
||||
extern int zfs_iter_children(zfs_handle_t *, zfs_iter_f, void *);
|
||||
extern int zfs_iter_dependents(zfs_handle_t *, boolean_t, zfs_iter_f, void *);
|
||||
extern int zfs_iter_filesystems(zfs_handle_t *, zfs_iter_f, void *);
|
||||
extern int zfs_iter_snapshots(zfs_handle_t *, zfs_iter_f, void *);
|
||||
extern int zfs_iter_snapshots(zfs_handle_t *, boolean_t, zfs_iter_f, void *);
|
||||
extern int zfs_iter_snapshots_sorted(zfs_handle_t *, zfs_iter_f, void *);
|
||||
extern int zfs_iter_snapspec(zfs_handle_t *, const char *, zfs_iter_f, void *);
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright 2010 Nexenta Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2011 by Delphix. All rights reserved.
|
||||
* Copyright (c) 2011 Pawel Jakub Dawidek <pawel@dawidek.net>.
|
||||
* Copyright (c) 2011-2012 Pawel Jakub Dawidek <pawel@dawidek.net>.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
@ -513,6 +513,22 @@ make_dataset_handle_zc(libzfs_handle_t *hdl, zfs_cmd_t *zc)
|
||||
return (zhp);
|
||||
}
|
||||
|
||||
zfs_handle_t *
|
||||
make_dataset_simple_handle_zc(zfs_handle_t *pzhp, zfs_cmd_t *zc)
|
||||
{
|
||||
zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1);
|
||||
|
||||
if (zhp == NULL)
|
||||
return (NULL);
|
||||
|
||||
zhp->zfs_hdl = pzhp->zfs_hdl;
|
||||
(void) strlcpy(zhp->zfs_name, zc->zc_name, sizeof (zhp->zfs_name));
|
||||
zhp->zfs_head_type = pzhp->zfs_type;
|
||||
zhp->zfs_type = ZFS_TYPE_SNAPSHOT;
|
||||
zhp->zpool_hdl = zpool_handle(zhp);
|
||||
return (zhp);
|
||||
}
|
||||
|
||||
zfs_handle_t *
|
||||
zfs_handle_dup(zfs_handle_t *zhp_orig)
|
||||
{
|
||||
@ -4197,7 +4213,7 @@ tryagain:
|
||||
|
||||
(void) strlcpy(zc.zc_name, zhp->zfs_name, ZFS_MAXNAMELEN);
|
||||
|
||||
if (zfs_ioctl(hdl, ZFS_IOC_GET_FSACL, &zc) != 0) {
|
||||
if (ioctl(hdl->libzfs_fd, ZFS_IOC_GET_FSACL, &zc) != 0) {
|
||||
(void) snprintf(errbuf, sizeof (errbuf),
|
||||
dgettext(TEXT_DOMAIN, "cannot get permissions on '%s'"),
|
||||
zc.zc_name);
|
||||
|
@ -150,7 +150,7 @@ int zpool_standard_error_fmt(libzfs_handle_t *, int, const char *, ...);
|
||||
int get_dependents(libzfs_handle_t *, boolean_t, const char *, char ***,
|
||||
size_t *);
|
||||
zfs_handle_t *make_dataset_handle_zc(libzfs_handle_t *, zfs_cmd_t *);
|
||||
|
||||
zfs_handle_t *make_dataset_simple_handle_zc(zfs_handle_t *, zfs_cmd_t *);
|
||||
|
||||
int zprop_parse_value(libzfs_handle_t *, nvpair_t *, int, zfs_type_t,
|
||||
nvlist_t *, char **, uint64_t *, const char *);
|
||||
|
@ -23,6 +23,8 @@
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright 2010 Nexenta Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2011 by Delphix. All rights reserved.
|
||||
* Copyright (c) 2012 Pawel Jakub Dawidek <pawel@dawidek.net>.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
@ -137,7 +139,8 @@ zfs_iter_filesystems(zfs_handle_t *zhp, zfs_iter_f func, void *data)
|
||||
* Iterate over all snapshots
|
||||
*/
|
||||
int
|
||||
zfs_iter_snapshots(zfs_handle_t *zhp, zfs_iter_f func, void *data)
|
||||
zfs_iter_snapshots(zfs_handle_t *zhp, boolean_t simple, zfs_iter_f func,
|
||||
void *data)
|
||||
{
|
||||
zfs_cmd_t zc = { 0 };
|
||||
zfs_handle_t *nzhp;
|
||||
@ -146,15 +149,19 @@ zfs_iter_snapshots(zfs_handle_t *zhp, zfs_iter_f func, void *data)
|
||||
if (zhp->zfs_type == ZFS_TYPE_SNAPSHOT)
|
||||
return (0);
|
||||
|
||||
zc.zc_simple = simple;
|
||||
|
||||
if (zcmd_alloc_dst_nvlist(zhp->zfs_hdl, &zc, 0) != 0)
|
||||
return (-1);
|
||||
while ((ret = zfs_do_list_ioctl(zhp, ZFS_IOC_SNAPSHOT_LIST_NEXT,
|
||||
&zc)) == 0) {
|
||||
|
||||
if ((nzhp = make_dataset_handle_zc(zhp->zfs_hdl,
|
||||
&zc)) == NULL) {
|
||||
if (simple)
|
||||
nzhp = make_dataset_simple_handle_zc(zhp, &zc);
|
||||
else
|
||||
nzhp = make_dataset_handle_zc(zhp->zfs_hdl, &zc);
|
||||
if (nzhp == NULL)
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((ret = func(nzhp, data)) != 0) {
|
||||
zcmd_free_nvlists(&zc);
|
||||
@ -234,7 +241,7 @@ zfs_iter_snapshots_sorted(zfs_handle_t *zhp, zfs_iter_f callback, void *data)
|
||||
avl_create(&avl, zfs_snapshot_compare,
|
||||
sizeof (zfs_node_t), offsetof(zfs_node_t, zn_avlnode));
|
||||
|
||||
ret = zfs_iter_snapshots(zhp, zfs_sort_snaps, &avl);
|
||||
ret = zfs_iter_snapshots(zhp, B_FALSE, zfs_sort_snaps, &avl);
|
||||
|
||||
for (node = avl_first(&avl); node != NULL; node = AVL_NEXT(&avl, node))
|
||||
ret |= callback(node->zn_handle, data);
|
||||
@ -378,7 +385,7 @@ zfs_iter_children(zfs_handle_t *zhp, zfs_iter_f func, void *data)
|
||||
if ((ret = zfs_iter_filesystems(zhp, func, data)) != 0)
|
||||
return (ret);
|
||||
|
||||
return (zfs_iter_snapshots(zhp, func, data));
|
||||
return (zfs_iter_snapshots(zhp, B_FALSE, func, data));
|
||||
}
|
||||
|
||||
|
||||
@ -439,8 +446,10 @@ iter_dependents_cb(zfs_handle_t *zhp, void *arg)
|
||||
isf.next = ida->stack;
|
||||
ida->stack = &isf;
|
||||
err = zfs_iter_filesystems(zhp, iter_dependents_cb, ida);
|
||||
if (err == 0)
|
||||
err = zfs_iter_snapshots(zhp, iter_dependents_cb, ida);
|
||||
if (err == 0) {
|
||||
err = zfs_iter_snapshots(zhp, B_FALSE,
|
||||
iter_dependents_cb, ida);
|
||||
}
|
||||
ida->stack = isf.next;
|
||||
}
|
||||
if (!first && err == 0)
|
||||
|
@ -22,6 +22,8 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2011 by Delphix. All rights reserved.
|
||||
* Copyright (c) 2012 Pawel Jakub Dawidek <pawel@dawidek.net>.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
@ -717,7 +719,7 @@ send_iterate_fs(zfs_handle_t *zhp, void *arg)
|
||||
sd->parent_fromsnap_guid = 0;
|
||||
VERIFY(0 == nvlist_alloc(&sd->parent_snaps, NV_UNIQUE_NAME, 0));
|
||||
VERIFY(0 == nvlist_alloc(&sd->snapprops, NV_UNIQUE_NAME, 0));
|
||||
(void) zfs_iter_snapshots(zhp, send_iterate_snap, sd);
|
||||
(void) zfs_iter_snapshots(zhp, B_FALSE, send_iterate_snap, sd);
|
||||
VERIFY(0 == nvlist_add_nvlist(nvfs, "snaps", sd->parent_snaps));
|
||||
VERIFY(0 == nvlist_add_nvlist(nvfs, "snapprops", sd->snapprops));
|
||||
nvlist_free(sd->parent_snaps);
|
||||
|
@ -331,6 +331,7 @@ extern void cv_broadcast(kcondvar_t *cv);
|
||||
#define KM_NOSLEEP UMEM_DEFAULT
|
||||
#define KMC_NODEBUG UMC_NODEBUG
|
||||
#define KMC_NOTOUCH 0 /* not needed for userland caches */
|
||||
#define KM_NODEBUG 0
|
||||
#define kmem_alloc(_s, _f) umem_alloc(_s, _f)
|
||||
#define kmem_zalloc(_s, _f) umem_zalloc(_s, _f)
|
||||
#define kmem_free(_b, _s) umem_free(_b, _s)
|
||||
|
@ -62,6 +62,18 @@ struct ctf_buf {
|
||||
int ntholes; /* number of type holes */
|
||||
};
|
||||
|
||||
/*
|
||||
* Macros to reverse byte order
|
||||
*/
|
||||
#define BSWAP_8(x) ((x) & 0xff)
|
||||
#define BSWAP_16(x) ((BSWAP_8(x) << 8) | BSWAP_8((x) >> 8))
|
||||
#define BSWAP_32(x) ((BSWAP_16(x) << 16) | BSWAP_16((x) >> 16))
|
||||
|
||||
#define SWAP_16(x) (x) = BSWAP_16(x)
|
||||
#define SWAP_32(x) (x) = BSWAP_32(x)
|
||||
|
||||
static int target_requires_swap;
|
||||
|
||||
/*PRINTFLIKE1*/
|
||||
static void
|
||||
parseterminate(const char *fmt, ...)
|
||||
@ -140,6 +152,11 @@ write_label(void *arg1, void *arg2)
|
||||
ctl.ctl_label = strtab_insert(&b->ctb_strtab, le->le_name);
|
||||
ctl.ctl_typeidx = le->le_idx;
|
||||
|
||||
if (target_requires_swap) {
|
||||
SWAP_32(ctl.ctl_label);
|
||||
SWAP_32(ctl.ctl_typeidx);
|
||||
}
|
||||
|
||||
ctf_buf_write(b, &ctl, sizeof (ctl));
|
||||
|
||||
return (1);
|
||||
@ -152,6 +169,10 @@ write_objects(iidesc_t *idp, ctf_buf_t *b)
|
||||
|
||||
ctf_buf_write(b, &id, sizeof (id));
|
||||
|
||||
if (target_requires_swap) {
|
||||
SWAP_16(id);
|
||||
}
|
||||
|
||||
debug(3, "Wrote object %s (%d)\n", (idp ? idp->ii_name : "(null)"), id);
|
||||
}
|
||||
|
||||
@ -180,10 +201,21 @@ write_functions(iidesc_t *idp, ctf_buf_t *b)
|
||||
|
||||
fdata[0] = CTF_TYPE_INFO(CTF_K_FUNCTION, 1, nargs);
|
||||
fdata[1] = idp->ii_dtype->t_id;
|
||||
|
||||
if (target_requires_swap) {
|
||||
SWAP_16(fdata[0]);
|
||||
SWAP_16(fdata[1]);
|
||||
}
|
||||
|
||||
ctf_buf_write(b, fdata, sizeof (fdata));
|
||||
|
||||
for (i = 0; i < idp->ii_nargs; i++) {
|
||||
id = idp->ii_args[i]->t_id;
|
||||
|
||||
if (target_requires_swap) {
|
||||
SWAP_16(id);
|
||||
}
|
||||
|
||||
ctf_buf_write(b, &id, sizeof (id));
|
||||
}
|
||||
|
||||
@ -208,11 +240,25 @@ write_sized_type_rec(ctf_buf_t *b, ctf_type_t *ctt, size_t size)
|
||||
ctt->ctt_size = CTF_LSIZE_SENT;
|
||||
ctt->ctt_lsizehi = CTF_SIZE_TO_LSIZE_HI(size);
|
||||
ctt->ctt_lsizelo = CTF_SIZE_TO_LSIZE_LO(size);
|
||||
if (target_requires_swap) {
|
||||
SWAP_32(ctt->ctt_name);
|
||||
SWAP_16(ctt->ctt_info);
|
||||
SWAP_16(ctt->ctt_size);
|
||||
SWAP_32(ctt->ctt_lsizehi);
|
||||
SWAP_32(ctt->ctt_lsizelo);
|
||||
}
|
||||
ctf_buf_write(b, ctt, sizeof (*ctt));
|
||||
} else {
|
||||
ctf_stype_t *cts = (ctf_stype_t *)ctt;
|
||||
|
||||
cts->ctt_size = (ushort_t)size;
|
||||
|
||||
if (target_requires_swap) {
|
||||
SWAP_32(cts->ctt_name);
|
||||
SWAP_16(cts->ctt_info);
|
||||
SWAP_16(cts->ctt_size);
|
||||
}
|
||||
|
||||
ctf_buf_write(b, cts, sizeof (*cts));
|
||||
}
|
||||
}
|
||||
@ -222,6 +268,12 @@ write_unsized_type_rec(ctf_buf_t *b, ctf_type_t *ctt)
|
||||
{
|
||||
ctf_stype_t *cts = (ctf_stype_t *)ctt;
|
||||
|
||||
if (target_requires_swap) {
|
||||
SWAP_32(cts->ctt_name);
|
||||
SWAP_16(cts->ctt_info);
|
||||
SWAP_16(cts->ctt_size);
|
||||
}
|
||||
|
||||
ctf_buf_write(b, cts, sizeof (*cts));
|
||||
}
|
||||
|
||||
@ -296,6 +348,9 @@ write_type(void *arg1, void *arg2)
|
||||
encoding = ip->intr_fformat;
|
||||
|
||||
data = CTF_INT_DATA(encoding, ip->intr_offset, ip->intr_nbits);
|
||||
if (target_requires_swap) {
|
||||
SWAP_32(data);
|
||||
}
|
||||
ctf_buf_write(b, &data, sizeof (data));
|
||||
break;
|
||||
|
||||
@ -312,6 +367,11 @@ write_type(void *arg1, void *arg2)
|
||||
cta.cta_contents = tp->t_ardef->ad_contents->t_id;
|
||||
cta.cta_index = tp->t_ardef->ad_idxtype->t_id;
|
||||
cta.cta_nelems = tp->t_ardef->ad_nelems;
|
||||
if (target_requires_swap) {
|
||||
SWAP_16(cta.cta_contents);
|
||||
SWAP_16(cta.cta_index);
|
||||
SWAP_32(cta.cta_nelems);
|
||||
}
|
||||
ctf_buf_write(b, &cta, sizeof (cta));
|
||||
break;
|
||||
|
||||
@ -341,6 +401,11 @@ write_type(void *arg1, void *arg2)
|
||||
offset);
|
||||
ctm.ctm_type = mp->ml_type->t_id;
|
||||
ctm.ctm_offset = mp->ml_offset;
|
||||
if (target_requires_swap) {
|
||||
SWAP_32(ctm.ctm_name);
|
||||
SWAP_16(ctm.ctm_type);
|
||||
SWAP_16(ctm.ctm_offset);
|
||||
}
|
||||
ctf_buf_write(b, &ctm, sizeof (ctm));
|
||||
}
|
||||
} else {
|
||||
@ -355,6 +420,14 @@ write_type(void *arg1, void *arg2)
|
||||
CTF_OFFSET_TO_LMEMHI(mp->ml_offset);
|
||||
ctlm.ctlm_offsetlo =
|
||||
CTF_OFFSET_TO_LMEMLO(mp->ml_offset);
|
||||
|
||||
if (target_requires_swap) {
|
||||
SWAP_32(ctlm.ctlm_name);
|
||||
SWAP_16(ctlm.ctlm_type);
|
||||
SWAP_32(ctlm.ctlm_offsethi);
|
||||
SWAP_32(ctlm.ctlm_offsetlo);
|
||||
}
|
||||
|
||||
ctf_buf_write(b, &ctlm, sizeof (ctlm));
|
||||
}
|
||||
}
|
||||
@ -377,6 +450,12 @@ write_type(void *arg1, void *arg2)
|
||||
offset = strtab_insert(&b->ctb_strtab, ep->el_name);
|
||||
cte.cte_name = CTF_TYPE_NAME(CTF_STRTAB_0, offset);
|
||||
cte.cte_value = ep->el_number;
|
||||
|
||||
if (target_requires_swap) {
|
||||
SWAP_32(cte.cte_name);
|
||||
SWAP_32(cte.cte_value);
|
||||
}
|
||||
|
||||
ctf_buf_write(b, &cte, sizeof (cte));
|
||||
i--;
|
||||
}
|
||||
@ -420,6 +499,11 @@ write_type(void *arg1, void *arg2)
|
||||
|
||||
for (i = 0; i < (int) tp->t_fndef->fn_nargs; i++) {
|
||||
id = tp->t_fndef->fn_args[i]->t_id;
|
||||
|
||||
if (target_requires_swap) {
|
||||
SWAP_16(id);
|
||||
}
|
||||
|
||||
ctf_buf_write(b, &id, sizeof (id));
|
||||
}
|
||||
|
||||
@ -613,6 +697,9 @@ ctf_gen(iiburst_t *iiburst, size_t *resszp, int do_compress)
|
||||
|
||||
int i;
|
||||
|
||||
target_requires_swap = do_compress & CTF_SWAP_BYTES;
|
||||
do_compress &= ~CTF_SWAP_BYTES;
|
||||
|
||||
/*
|
||||
* Prepare the header, and create the CTF output buffers. The data
|
||||
* object section and function section are both lists of 2-byte
|
||||
@ -649,6 +736,18 @@ ctf_gen(iiburst_t *iiburst, size_t *resszp, int do_compress)
|
||||
h.cth_stroff = ctf_buf_cur(buf);
|
||||
h.cth_strlen = strtab_size(&buf->ctb_strtab);
|
||||
|
||||
if (target_requires_swap) {
|
||||
SWAP_16(h.cth_preamble.ctp_magic);
|
||||
SWAP_32(h.cth_parlabel);
|
||||
SWAP_32(h.cth_parname);
|
||||
SWAP_32(h.cth_lbloff);
|
||||
SWAP_32(h.cth_objtoff);
|
||||
SWAP_32(h.cth_funcoff);
|
||||
SWAP_32(h.cth_typeoff);
|
||||
SWAP_32(h.cth_stroff);
|
||||
SWAP_32(h.cth_strlen);
|
||||
}
|
||||
|
||||
/*
|
||||
* We only do compression for ctfmerge, as ctfconvert is only
|
||||
* supposed to be used on intermediary build objects. This is
|
||||
|
@ -620,7 +620,7 @@ copy_ctf_data(char *srcfile, char *destfile, int keep_stabs)
|
||||
terminate("No CTF data found in source file %s\n", srcfile);
|
||||
|
||||
tmpname = mktmpname(destfile, ".ctf");
|
||||
write_ctf(srctd, destfile, tmpname, CTF_COMPRESS | keep_stabs);
|
||||
write_ctf(srctd, destfile, tmpname, CTF_COMPRESS | CTF_SWAP_BYTES | keep_stabs);
|
||||
if (rename(tmpname, destfile) != 0) {
|
||||
terminate("Couldn't rename temp file %s to %s", tmpname,
|
||||
destfile);
|
||||
@ -1015,7 +1015,7 @@ main(int argc, char **argv)
|
||||
|
||||
tmpname = mktmpname(outfile, ".ctf");
|
||||
write_ctf(savetd, outfile, tmpname,
|
||||
CTF_COMPRESS | write_fuzzy_match | dynsym | keep_stabs);
|
||||
CTF_COMPRESS | CTF_SWAP_BYTES | write_fuzzy_match | dynsym | keep_stabs);
|
||||
if (rename(tmpname, outfile) != 0)
|
||||
terminate("Couldn't rename output temp file %s", tmpname);
|
||||
free(tmpname);
|
||||
|
@ -391,6 +391,7 @@ void merge_into_master(tdata_t *, tdata_t *, tdata_t *, int);
|
||||
#define CTF_USE_DYNSYM 0x2 /* use .dynsym not .symtab */
|
||||
#define CTF_COMPRESS 0x4 /* compress CTF output */
|
||||
#define CTF_KEEP_STABS 0x8 /* keep .stabs sections */
|
||||
#define CTF_SWAP_BYTES 0x10 /* target byte order is different from host */
|
||||
|
||||
void write_ctf(tdata_t *, const char *, const char *, int);
|
||||
|
||||
|
@ -717,7 +717,7 @@ make_ctf_data(tdata_t *td, Elf *elf, const char *file, size_t *lenp, int flags)
|
||||
|
||||
iiburst = sort_iidescs(elf, file, td, flags & CTF_FUZZY_MATCH,
|
||||
flags & CTF_USE_DYNSYM);
|
||||
data = ctf_gen(iiburst, lenp, flags & CTF_COMPRESS);
|
||||
data = ctf_gen(iiburst, lenp, flags & (CTF_COMPRESS | CTF_SWAP_BYTES));
|
||||
|
||||
iiburst_free(iiburst);
|
||||
|
||||
@ -730,10 +730,12 @@ write_ctf(tdata_t *td, const char *curname, const char *newname, int flags)
|
||||
struct stat st;
|
||||
Elf *elf = NULL;
|
||||
Elf *telf = NULL;
|
||||
GElf_Ehdr ehdr;
|
||||
caddr_t data;
|
||||
size_t len;
|
||||
int fd = -1;
|
||||
int tfd = -1;
|
||||
int byteorder;
|
||||
|
||||
(void) elf_version(EV_CURRENT);
|
||||
if ((fd = open(curname, O_RDONLY)) < 0 || fstat(fd, &st) < 0)
|
||||
@ -746,6 +748,22 @@ write_ctf(tdata_t *td, const char *curname, const char *newname, int flags)
|
||||
if ((telf = elf_begin(tfd, ELF_C_WRITE, NULL)) == NULL)
|
||||
elfterminate(curname, "Cannot write");
|
||||
|
||||
if (gelf_getehdr(elf, &ehdr)) {
|
||||
#if BYTE_ORDER == _BIG_ENDIAN
|
||||
byteorder = ELFDATA2MSB;
|
||||
#else
|
||||
byteorder = ELFDATA2LSB;
|
||||
#endif
|
||||
/*
|
||||
* If target and host has the same byte order
|
||||
* clear byte swapping request
|
||||
*/
|
||||
if (ehdr.e_ident[EI_DATA] == byteorder)
|
||||
flags &= ~CTF_SWAP_BYTES;
|
||||
}
|
||||
else
|
||||
elfterminate(curname, "Failed to get EHDR");
|
||||
|
||||
data = make_ctf_data(td, elf, curname, &len, flags);
|
||||
write_file(elf, curname, telf, newname, data, len, flags);
|
||||
free(data);
|
||||
|
@ -19,7 +19,7 @@ _libzpool= libzpool
|
||||
.endif
|
||||
.endif
|
||||
|
||||
.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
|
||||
.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" || ${MACHINE_CPUARCH} == "mips"
|
||||
_drti= drti
|
||||
_libdtrace= libdtrace
|
||||
.endif
|
||||
|
@ -42,8 +42,7 @@ SRCS= dt_aggregate.c \
|
||||
dt_subr.c \
|
||||
dt_work.c \
|
||||
dt_xlator.c \
|
||||
gmatch.c \
|
||||
dis_tables.c
|
||||
gmatch.c
|
||||
|
||||
DSRCS= errno.d \
|
||||
psinfo.d \
|
||||
@ -70,12 +69,17 @@ CFLAGS+= -I${OPENSOLARIS_SYS_DISTDIR}/uts/intel -DDIS_MEM
|
||||
.elif ${MACHINE_CPUARCH} == "sparc64"
|
||||
CFLAGS+= -I${OPENSOLARIS_SYS_DISTDIR}/uts/sparc
|
||||
.PATH: ${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libdtrace/sparc
|
||||
.elif ${MACHINE_CPUARCH} == "mips"
|
||||
CFLAGS+= -I${OPENSOLARIS_SYS_DISTDIR}/uts/mips
|
||||
.PATH: ${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libdtrace/mips
|
||||
.PATH: ${.CURDIR}/../../../sys/cddl/dev/dtrace/mips
|
||||
.else
|
||||
# temporary hack
|
||||
CFLAGS+= -I${OPENSOLARIS_SYS_DISTDIR}/uts/intel
|
||||
.endif
|
||||
|
||||
.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64"
|
||||
SRCS+= dis_tables.c
|
||||
DSRCS+= regs_x86.d
|
||||
.endif
|
||||
|
||||
|
@ -19,4 +19,8 @@ _dtruss= dtruss
|
||||
_lockstat= lockstat
|
||||
.endif
|
||||
|
||||
.if ${MACHINE_CPUARCH} == "mips"
|
||||
_dtrace= dtrace
|
||||
.endif
|
||||
|
||||
.include <bsd.subdir.mk>
|
||||
|
@ -1,9 +1,309 @@
|
||||
--- 9.8.1-P1 released ---
|
||||
--- 9.8.2 released ---
|
||||
|
||||
3298. [bug] Named could dereference a NULL pointer in
|
||||
zmgr_start_xfrin_ifquota if the zone was being removed.
|
||||
[RT #28419]
|
||||
|
||||
3297. [bug] Named could die on a malformed master file. [RT #28467]
|
||||
|
||||
3295. [bug] Adjust isc_time_secondsastimet range check to be more
|
||||
portable. [RT # 26542]
|
||||
|
||||
3294. [bug] isccc/cc.c:table_fromwire failed to free alist on
|
||||
error. [RT #28265]
|
||||
|
||||
3291. [port] Fixed a build error on systems without ENOTSUP.
|
||||
[RT #28200]
|
||||
|
||||
3290. [bug] <isc/hmacsha.h> was not being installed. [RT #28169]
|
||||
|
||||
3288. [bug] dlz_destroy() function wasn't correctly registered
|
||||
by the DLZ dlopen driver. [RT #28056]
|
||||
|
||||
3287. [port] Update ans.pl to work with Net::DNS 0.68. [RT #28028]
|
||||
|
||||
3286. [bug] Managed key maintenance timer could fail to start
|
||||
after 'rndc reconfig'. [RT #26786]
|
||||
|
||||
--- 9.8.2rc2 released ---
|
||||
|
||||
3285. [bug] val-frdataset was incorrectly disassociated in
|
||||
proveunsecure after calling startfinddlvsep.
|
||||
[RT #27928]
|
||||
|
||||
3284. [bug] Address race conditions with the handling of
|
||||
rbtnode.deadlink. [RT #27738]
|
||||
|
||||
3283. [bug] Raw zones with with more than 512 records in a RRset
|
||||
failed to load. [RT #27863]
|
||||
|
||||
3282. [bug] Restrict the TTL of NS RRset to no more than that
|
||||
of the old NS RRset when replacing it.
|
||||
[RT #27792] [RT #27884]
|
||||
|
||||
3281. [bug] SOA refresh queries could be treated as cancelled
|
||||
despite succeeding over the loopback interface.
|
||||
[RT #27782]
|
||||
|
||||
3280. [bug] Potential double free of a rdataset on out of memory
|
||||
with DNS64. [RT #27762]
|
||||
|
||||
3278. [bug] Make sure automatic key maintenance is started
|
||||
when "auto-dnssec maintain" is turned on during
|
||||
"rndc reconfig". [RT #26805]
|
||||
|
||||
3276. [bug] win32: ns_os_openfile failed to return NULL on
|
||||
safe_open failure. [RT #27696]
|
||||
|
||||
3274. [bug] Log when a zone is not reusable. Only set loadtime
|
||||
on successful loads. [RT #27650]
|
||||
|
||||
3273. [bug] AAAA responses could be returned in the additional
|
||||
section even when filter-aaaa-on-v4 was in use.
|
||||
[RT #27292]
|
||||
|
||||
3271. [port] darwin: mksymtbl is not always stable, loop several
|
||||
times before giving up. mksymtbl was using non
|
||||
portable perl to covert 64 bit hex strings. [RT #27653]
|
||||
|
||||
3268. [bug] Convert RRSIG expiry times to 64 timestamps to work
|
||||
out the earliest expiry time. [RT #23311]
|
||||
|
||||
3267. [bug] Memory allocation failures could be mis-reported as
|
||||
unexpected error. New ISC_R_UNSET result code.
|
||||
[RT #27336]
|
||||
|
||||
3266. [bug] The maximum number of NSEC3 iterations for a
|
||||
DNSKEY RRset was not being properly computed.
|
||||
[RT #26543]
|
||||
|
||||
3262. [bug] Signed responses were handled incorrectly by RPZ.
|
||||
[RT #27316]
|
||||
|
||||
--- 9.8.2rc1 released ---
|
||||
|
||||
3260. [bug] "rrset-order cyclic" could appear not to rotate
|
||||
for some query patterns. [RT #27170/27185]
|
||||
|
||||
3259. [bug] named-compilezone: Suppress "dump zone to <file>"
|
||||
message when writing to stdout. [RT #27109]
|
||||
|
||||
3258. [test] Add "forcing full sign with unreadable keys" test.
|
||||
[RT #27153]
|
||||
|
||||
3257. [bug] Do not generate a error message when calling fsync()
|
||||
in a pipe or socket. [RT #27109]
|
||||
|
||||
3256. [bug] Disable empty zones for lwresd -C. [RT #27139]
|
||||
|
||||
3254. [bug] Set isc_socket_ipv6only() on the IPv6 control channels.
|
||||
[RT #22249]
|
||||
|
||||
3253. [bug] Return DNS_R_SYNTAX when the input to a text field is
|
||||
too long. [RT #26956]
|
||||
|
||||
3251. [bug] Enforce a upper bound (65535 bytes) on the amount of
|
||||
memory dns_sdlz_putrr() can allocate per record to
|
||||
prevent run away memory consumption on ISC_R_NOSPACE.
|
||||
[RT #26956]
|
||||
|
||||
3250. [func] 'configure --enable-developer'; turn on various
|
||||
configure options, normally off by default, that
|
||||
we want developers to build and test with. [RT #27103]
|
||||
|
||||
3249. [bug] Update log message when saving slave zones files for
|
||||
analysis after load failures. [RT #27087]
|
||||
|
||||
3248. [bug] Configure options --enable-fixed-rrset and
|
||||
--enable-exportlib were incompatible with each
|
||||
other. [RT #27087]
|
||||
|
||||
3247. [bug] 'raw' format zones failed to preserve load order
|
||||
breaking 'fixed' sort order. [RT #27087]
|
||||
|
||||
3243. [port] netbsd,bsdi: the thread defaults were not being
|
||||
properly set.
|
||||
|
||||
3241. [bug] Address race conditions in the resolver code.
|
||||
[RT #26889]
|
||||
|
||||
3240. [bug] DNSKEY state change events could be missed. [RT #26874]
|
||||
|
||||
3239. [bug] dns_dnssec_findmatchingkeys needs to use a consistent
|
||||
timestamp. [RT #26883]
|
||||
|
||||
3238. [bug] keyrdata was not being reinitialized in
|
||||
lib/dns/rbtdb.c:iszonesecure. [RT#26913]
|
||||
|
||||
3237. [bug] dig -6 didn't work with +trace. [RT #26906]
|
||||
|
||||
--- 9.8.2b1 released ---
|
||||
|
||||
3234. [bug] 'make depend' produced invalid makefiles. [RT #26830]
|
||||
|
||||
3231. [bug] named could fail to send a uncompressable zone.
|
||||
[RT #26796]
|
||||
|
||||
3230. [bug] 'dig axfr' failed to properly handle a multi-message
|
||||
axfr with a serial of 0. [RT #26796]
|
||||
|
||||
3229. [bug] Fix local variable to struct var assignment
|
||||
found by CLANG warning.
|
||||
|
||||
3228. [tuning] Dynamically grow symbol table to improve zone
|
||||
loading performance. [RT #26523]
|
||||
|
||||
3227. [bug] Interim fix to make WKS's use of getprotobyname()
|
||||
and getservbyname() self thread safe. [RT #26232]
|
||||
|
||||
3226. [bug] Address minor resource leakages. [RT #26624]
|
||||
|
||||
3221. [bug] Fixed a potential coredump on shutdown due to
|
||||
referencing fetch context after it's been freed.
|
||||
[RT #26720]
|
||||
|
||||
3220. [bug] Change #3186 was incomplete; dns_db_rpz_findips()
|
||||
could fail to set the database version correctly,
|
||||
causing an assertion failure. [RT #26180]
|
||||
|
||||
3218. [security] Cache lookup could return RRSIG data associated with
|
||||
nonexistent records, leading to an assertion
|
||||
failure. [RT #26590]
|
||||
|
||||
3217. [cleanup] Fix build problem with --disable-static. [RT #26476]
|
||||
|
||||
3216. [bug] resolver.c:validated() was not thread-safe. [RT #26478]
|
||||
|
||||
3213. [doc] Clarify ixfr-from-differences behavior. [RT #25188]
|
||||
|
||||
3212. [bug] rbtdb.c: failed to remove a node from the deadnodes
|
||||
list prior to adding a reference to it leading a
|
||||
possible assertion failure. [RT #23219]
|
||||
|
||||
3209. [func] Add "dnssec-lookaside 'no'". [RT #24858]
|
||||
|
||||
3208. [bug] 'dig -y' handle unknown tsig alorithm better.
|
||||
[RT #25522]
|
||||
|
||||
3207. [contrib] Fixed build error in Berkeley DB DLZ module. [RT #26444]
|
||||
|
||||
3206. [cleanup] Add ISC information to log at start time. [RT #25484]
|
||||
|
||||
3204. [bug] When a master server that has been marked as
|
||||
unreachable sends a NOTIFY, mark it reachable
|
||||
again. [RT #25960]
|
||||
|
||||
3203. [bug] Increase log level to 'info' for validation failures
|
||||
from expired or not-yet-valid RRSIGs. [RT #21796]
|
||||
|
||||
3200. [doc] Some rndc functions were undocumented or were
|
||||
missing from 'rndc -h' output. [RT #25555]
|
||||
|
||||
3198. [doc] Clarified that dnssec-settime can alter keyfile
|
||||
permissions. [RT #24866]
|
||||
|
||||
3196. [bug] nsupdate: return nonzero exit code when target zone
|
||||
doesn't exist. [RT #25783]
|
||||
|
||||
3195. [cleanup] Silence "file not found" warnings when loading
|
||||
managed-keys zone. [RT #26340]
|
||||
|
||||
3194. [doc] Updated RFC references in the 'empty-zones-enable'
|
||||
documentation. [RT #25203]
|
||||
|
||||
3193. [cleanup] Changed MAXZONEKEYS to DNS_MAXZONEKEYS, moved to
|
||||
dnssec.h. [RT #26415]
|
||||
|
||||
3192. [bug] A query structure could be used after being freed.
|
||||
[RT #22208]
|
||||
|
||||
3191. [bug] Print NULL records using "unknown" format. [RT #26392]
|
||||
|
||||
3190. [bug] Underflow in error handling in isc_mutexblock_init.
|
||||
[RT #26397]
|
||||
|
||||
3189. [test] Added a summary report after system tests. [RT #25517]
|
||||
|
||||
3188. [bug] zone.c:zone_refreshkeys() could fail to detach
|
||||
references correctly when errors occurred, causing
|
||||
a hang on shutdown. [RT #26372]
|
||||
|
||||
3187. [port] win32: support for Visual Studio 2008. [RT #26356]
|
||||
|
||||
3186. [bug] Version/db mis-match in rpz code. [RT #26180]
|
||||
|
||||
3179. [port] kfreebsd: build issues. [RT #26273]
|
||||
|
||||
3175. [bug] Fix how DNSSEC positive wildcard responses from a
|
||||
NSEC3 signed zone are validated. Stop sending a
|
||||
unnecessary NSEC3 record when generating such
|
||||
responses. [RT #26200]
|
||||
|
||||
3174. [bug] Always compute to revoked key tag from scratch.
|
||||
[RT #26186]
|
||||
|
||||
3173. [port] Correctly validate root DS responses. [RT #25726]
|
||||
|
||||
3171. [bug] Exclusively lock the task when adding a zone using
|
||||
'rndc addzone'. [RT #25600]
|
||||
|
||||
3170. [func] RPZ update:
|
||||
- fix precedence among competing rules
|
||||
- improve ARM text including documenting rule precedence
|
||||
- try to rewrite CNAME chains until first hit
|
||||
- new "rpz" logging channel
|
||||
- RDATA for CNAME rules can include wildcards
|
||||
- replace "NO-OP" named.conf policy override with
|
||||
"PASSTHRU" and add "DISABLED" override ("NO-OP"
|
||||
is still recognized)
|
||||
[RT #25172]
|
||||
|
||||
3169. [func] Catch db/version mis-matches when calling dns_db_*().
|
||||
[RT #26017]
|
||||
|
||||
3167. [bug] Negative answers from forwarders were not being
|
||||
correctly tagged making them appear to not be cached.
|
||||
[RT #25380]
|
||||
|
||||
3162. [test] start.pl: modified to allow for "named.args" in
|
||||
ns*/ subdirectory to override stock arguments to
|
||||
named. Largely from RT#26044, but no separate ticket.
|
||||
|
||||
3161. [bug] zone.c:del_sigs failed to always reset rdata leading
|
||||
assertion failures. [RT #25880]
|
||||
|
||||
3157. [tuning] Reduce the time spent in "rndc reconfig" by parsing
|
||||
the config file before pausing the server. [RT #21373]
|
||||
|
||||
3155. [bug] Fixed a build failure when using contrib DLZ
|
||||
drivers (e.g., mysql, postgresql, etc). [RT #25710]
|
||||
|
||||
3154. [bug] Attempting to print an empty rdataset could trigger
|
||||
an assert. [RT #25452]
|
||||
|
||||
3152. [cleanup] Some versions of gcc and clang failed due to
|
||||
incorrect use of __builtin_expect. [RT #25183]
|
||||
|
||||
3151. [bug] Queries for type RRSIG or SIG could be handled
|
||||
incorrectly. [RT #21050]
|
||||
|
||||
3148. [bug] Processing of normal queries could be stalled when
|
||||
forwarding a UPDATE message. [RT #24711]
|
||||
|
||||
3146. [test] Fixed gcc4.6.0 errors in ATF. [RT #25598]
|
||||
|
||||
3145. [test] Capture output of ATF unit tests in "./atf.out" if
|
||||
there were any errors while running them. [RT #25527]
|
||||
|
||||
3144. [bug] dns_dbiterator_seek() could trigger an assert when
|
||||
used with a nonexistent database node. [RT #25358]
|
||||
|
||||
3143. [bug] Silence clang compiler warnings. [RT #25174]
|
||||
|
||||
3139. [test] Added tests from RFC 6234, RFC 2202, and RFC 1321
|
||||
for the hashing algorithms (md5, sha1 - sha512, and
|
||||
their hmac counterparts). [RT #25067]
|
||||
|
||||
--- 9.8.1 released ---
|
||||
|
||||
--- 9.8.1rc1 released ---
|
||||
@ -14,7 +314,7 @@
|
||||
3138. [bug] Address memory leaks and out-of-order operations when
|
||||
shutting named down. [RT #25210]
|
||||
|
||||
3136. [func] Add RFC 1918 reverse zones to the list of built-in
|
||||
3136. [func] Add RFC 1918 reverse zones to the list of built-in
|
||||
empty zones switched on by the 'empty-zones-enable'
|
||||
option. [RT #24990]
|
||||
|
||||
@ -34,9 +334,9 @@
|
||||
|
||||
3133. [bug] Change #3114 was incomplete. [RT #24577]
|
||||
|
||||
3131. [tuning] Improve scalability by allocating one zone task
|
||||
per 100 zones at startup time, rather than using a
|
||||
fixed-size task table. [RT #24406]
|
||||
3131. [tuning] Improve scalability by allocating one zone task
|
||||
per 100 zones at startup time, rather than using a
|
||||
fixed-size task table. [RT #24406]
|
||||
|
||||
3129. [bug] Named could crash on 'rndc reconfig' when
|
||||
allow-new-zones was set to yes and named ACLs
|
||||
@ -62,10 +362,10 @@
|
||||
|
||||
3122. [cleanup] dnssec-settime: corrected usage message. [RT #24664]
|
||||
|
||||
3121. [security] An authoritative name server sending a negative
|
||||
response containing a very large RRset could
|
||||
trigger an off-by-one error in the ncache code
|
||||
and crash named. [RT #24650]
|
||||
3121. [security] An authoritative name server sending a negative
|
||||
response containing a very large RRset could
|
||||
trigger an off-by-one error in the ncache code
|
||||
and crash named. [RT #24650]
|
||||
|
||||
3120. [bug] Named could fail to validate zones listed in a DLV
|
||||
that validated insecure without using DLV and had
|
||||
@ -99,9 +399,9 @@
|
||||
"krb5-subdomain", which allow machines to update
|
||||
their own records, to the BIND 9 ARM.
|
||||
|
||||
3111. [bug] Improved consistency checks for dnssec-enable and
|
||||
dnssec-validation, added test cases to the
|
||||
checkconf system test. [RT #24398]
|
||||
3111. [bug] Improved consistency checks for dnssec-enable and
|
||||
dnssec-validation, added test cases to the
|
||||
checkconf system test. [RT #24398]
|
||||
|
||||
3110. [bug] dnssec-signzone: Wrong error message could appear
|
||||
when attempting to sign with no KSK. [RT #24369]
|
||||
@ -109,10 +409,10 @@
|
||||
3107. [bug] dnssec-signzone: Report the correct number of ZSKs
|
||||
when using -x. [RT #20852]
|
||||
|
||||
3105. [bug] GOST support can be suppressed by "configure
|
||||
--without-gost" [RT #24367]
|
||||
3105. [bug] GOST support can be suppressed by "configure
|
||||
--without-gost" [RT #24367]
|
||||
|
||||
3104. [bug] Better support for cross-compiling. [RT #24367]
|
||||
3104. [bug] Better support for cross-compiling. [RT #24367]
|
||||
|
||||
3103. [bug] Configuring 'dnssec-validation auto' in a view
|
||||
instead of in the options statement could trigger
|
||||
@ -142,7 +442,7 @@
|
||||
|
||||
3094. [doc] Expand dns64 documentation.
|
||||
|
||||
3093. [bug] Fix gssapi/kerberos dependencies [RT #23836]
|
||||
3093. [bug] Fix gssapi/kerberos dependencies [RT #23836]
|
||||
|
||||
3092. [bug] Signatures for records at the zone apex could go
|
||||
stale due to an incorrect timer setting. [RT #23769]
|
||||
@ -151,7 +451,7 @@
|
||||
and then subsequently activated could fail to trigger
|
||||
automatic signing. [RT #22911]
|
||||
|
||||
3090. [func] Make --with-gssapi default [RT #23738]
|
||||
3090. [func] Make --with-gssapi default [RT #23738]
|
||||
|
||||
3088. [bug] Remove bin/tests/system/logfileconfig/ns1/named.conf
|
||||
and add setup.sh in order to resolve changing
|
||||
@ -269,9 +569,9 @@
|
||||
|
||||
3043. [test] Merged in the NetBSD ATF test framework (currently
|
||||
version 0.12) for development of future unit tests.
|
||||
Use configure --with-atf to build ATF internally
|
||||
or configure --with-atf=prefix to use an external
|
||||
copy. [RT #23209]
|
||||
Use configure --with-atf to build ATF internally
|
||||
or configure --with-atf=prefix to use an external
|
||||
copy. [RT #23209]
|
||||
|
||||
3042. [bug] dig +trace could fail attempting to use IPv6
|
||||
addresses on systems with only IPv4 connectivity.
|
||||
@ -706,7 +1006,7 @@
|
||||
2929. [bug] Improved handling of GSS security contexts:
|
||||
- added LRU expiration for generated TSIGs
|
||||
- added the ability to use a non-default realm
|
||||
- added new "realm" keyword in nsupdate
|
||||
- added new "realm" keyword in nsupdate
|
||||
- limited lifetime of generated keys to 1 hour
|
||||
or the lifetime of the context (whichever is
|
||||
smaller)
|
||||
@ -1535,7 +1835,7 @@
|
||||
--with-export-includedir. [RT #20252]
|
||||
|
||||
2675. [bug] dnssec-signzone could crash if the key directory
|
||||
did not exist. [RT #20232]
|
||||
did not exist. [RT #20232]
|
||||
|
||||
--- 9.7.0a3 released ---
|
||||
|
||||
@ -1626,7 +1926,7 @@
|
||||
64-bit systems. [RT #20076]
|
||||
|
||||
2650. [bug] Assertion failure in dnssec-signzone when trying
|
||||
to read keyset-* files. [RT #20075]
|
||||
to read keyset-* files. [RT #20075]
|
||||
|
||||
2649. [bug] Set the domain for forward only zones. [RT #19944]
|
||||
|
||||
@ -1698,7 +1998,7 @@
|
||||
2630. [func] Improved syntax for DDNS autoconfiguration: use
|
||||
"update-policy local;" to switch on local DDNS in a
|
||||
zone. (The "ddns-autoconf" option has been removed.)
|
||||
[RT #19875]
|
||||
[RT #19875]
|
||||
|
||||
2629. [port] Check for seteuid()/setegid(), use setresuid()/
|
||||
setresgid() if not present. [RT #19932]
|
||||
@ -2383,10 +2683,10 @@
|
||||
time. [RT #18277]
|
||||
|
||||
2423. [security] Randomize server selection on queries, so as to
|
||||
make forgery a little more difficult. Instead of
|
||||
always preferring the server with the lowest RTT,
|
||||
pick a server with RTT within the same 128
|
||||
millisecond band. [RT #18441]
|
||||
make forgery a little more difficult. Instead of
|
||||
always preferring the server with the lowest RTT,
|
||||
pick a server with RTT within the same 128
|
||||
millisecond band. [RT #18441]
|
||||
|
||||
2422. [bug] Handle the special return value of a empty node as
|
||||
if it was a NXRRSET in the validator. [RT #18447]
|
||||
@ -2467,7 +2767,7 @@
|
||||
|
||||
2399. [placeholder]
|
||||
|
||||
2398. [bug] Improve file descriptor management. New,
|
||||
2398. [bug] Improve file descriptor management. New,
|
||||
temporary, named.conf option reserved-sockets,
|
||||
default 512. [RT #18344]
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright (C) 1996-2003 Internet Software Consortium.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
@ -13,7 +13,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
$Id: COPYRIGHT,v 1.17.14.1 2011-02-22 06:34:47 marka Exp $
|
||||
$Id: COPYRIGHT,v 1.17.14.2 2012/01/04 23:46:18 tbox Exp $
|
||||
|
||||
Portions of this code release fall under one or more of the
|
||||
following Copyright notices. Please see individual source
|
||||
|
@ -17,7 +17,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: FAQ.xml,v 1.54 2010-01-19 23:48:55 tbox Exp $ -->
|
||||
<!-- $Id: FAQ.xml,v 1.54 2010/01/19 23:48:55 tbox Exp $ -->
|
||||
|
||||
<article class="faq">
|
||||
<title>Frequently Asked Questions about BIND 9</title>
|
||||
|
@ -13,7 +13,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.58.250.2 2011-02-28 01:19:57 tbox Exp $
|
||||
# $Id: Makefile.in,v 1.58.250.4 2011/09/06 04:06:11 marka Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@ -64,8 +64,10 @@ tags:
|
||||
check: test
|
||||
|
||||
test:
|
||||
(cd bin/tests && ${MAKE} ${MAKEDEFS} test)
|
||||
(test -f unit/unittest.sh && $(SHELL) unit/unittest.sh)
|
||||
status=0; \
|
||||
(cd bin/tests && ${MAKE} ${MAKEDEFS} test) || status=1; \
|
||||
(test -f unit/unittest.sh && $(SHELL) unit/unittest.sh) || status=1; \
|
||||
exit $$status
|
||||
|
||||
FAQ: FAQ.xml
|
||||
${XSLTPROC} doc/xsl/isc-docbook-text.xsl FAQ.xml | \
|
||||
|
@ -48,6 +48,14 @@ BIND 9
|
||||
For a detailed list of user-visible changes from
|
||||
previous releases, see the CHANGES file.
|
||||
|
||||
For up-to-date release notes and errata, see
|
||||
http://www.isc.org/software/bind9/releasenotes
|
||||
|
||||
BIND 9.8.2
|
||||
|
||||
BIND 9.8.2 includes a number of bug fixes and prevents a security
|
||||
problem described in CVE-2011-4313
|
||||
|
||||
BIND 9.8.1
|
||||
|
||||
BIND 9.8.1 includes a number of bug fixes and enhancements from
|
||||
@ -314,6 +322,7 @@ Building
|
||||
libraries. sh-utils-1.16 provides a "printf" which compiles
|
||||
on SunOS 4.
|
||||
|
||||
|
||||
Documentation
|
||||
|
||||
The BIND 9 Administrator Reference Manual is included with the
|
||||
@ -336,6 +345,48 @@ Documentation
|
||||
in the other README files.
|
||||
|
||||
|
||||
Change Log
|
||||
|
||||
A detailed list of all changes to BIND 9 is included in the
|
||||
file CHANGES, with the most recent changes listed first.
|
||||
Change notes include tags indicating the category of the
|
||||
change that was made; these categories are:
|
||||
|
||||
[func] New feature
|
||||
|
||||
[bug] General bug fix
|
||||
|
||||
[security] Fix for a significant security flaw
|
||||
|
||||
[experimental] Used for new features when the syntax
|
||||
or other aspects of the design are still
|
||||
in flux and may change
|
||||
|
||||
[port] Portability enhancement
|
||||
|
||||
[maint] Updates to built-in data such as root
|
||||
server addresses and keys
|
||||
|
||||
[tuning] Changes to built-in configuration defaults
|
||||
and constants to improve performanceo
|
||||
|
||||
[protocol] Updates to the DNS protocol such as new
|
||||
RR types
|
||||
|
||||
[test] Changes to the automatic tests, not
|
||||
affecting server functionality
|
||||
|
||||
[cleanup] Minor corrections and refactoring
|
||||
|
||||
[doc] Documentation
|
||||
|
||||
In general, [func] and [experimental] tags will only appear
|
||||
in new-feature releases (i.e., those with version numbers
|
||||
ending in zero). Some new functionality may be backported to
|
||||
older releases on a case-by-case basis. All other change
|
||||
types may be applied to all currently-supported releases.
|
||||
|
||||
|
||||
Bug Reports and Mailing Lists
|
||||
|
||||
Bugs reports should be sent to
|
||||
|
@ -1,368 +0,0 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title></title><link rel="stylesheet" href="release-notes.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.71.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><hr></div>
|
||||
|
||||
<div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3359008"></a>Introduction</h2></div></div></div>
|
||||
|
||||
<p>
|
||||
BIND 9.8.1 is the current production release of BIND 9.8.
|
||||
</p>
|
||||
<p>
|
||||
This document summarizes changes from BIND 9.8.0 to BIND 9.8.1.
|
||||
Please see the CHANGES file in the source code release for a
|
||||
complete list of all changes.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3359050"></a>Download</h2></div></div></div>
|
||||
|
||||
<p>
|
||||
The latest versions of BIND 9 software can always be found
|
||||
on our web site at
|
||||
<a href="http://www.isc.org/downloads/all" target="_top">http://www.isc.org/downloads/all</a>.
|
||||
There you will find additional information about each
|
||||
release, source code, and some pre-compiled versions for certain operating systems.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2545549"></a>Support</h2></div></div></div>
|
||||
|
||||
<p>Product support information is available on
|
||||
<a href="http://www.isc.org/services/support" target="_top">http://www.isc.org/services/support</a>
|
||||
for paid support options. Free support is provided by our user
|
||||
community via a mailing list. Information on all public email
|
||||
lists is available at
|
||||
<a href="https://lists.isc.org/mailman/listinfo" target="_top">https://lists.isc.org/mailman/listinfo</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3358108"></a>New Features</h2></div></div></div>
|
||||
|
||||
<div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3358149"></a>9.8.1</h3></div></div></div>
|
||||
|
||||
<div class="itemizedlist"><ul type="disc"><li>
|
||||
Added a new include file with function typedefs
|
||||
for the DLZ "dlopen" driver. [RT #23629]
|
||||
</li><li>
|
||||
Added a tool able to generate malformed packets to allow testing
|
||||
of how named handles them.
|
||||
[RT #24096]
|
||||
</li><li>
|
||||
The root key is now provided in the file bind.keys allowing DNSSEC validation to be switched on at start up by adding "dnssec-validation auto;" to named.conf. If the root key provided has expired, named will log the expiration and validation will not work. More information and the most current copy of bind.keys can be found at http://www.isc.org/bind-keys. *Please note this feature was actually added in 9.8.0 but was not included in the 9.8.0 release notes. [RT #21727]
|
||||
</li></ul></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3358206"></a>Security Fixes</h2></div></div></div>
|
||||
|
||||
<div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3358226"></a>9.8.1</h3></div></div></div>
|
||||
|
||||
<div class="itemizedlist"><ul type="disc"><li>
|
||||
If named is configured with a response policy zone (RPZ) and a query
|
||||
of type RRSIG is received for a name configured for RRset replacement
|
||||
in that RPZ, it will trigger an INSIST and crash the server.
|
||||
RRSIG. [RT #24280]
|
||||
</li><li>
|
||||
named, set up to be a caching resolver, is vulnerable to a
|
||||
user querying a domain with very large resource record sets (RRSets)
|
||||
when trying to negatively cache the response. Due to an off-by-one
|
||||
error, caching the response could cause named to crash. [RT #24650]
|
||||
[CVE-2011-1910]
|
||||
</li><li>
|
||||
Using Response Policy Zone (RPZ) to query a wildcard CNAME label with
|
||||
QUERY type SIG/RRSIG, it can cause named to crash. Fix is query type
|
||||
independant.
|
||||
[RT #24715]
|
||||
</li><li>
|
||||
Using Response Policy Zone (RPZ) with DNAME records and querying the
|
||||
subdomain of that label can cause named to crash. Now logs that DNAME
|
||||
is not supported.
|
||||
[RT #24766]
|
||||
</li><li>
|
||||
Change #2912 populated the message section in replies to UPDATE requests,
|
||||
which some Windows clients wanted. This exposed a latent bug that allowed
|
||||
the response message to crash named. With this fix, change 2912 has been
|
||||
reduced to copy only the zone section to the reply. A more complete fix
|
||||
for the latent bug will be released later.
|
||||
[RT #24777]
|
||||
</li></ul></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3358283"></a>Feature Changes</h2></div></div></div>
|
||||
|
||||
<div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3358291"></a>9.8.1</h3></div></div></div>
|
||||
|
||||
<div class="itemizedlist"><ul type="disc"><li>
|
||||
Merged in the NetBSD ATF test framework (currently
|
||||
version 0.12) for development of future unit tests.
|
||||
Use configure --with-atf to build ATF internally
|
||||
or configure --with-atf=prefix to use an external
|
||||
copy. [RT #23209]
|
||||
</li><li>
|
||||
Added more verbose error reporting from DLZ LDAP. [RT #23402]
|
||||
</li><li>
|
||||
The DLZ "dlopen" driver is now built by default,
|
||||
no longer requiring a configure option. To
|
||||
disable it, use "configure --without-dlopen".
|
||||
(Note: driver not supported on win32.) [RT #23467]
|
||||
</li><li>
|
||||
Replaced compile time constant with STDTIME_ON_32BITS.
|
||||
[RT #23587]
|
||||
</li><li>
|
||||
Make --with-gssapi default for ./configure. [RT #23738]
|
||||
</li><li>
|
||||
Improved the startup time for an authoritative server with a large
|
||||
number of zones by making the zone task table of variable size
|
||||
rather than fixed size. This means that authoritative servers with
|
||||
lots of zones will be serving that zone data much sooner. [RT #24406]
|
||||
</li><li>
|
||||
Per RFC 6303, RFC 1918 reverse zones are now part of the built-in list of empty zones. [RT #24990]
|
||||
</li></ul></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3358460"></a>Bug Fixes</h2></div></div></div>
|
||||
|
||||
<div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3358468"></a>9.8.1</h3></div></div></div>
|
||||
|
||||
<div class="itemizedlist"><ul type="disc"><li>
|
||||
During RFC5011 processing some journal write errors were not detected.
|
||||
This could lead to managed-keys changes being committed but not
|
||||
recorded in the journal files, causing potential inconsistencies
|
||||
during later processing. [RT #20256]
|
||||
</li><li>
|
||||
A potential NULL pointer deference in the DNS64 code could cause
|
||||
named to terminate unexpectedly. [RT #20256]
|
||||
</li><li>
|
||||
A state variable relating to DNSSEC could fail to be set during
|
||||
some infrequently-executed code paths, allowing it to be used whilst
|
||||
in an unitialized state during cache updates, with unpredictable results.
|
||||
[RT #20256]
|
||||
</li><li>
|
||||
A potential NULL pointer deference in DNSSEC signing code could
|
||||
cause named to terminate unexpectedly [RT #20256]
|
||||
</li><li>
|
||||
Several cosmetic code changes were made to silence warnings
|
||||
generated by a static code analysis tool. [RT #20256]
|
||||
</li><li>
|
||||
When using the -x (sign with only KSK) option on dnssec-signzone,
|
||||
it could incorrectly count the number of ZSKs in the zone. (And in 9.9.0,
|
||||
some code cleanup and improved warning messages). [RT #20852]
|
||||
</li><li>
|
||||
When using _builtin in named.conf, named.conf changes were not found
|
||||
when reloading the config file. Now checks _builtin zone arguments
|
||||
to see if the zone is re-usable or not. [RT #21914]
|
||||
</li><li>
|
||||
Running dnssec-settime -f on an old-style key will
|
||||
now force the key to be rewritten to the new key format even if no
|
||||
other change has been specified, using "-P now -A now"
|
||||
as default values. [RT #22474]
|
||||
</li><li>
|
||||
After an external code review, a code cleanup was done. [RT #22521]
|
||||
</li><li>
|
||||
Cause named to terminate at startup or rndc reconfig
|
||||
reload to fail, if a log file specified in the
|
||||
conf file isn't a plain file. (RT #22771]
|
||||
</li><li>
|
||||
named now forces the ADB cache time for glue related data to zero
|
||||
instead of relying on TTL. This corrects problematic behavior in cases
|
||||
where a server was authoritative for the A record of a nameserver for a
|
||||
delegated zone and was queried to recursively resolve records within
|
||||
that zone. [RT #22842]
|
||||
</li><li>
|
||||
When a validating resolver got a NODATA response for DNSKEY, it was
|
||||
not caching the NODATA. Fixed and test added. [RT #22908]
|
||||
</li><li>
|
||||
Fixed a bug in which zone keys that were published
|
||||
and but not immediately activated, automatic signing could fail to trigger.
|
||||
[RT #22911]
|
||||
</li><li>
|
||||
Fixed precedence order bug with NS and DNAME records if both are present.
|
||||
(Also fixed timing of autosign test in 9.7+) [RT #23035]
|
||||
</li><li>
|
||||
When a DNSSEC signed dynamic zone's signatures need to be refreshed,
|
||||
named would first delete the old signatures in the zone. If a private
|
||||
key of the same algorithm isn't available to named, the signing would
|
||||
fail but the old signatures would already be deleted. named now checks
|
||||
if it can access the private key before deleting the old signatures and
|
||||
leaves the old signature if no private key is found. [RT #23136]
|
||||
</li><li>
|
||||
When using "auto-dnssec maintain" and rolling to a new key, a
|
||||
private-type record (only used internally by named) could be created
|
||||
and not marked as complete. [RT #23253]
|
||||
</li><li>
|
||||
Fixed last autosign test report. [RT #23256]
|
||||
</li><li>
|
||||
named didn't save gid at startup and later assumed gid 0.
|
||||
named now saves/restores the gid when creating creating
|
||||
named.pid at startup. [RT #23290]
|
||||
</li><li>
|
||||
If the server has an IPv6 address but does not have IPv6 connectivity
|
||||
to the internet, dig +trace could fail attempting to use IPv6
|
||||
addresses. [RT #23297]
|
||||
</li><li>
|
||||
If named is configured with managed zones, the managed key maint timer
|
||||
can exercise a race condition that can crash the server.
|
||||
[RT #23303]
|
||||
</li><li>
|
||||
Changing TTL did not cause dnssec-signzone to generate new signatures.
|
||||
[RT #23330]
|
||||
</li><li>
|
||||
Have the validating resolver use RRSIG original TTL to compute
|
||||
validated RRset and RRSIG TTL. [RT #23332]
|
||||
</li><li>
|
||||
In "make test" bin/tests/resolver, hold the socket manager lock
|
||||
while freeing the socket.
|
||||
[RT #23333]
|
||||
</li><li>
|
||||
If named encountered a CNAME instead of a DS record when walking
|
||||
the chain of trust down from the trust anchor, it incorrectly stopped
|
||||
validating. [RT #23338]
|
||||
</li><li>
|
||||
dns/view.h needed dns/rpz.h but it wasn't in the Makfile.in
|
||||
HEADERS variable. [RT #23342]
|
||||
</li><li>
|
||||
RRSIG records could have time stamps too far in the future.
|
||||
[RT #23356]
|
||||
</li><li>
|
||||
named stores cached data in an in-memory database and keeps track of
|
||||
how recently the data is used with a heap. The heap is stored within the
|
||||
cache's memory space. Under a sustained high query load and with a small
|
||||
cache size, this could lead to the heap exhausting the cache space. This
|
||||
would result in cache misses and SERVFAILs, with named never releasing
|
||||
the cache memory the heap used up and never recovering.
|
||||
|
||||
This fix removes the heap into its own memory space, preventing the heap
|
||||
from exhausting the cache space and allowing named to recover gracefully
|
||||
when the high query load abates. [RT #23371]
|
||||
</li><li>
|
||||
Fully separated key management on a per view basis. [RT #23419]
|
||||
</li><li>
|
||||
If running on a powerpc CPU and with atomic operations enabled,
|
||||
named could lock up. Added sync instructions to the end of atomic
|
||||
operations. [RT #23469]
|
||||
</li><li>
|
||||
If OpenSSL was built without engine support, named would have
|
||||
compile errors and fail to build.
|
||||
[RT #23473]
|
||||
</li><li>
|
||||
If ./configure finds GOST but not elliptic curve, named fails to
|
||||
build. Added elliptic curve support check in GOST OpenSSL engine
|
||||
detection. [RT #23485]
|
||||
</li><li>
|
||||
"rndc secroots" would abort on the first error
|
||||
and so could miss remaining views. [RT #23488]
|
||||
</li><li>
|
||||
Handle isc_event_allocate failures in t_tasks test.
|
||||
[RT #23572]
|
||||
</li><li>
|
||||
ixfr-from-differences {master|slave};
|
||||
failed to select the master/slave zones, resulting in on diff/journal
|
||||
file being created.
|
||||
[RT #23580]
|
||||
</li><li>
|
||||
If a DNAME substitution failed, named returned NOERROR. The correct
|
||||
response should be YXDOMAIN.
|
||||
[RT #23591]
|
||||
</li><li>
|
||||
dns_dnssec_findzonekeys{2} used a inconsistant
|
||||
timestamp when determining which keys are active. This could result in
|
||||
some RRsets not being signed/re-signed.
|
||||
[RT #23642]
|
||||
</li><li>
|
||||
Remove bin/tests/system/logfileconfig/ns1/named.conf and
|
||||
add setup.sh in order to resolve changing named.conf issue. [RT #23687]
|
||||
</li><li>
|
||||
NOTIFY messages were not being sent when generating
|
||||
a NSEC3 chain incrementally. [RT #23702]
|
||||
</li><li>
|
||||
DDNS updates using SIG(0) with update-policy match
|
||||
type "external" could cause a crash. Also fixed nsupdate core
|
||||
dump on shutdown when using a SIG(0) key, due to the key
|
||||
not being freed. [RT #23735]
|
||||
</li><li>
|
||||
Zones using automatic key maintenance could fail to check the key
|
||||
repository for updates. named now checks once per hour and the
|
||||
automatic check bug has been fixed. [RT #23744]
|
||||
</li><li>
|
||||
named now uses the correct strtok/strtok_r/strtok_s based on OS.
|
||||
[RT #23747]
|
||||
</li><li>
|
||||
Signatures for records at the zone apex could go
|
||||
stale due to an incorrect timer setting. [RT #23769]
|
||||
</li><li>
|
||||
The autosign tests attempted to open ports within reserved ranges. Test
|
||||
now avoids those ports.
|
||||
[RT #23957]
|
||||
</li><li>
|
||||
GSS TGIS test was failing, since log_cred() caused KRB5_KTNAME to
|
||||
be cached. Now sets KRB5_KTNAME before calling log_cred() in
|
||||
dst_gssapi_acceptctx(). [RT #24004]
|
||||
</li><li>
|
||||
named, acting as authoritative server for DLZ zones, was not correctly
|
||||
setting the authoritative (AA) bit.
|
||||
[RT #24146]
|
||||
</li><li>
|
||||
Clean up some cross-compiling issues and added two undocumented
|
||||
configure options, --with-gost and --with-rlimtype, to allow over-riding
|
||||
default settings (gost=no and rlimtype="long int") when cross-compiling.
|
||||
[RT #24367]
|
||||
</li><li>
|
||||
When trying sign with NSEC3, if dnssec-signzone couldn't find the
|
||||
KSK, it would give an incorrect error "NSEC3 iterations too big for
|
||||
weakest DNSKEY strength" rather than the correct "failed to find
|
||||
keys at the zone apex: not found" [RT #24369]
|
||||
</li><li>
|
||||
Configuring 'dnssec-validation auto' in a view instead of in the
|
||||
options statement could trigger an assertion failure in named-checkconf.
|
||||
[RT #24382]
|
||||
</li><li>
|
||||
Improved consistency checks for dnssec-enable and
|
||||
dnssec-validation, added test cases to the
|
||||
checkconf system test. [RT #24398]
|
||||
</li><li>
|
||||
If named is configured to be both authoritative and recursive and receives
|
||||
a recursive query for a CNAME in a zone that it is authoritative for, if that
|
||||
CNAME also points to a zone the server is authoritative for, the recursive part of name will not follow the CNAME change and the response will not be a
|
||||
complete CNAME chain. [RT #24455]
|
||||
</li><li>
|
||||
nsupdate could dump core on shutdown when using SIG(0) keys. [RT #24604]
|
||||
</li><li>
|
||||
Named could fail to validate zones list in a DLV that validated insecure
|
||||
without using DLV and had DS records in the parent zone. [RT #24631]
|
||||
</li><li>
|
||||
dnssec-signzone now records timestamps just before and just after signing, improving the accuracy of signing statistics. [RT #16030]
|
||||
</li><li>
|
||||
If allow-new-zones was set to yes and name-based ACLs were used, named could crash when "rndc reconfig" was issued. [RT #22739]
|
||||
</li><li>
|
||||
RT #23136 fixed a problem where named would delete old signatures even
|
||||
when the private key wasn't available to re-sign the zone, resulting in
|
||||
a zone with missing signatures. This fix (CHANGES 3114) did not
|
||||
completely fix all issues. [RT #24577]
|
||||
</li><li>
|
||||
A bug in FreeBSD kernels causes IPv6 UDP responses greater than
|
||||
1280 bytes to not fragment as they should. Until there is a kernel
|
||||
fix, named will work around this by setting IPV6_USE_MIN_MTU on a
|
||||
per packet basis. [RT #24950]
|
||||
</li></ul></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3359134"></a>Known issues in this release</h2></div></div></div>
|
||||
|
||||
<div class="itemizedlist"><ul type="disc"><li>
|
||||
<p>
|
||||
None.
|
||||
</p>
|
||||
</li></ul></div>
|
||||
</div>
|
||||
|
||||
<div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3359152"></a>Thank You</h2></div></div></div>
|
||||
|
||||
<p>
|
||||
Thank you to everyone who assisted us in making this release possible.
|
||||
If you would like to contribute to ISC to assist us in continuing to make
|
||||
quality open source software, please visit our donations page at
|
||||
<a href="http://www.isc.org/supportisc" target="_top">http://www.isc.org/supportisc</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div></body></html>
|
Binary file not shown.
@ -1,268 +0,0 @@
|
||||
__________________________________________________________________
|
||||
|
||||
Introduction
|
||||
|
||||
BIND 9.8.1 is the current production release of BIND 9.8.
|
||||
|
||||
This document summarizes changes from BIND 9.8.0 to BIND 9.8.1. Please
|
||||
see the CHANGES file in the source code release for a complete list of
|
||||
all changes.
|
||||
|
||||
Download
|
||||
|
||||
The latest versions of BIND 9 software can always be found on our web
|
||||
site at http://www.isc.org/downloads/all. There you will find
|
||||
additional information about each release, source code, and some
|
||||
pre-compiled versions for certain operating systems.
|
||||
|
||||
Support
|
||||
|
||||
Product support information is available on
|
||||
http://www.isc.org/services/support for paid support options. Free
|
||||
support is provided by our user community via a mailing list.
|
||||
Information on all public email lists is available at
|
||||
https://lists.isc.org/mailman/listinfo.
|
||||
|
||||
New Features
|
||||
|
||||
9.8.1
|
||||
|
||||
* Added a new include file with function typedefs for the DLZ
|
||||
"dlopen" driver. [RT #23629]
|
||||
* Added a tool able to generate malformed packets to allow testing of
|
||||
how named handles them. [RT #24096]
|
||||
* The root key is now provided in the file bind.keys allowing DNSSEC
|
||||
validation to be switched on at start up by adding
|
||||
"dnssec-validation auto;" to named.conf. If the root key provided
|
||||
has expired, named will log the expiration and validation will not
|
||||
work. More information and the most current copy of bind.keys can
|
||||
be found at http://www.isc.org/bind-keys. *Please note this feature
|
||||
was actually added in 9.8.0 but was not included in the 9.8.0
|
||||
release notes. [RT #21727]
|
||||
|
||||
Security Fixes
|
||||
|
||||
9.8.1
|
||||
|
||||
* If named is configured with a response policy zone (RPZ) and a
|
||||
query of type RRSIG is received for a name configured for RRset
|
||||
replacement in that RPZ, it will trigger an INSIST and crash the
|
||||
server. RRSIG. [RT #24280]
|
||||
* named, set up to be a caching resolver, is vulnerable to a user
|
||||
querying a domain with very large resource record sets (RRSets)
|
||||
when trying to negatively cache the response. Due to an off-by-one
|
||||
error, caching the response could cause named to crash. [RT #24650]
|
||||
[CVE-2011-1910]
|
||||
* Using Response Policy Zone (RPZ) to query a wildcard CNAME label
|
||||
with QUERY type SIG/RRSIG, it can cause named to crash. Fix is
|
||||
query type independant. [RT #24715]
|
||||
* Using Response Policy Zone (RPZ) with DNAME records and querying
|
||||
the subdomain of that label can cause named to crash. Now logs that
|
||||
DNAME is not supported. [RT #24766]
|
||||
* Change #2912 populated the message section in replies to UPDATE
|
||||
requests, which some Windows clients wanted. This exposed a latent
|
||||
bug that allowed the response message to crash named. With this
|
||||
fix, change 2912 has been reduced to copy only the zone section to
|
||||
the reply. A more complete fix for the latent bug will be released
|
||||
later. [RT #24777]
|
||||
|
||||
Feature Changes
|
||||
|
||||
9.8.1
|
||||
|
||||
* Merged in the NetBSD ATF test framework (currently version 0.12)
|
||||
for development of future unit tests. Use configure --with-atf to
|
||||
build ATF internally or configure --with-atf=prefix to use an
|
||||
external copy. [RT #23209]
|
||||
* Added more verbose error reporting from DLZ LDAP. [RT #23402]
|
||||
* The DLZ "dlopen" driver is now built by default, no longer
|
||||
requiring a configure option. To disable it, use "configure
|
||||
--without-dlopen". (Note: driver not supported on win32.) [RT
|
||||
#23467]
|
||||
* Replaced compile time constant with STDTIME_ON_32BITS. [RT #23587]
|
||||
* Make --with-gssapi default for ./configure. [RT #23738]
|
||||
* Improved the startup time for an authoritative server with a large
|
||||
number of zones by making the zone task table of variable size
|
||||
rather than fixed size. This means that authoritative servers with
|
||||
lots of zones will be serving that zone data much sooner. [RT
|
||||
#24406]
|
||||
* Per RFC 6303, RFC 1918 reverse zones are now part of the built-in
|
||||
list of empty zones. [RT #24990]
|
||||
|
||||
Bug Fixes
|
||||
|
||||
9.8.1
|
||||
|
||||
* During RFC5011 processing some journal write errors were not
|
||||
detected. This could lead to managed-keys changes being committed
|
||||
but not recorded in the journal files, causing potential
|
||||
inconsistencies during later processing. [RT #20256]
|
||||
* A potential NULL pointer deference in the DNS64 code could cause
|
||||
named to terminate unexpectedly. [RT #20256]
|
||||
* A state variable relating to DNSSEC could fail to be set during
|
||||
some infrequently-executed code paths, allowing it to be used
|
||||
whilst in an unitialized state during cache updates, with
|
||||
unpredictable results. [RT #20256]
|
||||
* A potential NULL pointer deference in DNSSEC signing code could
|
||||
cause named to terminate unexpectedly [RT #20256]
|
||||
* Several cosmetic code changes were made to silence warnings
|
||||
generated by a static code analysis tool. [RT #20256]
|
||||
* When using the -x (sign with only KSK) option on dnssec-signzone,
|
||||
it could incorrectly count the number of ZSKs in the zone. (And in
|
||||
9.9.0, some code cleanup and improved warning messages). [RT
|
||||
#20852]
|
||||
* When using _builtin in named.conf, named.conf changes were not
|
||||
found when reloading the config file. Now checks _builtin zone
|
||||
arguments to see if the zone is re-usable or not. [RT #21914]
|
||||
* Running dnssec-settime -f on an old-style key will now force the
|
||||
key to be rewritten to the new key format even if no other change
|
||||
has been specified, using "-P now -A now" as default values. [RT
|
||||
#22474]
|
||||
* After an external code review, a code cleanup was done. [RT #22521]
|
||||
* Cause named to terminate at startup or rndc reconfig reload to
|
||||
fail, if a log file specified in the conf file isn't a plain file.
|
||||
(RT #22771]
|
||||
* named now forces the ADB cache time for glue related data to zero
|
||||
instead of relying on TTL. This corrects problematic behavior in
|
||||
cases where a server was authoritative for the A record of a
|
||||
nameserver for a delegated zone and was queried to recursively
|
||||
resolve records within that zone. [RT #22842]
|
||||
* When a validating resolver got a NODATA response for DNSKEY, it was
|
||||
not caching the NODATA. Fixed and test added. [RT #22908]
|
||||
* Fixed a bug in which zone keys that were published and but not
|
||||
immediately activated, automatic signing could fail to trigger. [RT
|
||||
#22911]
|
||||
* Fixed precedence order bug with NS and DNAME records if both are
|
||||
present. (Also fixed timing of autosign test in 9.7+) [RT #23035]
|
||||
* When a DNSSEC signed dynamic zone's signatures need to be
|
||||
refreshed, named would first delete the old signatures in the zone.
|
||||
If a private key of the same algorithm isn't available to named,
|
||||
the signing would fail but the old signatures would already be
|
||||
deleted. named now checks if it can access the private key before
|
||||
deleting the old signatures and leaves the old signature if no
|
||||
private key is found. [RT #23136]
|
||||
* When using "auto-dnssec maintain" and rolling to a new key, a
|
||||
private-type record (only used internally by named) could be
|
||||
created and not marked as complete. [RT #23253]
|
||||
* Fixed last autosign test report. [RT #23256]
|
||||
* named didn't save gid at startup and later assumed gid 0. named now
|
||||
saves/restores the gid when creating creating named.pid at startup.
|
||||
[RT #23290]
|
||||
* If the server has an IPv6 address but does not have IPv6
|
||||
connectivity to the internet, dig +trace could fail attempting to
|
||||
use IPv6 addresses. [RT #23297]
|
||||
* If named is configured with managed zones, the managed key maint
|
||||
timer can exercise a race condition that can crash the server. [RT
|
||||
#23303]
|
||||
* Changing TTL did not cause dnssec-signzone to generate new
|
||||
signatures. [RT #23330]
|
||||
* Have the validating resolver use RRSIG original TTL to compute
|
||||
validated RRset and RRSIG TTL. [RT #23332]
|
||||
* In "make test" bin/tests/resolver, hold the socket manager lock
|
||||
while freeing the socket. [RT #23333]
|
||||
* If named encountered a CNAME instead of a DS record when walking
|
||||
the chain of trust down from the trust anchor, it incorrectly
|
||||
stopped validating. [RT #23338]
|
||||
* dns/view.h needed dns/rpz.h but it wasn't in the Makfile.in HEADERS
|
||||
variable. [RT #23342]
|
||||
* RRSIG records could have time stamps too far in the future. [RT
|
||||
#23356]
|
||||
* named stores cached data in an in-memory database and keeps track
|
||||
of how recently the data is used with a heap. The heap is stored
|
||||
within the cache's memory space. Under a sustained high query load
|
||||
and with a small cache size, this could lead to the heap exhausting
|
||||
the cache space. This would result in cache misses and SERVFAILs,
|
||||
with named never releasing the cache memory the heap used up and
|
||||
never recovering. This fix removes the heap into its own memory
|
||||
space, preventing the heap from exhausting the cache space and
|
||||
allowing named to recover gracefully when the high query load
|
||||
abates. [RT #23371]
|
||||
* Fully separated key management on a per view basis. [RT #23419]
|
||||
* If running on a powerpc CPU and with atomic operations enabled,
|
||||
named could lock up. Added sync instructions to the end of atomic
|
||||
operations. [RT #23469]
|
||||
* If OpenSSL was built without engine support, named would have
|
||||
compile errors and fail to build. [RT #23473]
|
||||
* If ./configure finds GOST but not elliptic curve, named fails to
|
||||
build. Added elliptic curve support check in GOST OpenSSL engine
|
||||
detection. [RT #23485]
|
||||
* "rndc secroots" would abort on the first error and so could miss
|
||||
remaining views. [RT #23488]
|
||||
* Handle isc_event_allocate failures in t_tasks test. [RT #23572]
|
||||
* ixfr-from-differences {master|slave}; failed to select the
|
||||
master/slave zones, resulting in on diff/journal file being
|
||||
created. [RT #23580]
|
||||
* If a DNAME substitution failed, named returned NOERROR. The correct
|
||||
response should be YXDOMAIN. [RT #23591]
|
||||
* dns_dnssec_findzonekeys{2} used a inconsistant timestamp when
|
||||
determining which keys are active. This could result in some RRsets
|
||||
not being signed/re-signed. [RT #23642]
|
||||
* Remove bin/tests/system/logfileconfig/ns1/named.conf and add
|
||||
setup.sh in order to resolve changing named.conf issue. [RT #23687]
|
||||
* NOTIFY messages were not being sent when generating a NSEC3 chain
|
||||
incrementally. [RT #23702]
|
||||
* DDNS updates using SIG(0) with update-policy match type "external"
|
||||
could cause a crash. Also fixed nsupdate core dump on shutdown when
|
||||
using a SIG(0) key, due to the key not being freed. [RT #23735]
|
||||
* Zones using automatic key maintenance could fail to check the key
|
||||
repository for updates. named now checks once per hour and the
|
||||
automatic check bug has been fixed. [RT #23744]
|
||||
* named now uses the correct strtok/strtok_r/strtok_s based on OS.
|
||||
[RT #23747]
|
||||
* Signatures for records at the zone apex could go stale due to an
|
||||
incorrect timer setting. [RT #23769]
|
||||
* The autosign tests attempted to open ports within reserved ranges.
|
||||
Test now avoids those ports. [RT #23957]
|
||||
* GSS TGIS test was failing, since log_cred() caused KRB5_KTNAME to
|
||||
be cached. Now sets KRB5_KTNAME before calling log_cred() in
|
||||
dst_gssapi_acceptctx(). [RT #24004]
|
||||
* named, acting as authoritative server for DLZ zones, was not
|
||||
correctly setting the authoritative (AA) bit. [RT #24146]
|
||||
* Clean up some cross-compiling issues and added two undocumented
|
||||
configure options, --with-gost and --with-rlimtype, to allow
|
||||
over-riding default settings (gost=no and rlimtype="long int") when
|
||||
cross-compiling. [RT #24367]
|
||||
* When trying sign with NSEC3, if dnssec-signzone couldn't find the
|
||||
KSK, it would give an incorrect error "NSEC3 iterations too big for
|
||||
weakest DNSKEY strength" rather than the correct "failed to find
|
||||
keys at the zone apex: not found" [RT #24369]
|
||||
* Configuring 'dnssec-validation auto' in a view instead of in the
|
||||
options statement could trigger an assertion failure in
|
||||
named-checkconf. [RT #24382]
|
||||
* Improved consistency checks for dnssec-enable and
|
||||
dnssec-validation, added test cases to the checkconf system test.
|
||||
[RT #24398]
|
||||
* If named is configured to be both authoritative and recursive and
|
||||
receives a recursive query for a CNAME in a zone that it is
|
||||
authoritative for, if that CNAME also points to a zone the server
|
||||
is authoritative for, the recursive part of name will not follow
|
||||
the CNAME change and the response will not be a complete CNAME
|
||||
chain. [RT #24455]
|
||||
* nsupdate could dump core on shutdown when using SIG(0) keys. [RT
|
||||
#24604]
|
||||
* Named could fail to validate zones list in a DLV that validated
|
||||
insecure without using DLV and had DS records in the parent zone.
|
||||
[RT #24631]
|
||||
* dnssec-signzone now records timestamps just before and just after
|
||||
signing, improving the accuracy of signing statistics. [RT #16030]
|
||||
* If allow-new-zones was set to yes and name-based ACLs were used,
|
||||
named could crash when "rndc reconfig" was issued. [RT #22739]
|
||||
* RT #23136 fixed a problem where named would delete old signatures
|
||||
even when the private key wasn't available to re-sign the zone,
|
||||
resulting in a zone with missing signatures. This fix (CHANGES
|
||||
3114) did not completely fix all issues. [RT #24577]
|
||||
* A bug in FreeBSD kernels causes IPv6 UDP responses greater than
|
||||
1280 bytes to not fragment as they should. Until there is a kernel
|
||||
fix, named will work around this by setting IPV6_USE_MIN_MTU on a
|
||||
per packet basis. [RT #24950]
|
||||
|
||||
Known issues in this release
|
||||
|
||||
* None.
|
||||
|
||||
Thank You
|
||||
|
||||
Thank you to everyone who assisted us in making this release possible.
|
||||
If you would like to contribute to ISC to assist us in continuing to
|
||||
make quality open source software, please visit our donations page at
|
||||
http://www.isc.org/supportisc.
|
@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: acconfig.h,v 1.53 2008-12-01 23:47:44 tbox Exp $ */
|
||||
/* $Id: acconfig.h,v 1.53 2008/12/01 23:47:44 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.29 2009-10-05 12:07:08 fdupont Exp $
|
||||
# $Id: Makefile.in,v 1.29 2009/10/05 12:07:08 fdupont Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
@ -13,7 +13,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.36 2009-12-05 23:31:40 each Exp $
|
||||
# $Id: Makefile.in,v 1.36 2009/12/05 23:31:40 each Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: check-tool.c,v 1.41 2010-09-07 23:46:59 tbox Exp $ */
|
||||
/* $Id: check-tool.c,v 1.41 2010/09/07 23:46:59 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: check-tool.h,v 1.16 2010-09-07 23:46:59 tbox Exp $ */
|
||||
/* $Id: check-tool.h,v 1.16 2010/09/07 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef CHECK_TOOL_H
|
||||
#define CHECK_TOOL_H
|
||||
|
@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: named-checkconf.8,v 1.33 2009-12-29 01:14:03 tbox Exp $
|
||||
.\" $Id$
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named-checkconf.c,v 1.54.62.2 2011-03-12 04:59:13 tbox Exp $ */
|
||||
/* $Id: named-checkconf.c,v 1.54.62.2 2011/03/12 04:59:13 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named-checkconf.docbook,v 1.22 2009-12-28 23:21:16 each Exp $ -->
|
||||
<!-- $Id: named-checkconf.docbook,v 1.22 2009/12/28 23:21:16 each Exp $ -->
|
||||
<refentry id="man.named-checkconf">
|
||||
<refentryinfo>
|
||||
<date>June 14, 2000</date>
|
||||
|
@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: named-checkconf.html,v 1.33 2009-12-29 01:14:03 tbox Exp $ -->
|
||||
<!-- $Id$ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@ -32,7 +32,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">named-checkconf</code> [<code class="option">-h</code>] [<code class="option">-v</code>] [<code class="option">-j</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] {filename} [<code class="option">-p</code>] [<code class="option">-z</code>]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543395"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543396"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">named-checkconf</strong></span>
|
||||
checks the syntax, but not the semantics, of a
|
||||
<span><strong class="command">named</strong></span> configuration file. The file is parsed
|
||||
@ -52,7 +52,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543444"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543445"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-h</span></dt>
|
||||
<dd><p>
|
||||
@ -91,21 +91,21 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543568"></a><h2>RETURN VALUES</h2>
|
||||
<a name="id2543569"></a><h2>RETURN VALUES</h2>
|
||||
<p><span><strong class="command">named-checkconf</strong></span>
|
||||
returns an exit status of 1 if
|
||||
errors were detected and 0 otherwise.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543579"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2543580"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named-checkzone</span>(8)</span>,
|
||||
<em class="citetitle">BIND 9 Administrator Reference Manual</em>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543609"></a><h2>AUTHOR</h2>
|
||||
<a name="id2543610"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: named-checkzone.8,v 1.47 2010-01-17 01:14:02 tbox Exp $
|
||||
.\" $Id$
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2010 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named-checkzone.c,v 1.61 2010-09-07 23:46:59 tbox Exp $ */
|
||||
/* $Id: named-checkzone.c,v 1.61.62.2 2011/12/22 23:45:54 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@ -112,6 +112,7 @@ main(int argc, char **argv) {
|
||||
const char *outputformatstr = NULL;
|
||||
dns_masterformat_t inputformat = dns_masterformat_text;
|
||||
dns_masterformat_t outputformat = dns_masterformat_text;
|
||||
isc_boolean_t logdump = ISC_FALSE;
|
||||
FILE *errout = stdout;
|
||||
|
||||
outputstyle = &dns_master_style_full;
|
||||
@ -418,6 +419,7 @@ main(int argc, char **argv) {
|
||||
|
||||
if (progmode == progmode_compile) {
|
||||
dumpzone = 1; /* always dump */
|
||||
logdump = !quiet;
|
||||
if (output_filename == NULL) {
|
||||
fprintf(stderr,
|
||||
"output file required, but not specified\n");
|
||||
@ -436,8 +438,10 @@ main(int argc, char **argv) {
|
||||
(output_filename == NULL ||
|
||||
strcmp(output_filename, "-") == 0 ||
|
||||
strcmp(output_filename, "/dev/fd/1") == 0 ||
|
||||
strcmp(output_filename, "/dev/stdout") == 0))
|
||||
strcmp(output_filename, "/dev/stdout") == 0)) {
|
||||
errout = stderr;
|
||||
logdump = ISC_FALSE;
|
||||
}
|
||||
|
||||
if (isc_commandline_index + 2 != argc)
|
||||
usage();
|
||||
@ -462,13 +466,13 @@ main(int argc, char **argv) {
|
||||
&zone);
|
||||
|
||||
if (result == ISC_R_SUCCESS && dumpzone) {
|
||||
if (!quiet && progmode == progmode_compile) {
|
||||
if (logdump) {
|
||||
fprintf(errout, "dump zone to %s...", output_filename);
|
||||
fflush(errout);
|
||||
}
|
||||
result = dump_zone(origin, zone, output_filename,
|
||||
outputformat, outputstyle);
|
||||
if (!quiet && progmode == progmode_compile)
|
||||
if (logdump)
|
||||
fprintf(errout, "done\n");
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: named-checkzone.docbook,v 1.40 2010-01-16 23:48:15 tbox Exp $ -->
|
||||
<!-- $Id: named-checkzone.docbook,v 1.40 2010/01/16 23:48:15 tbox Exp $ -->
|
||||
<refentry id="man.named-checkzone">
|
||||
<refentryinfo>
|
||||
<date>June 13, 2000</date>
|
||||
|
@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: named-checkzone.html,v 1.47 2010-01-17 01:14:02 tbox Exp $ -->
|
||||
<!-- $Id$ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@ -33,7 +33,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">named-compilezone</code> [<code class="option">-d</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-C <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-r <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {<code class="option">-o <em class="replaceable"><code>filename</code></em></code>} {zonename} {filename}</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543694"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543696"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">named-checkzone</strong></span>
|
||||
checks the syntax and integrity of a zone file. It performs the
|
||||
same checks as <span><strong class="command">named</strong></span> does when loading a
|
||||
@ -53,7 +53,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543730"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543731"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-d</span></dt>
|
||||
<dd><p>
|
||||
@ -247,14 +247,14 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544377"></a><h2>RETURN VALUES</h2>
|
||||
<a name="id2544446"></a><h2>RETURN VALUES</h2>
|
||||
<p><span><strong class="command">named-checkzone</strong></span>
|
||||
returns an exit status of 1 if
|
||||
errors were detected and 0 otherwise.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544389"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2544458"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named-checkconf</span>(8)</span>,
|
||||
<em class="citetitle">RFC 1035</em>,
|
||||
@ -262,7 +262,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544422"></a><h2>AUTHOR</h2>
|
||||
<a name="id2544491"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
@ -12,7 +12,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.8 2009-12-05 23:31:40 each Exp $
|
||||
# $Id: Makefile.in,v 1.8 2009/12/05 23:31:40 each Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
@ -12,7 +12,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: ddns-confgen.8,v 1.10 2009-09-19 01:14:52 tbox Exp $
|
||||
.\" $Id$
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: ddns-confgen.c,v 1.9.308.2 2011-03-12 04:59:13 tbox Exp $ */
|
||||
/* $Id: ddns-confgen.c,v 1.9.308.2 2011/03/12 04:59:13 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: ddns-confgen.docbook,v 1.6 2009-09-18 22:08:55 fdupont Exp $ -->
|
||||
<!-- $Id: ddns-confgen.docbook,v 1.6 2009/09/18 22:08:55 fdupont Exp $ -->
|
||||
<refentry id="man.ddns-confgen">
|
||||
<refentryinfo>
|
||||
<date>Jan 29, 2009</date>
|
||||
|
@ -13,7 +13,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: ddns-confgen.html,v 1.10 2009-09-19 01:14:52 tbox Exp $ -->
|
||||
<!-- $Id$ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@ -31,7 +31,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">ddns-confgen</code> [<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>keyname</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomfile</code></em></code>] [ -s <em class="replaceable"><code>name</code></em> | -z <em class="replaceable"><code>zone</code></em> ] [<code class="option">-q</code>] [name]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543395"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543396"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">ddns-confgen</strong></span>
|
||||
generates a key for use by <span><strong class="command">nsupdate</strong></span>
|
||||
and <span><strong class="command">named</strong></span>. It simplifies configuration
|
||||
@ -58,7 +58,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543454"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543456"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
|
||||
<dd><p>
|
||||
@ -125,7 +125,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543642"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2543643"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">nsupdate</span>(1)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named.conf</span>(5)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
@ -133,7 +133,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543681"></a><h2>AUTHOR</h2>
|
||||
<a name="id2543682"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: os.h,v 1.3 2009-06-11 23:47:55 tbox Exp $ */
|
||||
/* $Id: os.h,v 1.3 2009/06/11 23:47:55 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: keygen.c,v 1.4 2009-11-12 14:02:38 marka Exp $ */
|
||||
/* $Id: keygen.c,v 1.4 2009/11/12 14:02:38 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: keygen.h,v 1.3 2009-06-11 23:47:55 tbox Exp $ */
|
||||
/* $Id: keygen.h,v 1.3 2009/06/11 23:47:55 tbox Exp $ */
|
||||
|
||||
#ifndef RNDC_KEYGEN_H
|
||||
#define RNDC_KEYGEN_H 1
|
||||
|
@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: rndc-confgen.8,v 1.7 2009-07-11 01:12:45 tbox Exp $
|
||||
.\" $Id$
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: rndc-confgen.c,v 1.5.308.2 2011-03-12 04:59:13 tbox Exp $ */
|
||||
/* $Id: rndc-confgen.c,v 1.5.308.2 2011/03/12 04:59:13 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: rndc-confgen.docbook,v 1.4 2009-06-15 23:47:59 tbox Exp $ -->
|
||||
<!-- $Id: rndc-confgen.docbook,v 1.4 2009/06/15 23:47:59 tbox Exp $ -->
|
||||
<refentry id="man.rndc-confgen">
|
||||
<refentryinfo>
|
||||
<date>Aug 27, 2001</date>
|
||||
|
@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: rndc-confgen.html,v 1.7 2009-07-11 01:12:45 tbox Exp $ -->
|
||||
<!-- $Id$ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@ -32,7 +32,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">rndc-confgen</code> [<code class="option">-a</code>] [<code class="option">-b <em class="replaceable"><code>keysize</code></em></code>] [<code class="option">-c <em class="replaceable"><code>keyfile</code></em></code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>keyname</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomfile</code></em></code>] [<code class="option">-s <em class="replaceable"><code>address</code></em></code>] [<code class="option">-t <em class="replaceable"><code>chrootdir</code></em></code>] [<code class="option">-u <em class="replaceable"><code>user</code></em></code>]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543432"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543433"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">rndc-confgen</strong></span>
|
||||
generates configuration files
|
||||
for <span><strong class="command">rndc</strong></span>. It can be used as a
|
||||
@ -48,7 +48,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543477"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543478"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-a</span></dt>
|
||||
<dd>
|
||||
@ -155,7 +155,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543790"></a><h2>EXAMPLES</h2>
|
||||
<a name="id2543792"></a><h2>EXAMPLES</h2>
|
||||
<p>
|
||||
To allow <span><strong class="command">rndc</strong></span> to be used with
|
||||
no manual configuration, run
|
||||
@ -172,7 +172,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543832"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2543833"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">rndc</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">rndc.conf</span>(5)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
@ -180,7 +180,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543870"></a><h2>AUTHOR</h2>
|
||||
<a name="id2543872"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
@ -12,7 +12,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.3 2009-06-11 23:47:55 tbox Exp $
|
||||
# $Id: Makefile.in,v 1.3 2009/06/11 23:47:55 tbox Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: os.c,v 1.3 2009-06-11 23:47:55 tbox Exp $ */
|
||||
/* $Id: os.c,v 1.3 2009/06/11 23:47:55 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: util.c,v 1.3 2009-06-11 23:47:55 tbox Exp $ */
|
||||
/* $Id: util.c,v 1.3 2009/06/11 23:47:55 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: util.h,v 1.4 2009-09-29 15:06:05 fdupont Exp $ */
|
||||
/* $Id: util.h,v 1.4 2009/09/29 15:06:05 fdupont Exp $ */
|
||||
|
||||
#ifndef RNDC_UTIL_H
|
||||
#define RNDC_UTIL_H 1
|
||||
|
@ -13,7 +13,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.47 2009-12-05 23:31:40 each Exp $
|
||||
# $Id: Makefile.in,v 1.47 2009/12/05 23:31:40 each Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: dig.1,v 1.54 2010-03-05 01:14:15 tbox Exp $
|
||||
.\" $Id$
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
|
@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dig.c,v 1.237.124.3 2011-03-11 06:46:58 marka Exp $ */
|
||||
/* $Id: dig.c,v 1.237.124.4 2011/12/07 17:23:55 each Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@ -1527,7 +1527,7 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
|
||||
if (strncmp(rv[0], "%", 1) == 0)
|
||||
break;
|
||||
if (strncmp(rv[0], "@", 1) == 0) {
|
||||
addresscount = getaddresses(lookup, &rv[0][1]);
|
||||
addresscount = getaddresses(lookup, &rv[0][1], NULL);
|
||||
} else if (rv[0][0] == '+') {
|
||||
plus_option(&rv[0][1], is_batchfile,
|
||||
lookup);
|
||||
|
@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dig.docbook,v 1.47 2010-03-04 23:50:34 tbox Exp $ -->
|
||||
<!-- $Id: dig.docbook,v 1.47 2010/03/04 23:50:34 tbox Exp $ -->
|
||||
<refentry id="man.dig">
|
||||
|
||||
<refentryinfo>
|
||||
|
@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: dig.html,v 1.49 2010-03-05 01:14:15 tbox Exp $ -->
|
||||
<!-- $Id$ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@ -34,7 +34,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">dig</code> [global-queryopt...] [query...]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543522"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543524"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">dig</strong></span>
|
||||
(domain information groper) is a flexible tool
|
||||
for interrogating DNS name servers. It performs DNS lookups and
|
||||
@ -80,7 +80,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543595"></a><h2>SIMPLE USAGE</h2>
|
||||
<a name="id2543597"></a><h2>SIMPLE USAGE</h2>
|
||||
<p>
|
||||
A typical invocation of <span><strong class="command">dig</strong></span> looks like:
|
||||
</p>
|
||||
@ -126,7 +126,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543686"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543688"></a><h2>OPTIONS</h2>
|
||||
<p>
|
||||
The <code class="option">-b</code> option sets the source IP address of the query
|
||||
to <em class="parameter"><code>address</code></em>. This must be a valid
|
||||
@ -230,7 +230,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2544035"></a><h2>QUERY OPTIONS</h2>
|
||||
<a name="id2544037"></a><h2>QUERY OPTIONS</h2>
|
||||
<p><span><strong class="command">dig</strong></span>
|
||||
provides a number of query options which affect
|
||||
the way in which lookups are made and the results displayed. Some of
|
||||
@ -561,7 +561,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545184"></a><h2>MULTIPLE QUERIES</h2>
|
||||
<a name="id2545186"></a><h2>MULTIPLE QUERIES</h2>
|
||||
<p>
|
||||
The BIND 9 implementation of <span><strong class="command">dig </strong></span>
|
||||
supports
|
||||
@ -607,7 +607,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545245"></a><h2>IDN SUPPORT</h2>
|
||||
<a name="id2545248"></a><h2>IDN SUPPORT</h2>
|
||||
<p>
|
||||
If <span><strong class="command">dig</strong></span> has been built with IDN (internationalized
|
||||
domain name) support, it can accept and display non-ASCII domain names.
|
||||
@ -621,14 +621,14 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545336"></a><h2>FILES</h2>
|
||||
<a name="id2545338"></a><h2>FILES</h2>
|
||||
<p><code class="filename">/etc/resolv.conf</code>
|
||||
</p>
|
||||
<p><code class="filename">${HOME}/.digrc</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545353"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2545355"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
|
||||
@ -636,7 +636,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545390"></a><h2>BUGS</h2>
|
||||
<a name="id2545393"></a><h2>BUGS</h2>
|
||||
<p>
|
||||
There are probably too many query options.
|
||||
</p>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user