svn commit: r188430 - in projects/tcp_cc_7.x: . bin bin/chio bin/cp
bin/dd bin/ln bin/sh contrib contrib/bind9 contrib/gcc
contrib/gdb contrib/gdtoa contrib/ntp contrib/opie
contrib/sendmail contri...
Lawrence Stewart
lstewart at FreeBSD.org
Mon Feb 9 20:56:09 PST 2009
Author: lstewart
Date: Tue Feb 10 04:56:08 2009
New Revision: 188430
URL: http://svn.freebsd.org/changeset/base/188430
Log:
Merge r188055:188429 from stable/7
Added:
projects/tcp_cc_7.x/lib/libarchive/test/test_write_disk_sparse.c
- copied unchanged from r188429, stable/7/lib/libarchive/test/test_write_disk_sparse.c
projects/tcp_cc_7.x/share/man/man5/portindex.5
- copied unchanged from r188429, stable/7/share/man/man5/portindex.5
projects/tcp_cc_7.x/share/man/man7/adding_user.7
- copied unchanged from r188429, stable/7/share/man/man7/adding_user.7
Deleted:
projects/tcp_cc_7.x/share/man/man8/adding_user.8
Modified:
projects/tcp_cc_7.x/ (props changed)
projects/tcp_cc_7.x/COPYRIGHT (props changed)
projects/tcp_cc_7.x/Makefile (contents, props changed)
projects/tcp_cc_7.x/Makefile.inc1 (props changed)
projects/tcp_cc_7.x/ObsoleteFiles.inc
projects/tcp_cc_7.x/UPDATING (contents, props changed)
projects/tcp_cc_7.x/bin/ (props changed)
projects/tcp_cc_7.x/bin/chio/ (props changed)
projects/tcp_cc_7.x/bin/cp/ (props changed)
projects/tcp_cc_7.x/bin/cp/utils.c
projects/tcp_cc_7.x/bin/dd/ (props changed)
projects/tcp_cc_7.x/bin/ln/ (props changed)
projects/tcp_cc_7.x/bin/sh/ (props changed)
projects/tcp_cc_7.x/contrib/ (props changed)
projects/tcp_cc_7.x/contrib/bind9/ (props changed)
projects/tcp_cc_7.x/contrib/gcc/ (props changed)
projects/tcp_cc_7.x/contrib/gdb/ (props changed)
projects/tcp_cc_7.x/contrib/gdtoa/ (props changed)
projects/tcp_cc_7.x/contrib/ntp/ (props changed)
projects/tcp_cc_7.x/contrib/opie/opiekey.1
projects/tcp_cc_7.x/contrib/sendmail/ (props changed)
projects/tcp_cc_7.x/contrib/smbfs/ (props changed)
projects/tcp_cc_7.x/contrib/tcsh/ (props changed)
projects/tcp_cc_7.x/contrib/telnet/ (props changed)
projects/tcp_cc_7.x/contrib/top/ (props changed)
projects/tcp_cc_7.x/contrib/traceroute/ (props changed)
projects/tcp_cc_7.x/crypto/openssh/ (props changed)
projects/tcp_cc_7.x/etc/ (props changed)
projects/tcp_cc_7.x/etc/defaults/rc.conf
projects/tcp_cc_7.x/etc/periodic/weekly/ (props changed)
projects/tcp_cc_7.x/etc/rc.d/jail
projects/tcp_cc_7.x/games/fortune/ (props changed)
projects/tcp_cc_7.x/games/fortune/fortune/ (props changed)
projects/tcp_cc_7.x/gnu/ (props changed)
projects/tcp_cc_7.x/gnu/usr.bin/cc/ (props changed)
projects/tcp_cc_7.x/gnu/usr.bin/cvs/ (props changed)
projects/tcp_cc_7.x/gnu/usr.bin/gdb/kgdb/ (props changed)
projects/tcp_cc_7.x/gnu/usr.bin/groff/tmac/mdoc.local (props changed)
projects/tcp_cc_7.x/gnu/usr.bin/sort/ (props changed)
projects/tcp_cc_7.x/include/ (props changed)
projects/tcp_cc_7.x/kerberos5/ (props changed)
projects/tcp_cc_7.x/lib/ (props changed)
projects/tcp_cc_7.x/lib/bind/ (props changed)
projects/tcp_cc_7.x/lib/csu/ (props changed)
projects/tcp_cc_7.x/lib/libarchive/ (props changed)
projects/tcp_cc_7.x/lib/libarchive/archive_write_disk.c
projects/tcp_cc_7.x/lib/libarchive/test/Makefile
projects/tcp_cc_7.x/lib/libbluetooth/ (props changed)
projects/tcp_cc_7.x/lib/libc/ (props changed)
projects/tcp_cc_7.x/lib/libc/string/ffsll.c (props changed)
projects/tcp_cc_7.x/lib/libc/string/flsll.c (props changed)
projects/tcp_cc_7.x/lib/libc/sys/cpuset_getaffinity.2
projects/tcp_cc_7.x/lib/libc/sys/jail.2
projects/tcp_cc_7.x/lib/libc_r/ (props changed)
projects/tcp_cc_7.x/lib/libcam/ (props changed)
projects/tcp_cc_7.x/lib/libdisk/ (props changed)
projects/tcp_cc_7.x/lib/libfetch/ (props changed)
projects/tcp_cc_7.x/lib/libftpio/ (props changed)
projects/tcp_cc_7.x/lib/libgeom/ (props changed)
projects/tcp_cc_7.x/lib/libgssapi/ (props changed)
projects/tcp_cc_7.x/lib/libkse/ (props changed)
projects/tcp_cc_7.x/lib/libkvm/ (props changed)
projects/tcp_cc_7.x/lib/libkvm/kvm_proc.c
projects/tcp_cc_7.x/lib/libmagic/ (props changed)
projects/tcp_cc_7.x/lib/libstand/ (props changed)
projects/tcp_cc_7.x/lib/libthr/ (props changed)
projects/tcp_cc_7.x/lib/libutil/ (props changed)
projects/tcp_cc_7.x/lib/msun/ (props changed)
projects/tcp_cc_7.x/libexec/ (props changed)
projects/tcp_cc_7.x/libexec/ftpd/ftpd.8
projects/tcp_cc_7.x/libexec/rpc.rstatd/ (props changed)
projects/tcp_cc_7.x/libexec/rtld-elf/ (props changed)
projects/tcp_cc_7.x/release/ (props changed)
projects/tcp_cc_7.x/release/scripts/src-install.sh (props changed)
projects/tcp_cc_7.x/rescue/ (props changed)
projects/tcp_cc_7.x/sbin/ (props changed)
projects/tcp_cc_7.x/sbin/atacontrol/ (props changed)
projects/tcp_cc_7.x/sbin/ddb/ (props changed)
projects/tcp_cc_7.x/sbin/devfs/ (props changed)
projects/tcp_cc_7.x/sbin/dhclient/ (props changed)
projects/tcp_cc_7.x/sbin/dumpfs/ (props changed)
projects/tcp_cc_7.x/sbin/dumpfs/dumpfs.8
projects/tcp_cc_7.x/sbin/dumpfs/dumpfs.c
projects/tcp_cc_7.x/sbin/fdisk/ (props changed)
projects/tcp_cc_7.x/sbin/fsck_ffs/ (props changed)
projects/tcp_cc_7.x/sbin/geom/ (props changed)
projects/tcp_cc_7.x/sbin/geom/class/part/ (props changed)
projects/tcp_cc_7.x/sbin/geom/core/geom.c
projects/tcp_cc_7.x/sbin/geom/misc/ (props changed)
projects/tcp_cc_7.x/sbin/ifconfig/ (props changed)
projects/tcp_cc_7.x/sbin/init/ (props changed)
projects/tcp_cc_7.x/sbin/ipfw/ (props changed)
projects/tcp_cc_7.x/sbin/md5/ (props changed)
projects/tcp_cc_7.x/sbin/mdconfig/ (props changed)
projects/tcp_cc_7.x/sbin/mksnap_ffs/ (props changed)
projects/tcp_cc_7.x/sbin/mount/ (props changed)
projects/tcp_cc_7.x/sbin/natd/ (props changed)
projects/tcp_cc_7.x/sbin/ping6/ (props changed)
projects/tcp_cc_7.x/sbin/sconfig/ (props changed)
projects/tcp_cc_7.x/secure/lib/libssh/ (props changed)
projects/tcp_cc_7.x/secure/libexec/sftp-server/ (props changed)
projects/tcp_cc_7.x/secure/usr.bin/ssh/ (props changed)
projects/tcp_cc_7.x/secure/usr.sbin/sshd/ (props changed)
projects/tcp_cc_7.x/share/ (props changed)
projects/tcp_cc_7.x/share/colldef/ (props changed)
projects/tcp_cc_7.x/share/doc/bind9/ (props changed)
projects/tcp_cc_7.x/share/examples/ (props changed)
projects/tcp_cc_7.x/share/man/man3/ (props changed)
projects/tcp_cc_7.x/share/man/man4/ (props changed)
projects/tcp_cc_7.x/share/man/man4/ddb.4
projects/tcp_cc_7.x/share/man/man4/igb.4 (props changed)
projects/tcp_cc_7.x/share/man/man5/ (props changed)
projects/tcp_cc_7.x/share/man/man5/Makefile
projects/tcp_cc_7.x/share/man/man5/rc.conf.5
projects/tcp_cc_7.x/share/man/man7/ (props changed)
projects/tcp_cc_7.x/share/man/man7/Makefile
projects/tcp_cc_7.x/share/man/man8/Makefile
projects/tcp_cc_7.x/share/man/man9/ (props changed)
projects/tcp_cc_7.x/share/mk/ (props changed)
projects/tcp_cc_7.x/share/mk/bsd.own.mk
projects/tcp_cc_7.x/share/sendmail/ (props changed)
projects/tcp_cc_7.x/share/syscons/ (props changed)
projects/tcp_cc_7.x/share/syscons/keymaps/ (props changed)
projects/tcp_cc_7.x/share/timedef/ (props changed)
projects/tcp_cc_7.x/share/zoneinfo/ (props changed)
projects/tcp_cc_7.x/sys/ (props changed)
projects/tcp_cc_7.x/sys/arm/arm/busdma_machdep.c
projects/tcp_cc_7.x/sys/compat/freebsd32/freebsd32.h
projects/tcp_cc_7.x/sys/compat/freebsd32/freebsd32_misc.c
projects/tcp_cc_7.x/sys/compat/freebsd32/freebsd32_proto.h
projects/tcp_cc_7.x/sys/compat/freebsd32/freebsd32_syscall.h
projects/tcp_cc_7.x/sys/compat/freebsd32/freebsd32_syscalls.c
projects/tcp_cc_7.x/sys/compat/freebsd32/freebsd32_sysent.c
projects/tcp_cc_7.x/sys/compat/freebsd32/syscalls.master
projects/tcp_cc_7.x/sys/conf/kern.post.mk
projects/tcp_cc_7.x/sys/conf/kern.pre.mk
projects/tcp_cc_7.x/sys/contrib/pf/ (props changed)
projects/tcp_cc_7.x/sys/dev/acpi_support/acpi_asus.c
projects/tcp_cc_7.x/sys/dev/ath/ath_hal/ (props changed)
projects/tcp_cc_7.x/sys/dev/cxgb/ (props changed)
projects/tcp_cc_7.x/sys/dev/fxp/if_fxp.c
projects/tcp_cc_7.x/sys/dev/fxp/if_fxpreg.h
projects/tcp_cc_7.x/sys/dev/fxp/if_fxpvar.h
projects/tcp_cc_7.x/sys/dev/kbdmux/kbdmux.c
projects/tcp_cc_7.x/sys/dev/msk/if_msk.c
projects/tcp_cc_7.x/sys/dev/msk/if_mskreg.h
projects/tcp_cc_7.x/sys/dev/re/if_re.c
projects/tcp_cc_7.x/sys/dev/sound/pci/hda/hdac.c
projects/tcp_cc_7.x/sys/dev/usb/if_axe.c
projects/tcp_cc_7.x/sys/dev/usb/if_axereg.h
projects/tcp_cc_7.x/sys/dev/usb/usbdevs
projects/tcp_cc_7.x/sys/fs/fifofs/fifo_vnops.c
projects/tcp_cc_7.x/sys/kern/kern_cpuset.c
projects/tcp_cc_7.x/sys/kern/kern_exit.c
projects/tcp_cc_7.x/sys/kern/kern_fork.c
projects/tcp_cc_7.x/sys/kern/kern_jail.c
projects/tcp_cc_7.x/sys/kern/tty.c
projects/tcp_cc_7.x/sys/kern/uipc_socket.c
projects/tcp_cc_7.x/sys/kern/uipc_usrreq.c
projects/tcp_cc_7.x/sys/kern/vfs_subr.c
projects/tcp_cc_7.x/sys/net/if.c
projects/tcp_cc_7.x/sys/net/rtsock.c
projects/tcp_cc_7.x/sys/netgraph/bluetooth/hci/ng_hci_main.c
projects/tcp_cc_7.x/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.c
projects/tcp_cc_7.x/sys/netinet/in.c
projects/tcp_cc_7.x/sys/netinet/in_pcb.c
projects/tcp_cc_7.x/sys/netinet/raw_ip.c
projects/tcp_cc_7.x/sys/netinet/sctp_pcb.c
projects/tcp_cc_7.x/sys/netinet/sctp_usrreq.c
projects/tcp_cc_7.x/sys/netinet/tcp_usrreq.c
projects/tcp_cc_7.x/sys/netinet/udp_usrreq.c
projects/tcp_cc_7.x/sys/netinet6/in6.c
projects/tcp_cc_7.x/sys/netinet6/in6_pcb.c
projects/tcp_cc_7.x/sys/netinet6/in6_src.c
projects/tcp_cc_7.x/sys/netinet6/raw_ip6.c
projects/tcp_cc_7.x/sys/netinet6/udp6_usrreq.c
projects/tcp_cc_7.x/sys/netipx/ipx_usrreq.c
projects/tcp_cc_7.x/sys/pci/if_rlreg.h
projects/tcp_cc_7.x/sys/security/audit/audit.c
projects/tcp_cc_7.x/sys/security/audit/audit_arg.c
projects/tcp_cc_7.x/sys/security/audit/audit_bsm.c
projects/tcp_cc_7.x/sys/security/audit/audit_bsm_klib.c
projects/tcp_cc_7.x/sys/security/audit/audit_pipe.c
projects/tcp_cc_7.x/sys/security/audit/audit_private.h
projects/tcp_cc_7.x/sys/security/audit/audit_syscalls.c
projects/tcp_cc_7.x/sys/security/mac/mac_audit.c
projects/tcp_cc_7.x/sys/security/mac/mac_priv.c
projects/tcp_cc_7.x/sys/security/mac_bsdextended/mac_bsdextended.c
projects/tcp_cc_7.x/sys/sys/cpuset.h
projects/tcp_cc_7.x/sys/sys/jail.h
projects/tcp_cc_7.x/sys/sys/param.h
projects/tcp_cc_7.x/sys/ufs/ffs/ffs_alloc.c
projects/tcp_cc_7.x/sys/ufs/ffs/ffs_balloc.c
projects/tcp_cc_7.x/sys/ufs/ffs/ffs_extern.h
projects/tcp_cc_7.x/sys/ufs/ffs/ffs_inode.c
projects/tcp_cc_7.x/sys/ufs/ffs/ffs_vnops.c
projects/tcp_cc_7.x/tools/build/ (props changed)
projects/tcp_cc_7.x/tools/regression/atm/ (props changed)
projects/tcp_cc_7.x/tools/regression/file/flock/ (props changed)
projects/tcp_cc_7.x/tools/regression/usr.bin/ (props changed)
projects/tcp_cc_7.x/tools/regression/usr.bin/tr/ (props changed)
projects/tcp_cc_7.x/tools/sched/ (props changed)
projects/tcp_cc_7.x/tools/tools/crypto/ (props changed)
projects/tcp_cc_7.x/tools/tools/editing/ (props changed)
projects/tcp_cc_7.x/tools/tools/nanobsd/ (props changed)
projects/tcp_cc_7.x/usr.bin/ (props changed)
projects/tcp_cc_7.x/usr.bin/basename/ (props changed)
projects/tcp_cc_7.x/usr.bin/basename/basename.1
projects/tcp_cc_7.x/usr.bin/calendar/ (props changed)
projects/tcp_cc_7.x/usr.bin/cksum/ (props changed)
projects/tcp_cc_7.x/usr.bin/comm/ (props changed)
projects/tcp_cc_7.x/usr.bin/cpuset/ (props changed)
projects/tcp_cc_7.x/usr.bin/cpuset/cpuset.1
projects/tcp_cc_7.x/usr.bin/cpuset/cpuset.c
projects/tcp_cc_7.x/usr.bin/dirname/ (props changed)
projects/tcp_cc_7.x/usr.bin/dirname/dirname.c
projects/tcp_cc_7.x/usr.bin/du/ (props changed)
projects/tcp_cc_7.x/usr.bin/fetch/ (props changed)
projects/tcp_cc_7.x/usr.bin/file/ (props changed)
projects/tcp_cc_7.x/usr.bin/gzip/ (props changed)
projects/tcp_cc_7.x/usr.bin/ipcrm/ (props changed)
projects/tcp_cc_7.x/usr.bin/ipcs/ (props changed)
projects/tcp_cc_7.x/usr.bin/kdump/ (props changed)
projects/tcp_cc_7.x/usr.bin/ktrace/ (props changed)
projects/tcp_cc_7.x/usr.bin/ldd/ (props changed)
projects/tcp_cc_7.x/usr.bin/lockf/ (props changed)
projects/tcp_cc_7.x/usr.bin/logger/ (props changed)
projects/tcp_cc_7.x/usr.bin/make/ (props changed)
projects/tcp_cc_7.x/usr.bin/netstat/ (props changed)
projects/tcp_cc_7.x/usr.bin/nsupdate/ (props changed)
projects/tcp_cc_7.x/usr.bin/procstat/ (props changed)
projects/tcp_cc_7.x/usr.bin/sed/ (props changed)
projects/tcp_cc_7.x/usr.bin/sed/compile.c
projects/tcp_cc_7.x/usr.bin/shar/ (props changed)
projects/tcp_cc_7.x/usr.bin/su/ (props changed)
projects/tcp_cc_7.x/usr.bin/tar/ (props changed)
projects/tcp_cc_7.x/usr.bin/top/ (props changed)
projects/tcp_cc_7.x/usr.bin/truncate/ (props changed)
projects/tcp_cc_7.x/usr.bin/truss/ (props changed)
projects/tcp_cc_7.x/usr.bin/units/ (props changed)
projects/tcp_cc_7.x/usr.bin/vmstat/ (props changed)
projects/tcp_cc_7.x/usr.bin/wc/ (props changed)
projects/tcp_cc_7.x/usr.bin/whereis/ (props changed)
projects/tcp_cc_7.x/usr.bin/window/ (props changed)
projects/tcp_cc_7.x/usr.bin/xargs/ (props changed)
projects/tcp_cc_7.x/usr.sbin/ (props changed)
projects/tcp_cc_7.x/usr.sbin/adduser/ (props changed)
projects/tcp_cc_7.x/usr.sbin/bsnmpd/modules/snmp_pf/ (props changed)
projects/tcp_cc_7.x/usr.sbin/cdcontrol/ (props changed)
projects/tcp_cc_7.x/usr.sbin/config/ (props changed)
projects/tcp_cc_7.x/usr.sbin/cpucontrol/ (props changed)
projects/tcp_cc_7.x/usr.sbin/cron/ (props changed)
projects/tcp_cc_7.x/usr.sbin/cron/cron/ (props changed)
projects/tcp_cc_7.x/usr.sbin/extattr/ (props changed)
projects/tcp_cc_7.x/usr.sbin/freebsd-update/ (props changed)
projects/tcp_cc_7.x/usr.sbin/fwcontrol/ (props changed)
projects/tcp_cc_7.x/usr.sbin/iostat/ (props changed)
projects/tcp_cc_7.x/usr.sbin/jail/ (props changed)
projects/tcp_cc_7.x/usr.sbin/jail/Makefile
projects/tcp_cc_7.x/usr.sbin/jail/jail.8
projects/tcp_cc_7.x/usr.sbin/jail/jail.c
projects/tcp_cc_7.x/usr.sbin/jexec/ (props changed)
projects/tcp_cc_7.x/usr.sbin/jexec/Makefile
projects/tcp_cc_7.x/usr.sbin/jexec/jexec.8
projects/tcp_cc_7.x/usr.sbin/jexec/jexec.c
projects/tcp_cc_7.x/usr.sbin/jls/ (props changed)
projects/tcp_cc_7.x/usr.sbin/jls/Makefile
projects/tcp_cc_7.x/usr.sbin/jls/jls.8
projects/tcp_cc_7.x/usr.sbin/jls/jls.c
projects/tcp_cc_7.x/usr.sbin/mergemaster/ (props changed)
projects/tcp_cc_7.x/usr.sbin/mountd/ (props changed)
projects/tcp_cc_7.x/usr.sbin/mtree/ (props changed)
projects/tcp_cc_7.x/usr.sbin/ndiscvt/ (props changed)
projects/tcp_cc_7.x/usr.sbin/newsyslog/newsyslog.conf.5 (props changed)
projects/tcp_cc_7.x/usr.sbin/nscd/ (props changed)
projects/tcp_cc_7.x/usr.sbin/ntp/ (props changed)
projects/tcp_cc_7.x/usr.sbin/pciconf/ (props changed)
projects/tcp_cc_7.x/usr.sbin/pkg_install/ (props changed)
projects/tcp_cc_7.x/usr.sbin/pmcstat/ (props changed)
projects/tcp_cc_7.x/usr.sbin/portsnap/ (props changed)
projects/tcp_cc_7.x/usr.sbin/powerd/ (props changed)
projects/tcp_cc_7.x/usr.sbin/pw/ (props changed)
projects/tcp_cc_7.x/usr.sbin/rpc.lockd/ (props changed)
projects/tcp_cc_7.x/usr.sbin/rpc.statd/ (props changed)
projects/tcp_cc_7.x/usr.sbin/rpc.yppasswdd/ (props changed)
projects/tcp_cc_7.x/usr.sbin/setfib/ (props changed)
projects/tcp_cc_7.x/usr.sbin/sysinstall/ (props changed)
projects/tcp_cc_7.x/usr.sbin/syslogd/ (props changed)
projects/tcp_cc_7.x/usr.sbin/traceroute/ (props changed)
projects/tcp_cc_7.x/usr.sbin/tzsetup/ (props changed)
projects/tcp_cc_7.x/usr.sbin/wpa/wpa_supplicant/ (props changed)
Modified: projects/tcp_cc_7.x/Makefile
==============================================================================
--- projects/tcp_cc_7.x/Makefile Tue Feb 10 02:43:07 2009 (r188429)
+++ projects/tcp_cc_7.x/Makefile Tue Feb 10 04:56:08 2009 (r188430)
@@ -279,7 +279,7 @@ universe_prologue:
@echo "--------------------------------------------------------------"
.for target in ${TARGETS}
KERNCONFS!= cd ${.CURDIR}/sys/${target}/conf && \
- find [A-Z]*[A-Z] -type f -maxdepth 0 \
+ find [A-Z0-9]*[A-Z0-9] -type f -maxdepth 0 \
! -name DEFAULTS ! -name LINT
KERNCONFS:= ${KERNCONFS:S/^NOTES$/LINT/}
universe: universe_${target}
Modified: projects/tcp_cc_7.x/ObsoleteFiles.inc
==============================================================================
--- projects/tcp_cc_7.x/ObsoleteFiles.inc Tue Feb 10 02:43:07 2009 (r188429)
+++ projects/tcp_cc_7.x/ObsoleteFiles.inc Tue Feb 10 04:56:08 2009 (r188430)
@@ -14,6 +14,8 @@
# The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
#
+# 20090203: adding_user.8 moved to adding_user.7
+OLD_FILES+=usr/share/man/man8/adding_user.8.gz
# 20080407: pkg_sign has been removed
OLD_FILES+=usr/sbin/pkg_check
OLD_FILES+=usr/sbin/pkg_sign
Modified: projects/tcp_cc_7.x/UPDATING
==============================================================================
--- projects/tcp_cc_7.x/UPDATING Tue Feb 10 02:43:07 2009 (r188429)
+++ projects/tcp_cc_7.x/UPDATING Tue Feb 10 04:56:08 2009 (r188430)
@@ -8,6 +8,19 @@ Items affecting the ports and packages s
/usr/ports/UPDATING. Please read that file before running
portupgrade.
+20090207:
+ ZFS users on amd64 machines with 4GB or more of RAM should
+ reevaluate their need for setting vm.kmem_size_max and
+ vm.kmem_size manually. In fact, after recent changes to the
+ kernel, the default value of vm.kmem_size is larger than the
+ suggested manual setting in most ZFS/FreeBSD tuning guides.
+
+20090207:
+ Multi-IPv4/v6/no-IP jail support was merged to STABLE.
+ You need to rebuild jls(8) and to use the new features
+ jail(8), jexec(8) and cpuset(1) with a new kernel.
+ __FreeBSD_version was bumped to 701103.
+
20090119:
NTFS has been removed from GENERIC kernel on amd64 to match
GENERIC on i386. Should not cause any issues since mount_ntfs(8)
Modified: projects/tcp_cc_7.x/bin/cp/utils.c
==============================================================================
--- projects/tcp_cc_7.x/bin/cp/utils.c Tue Feb 10 02:43:07 2009 (r188429)
+++ projects/tcp_cc_7.x/bin/cp/utils.c Tue Feb 10 04:56:08 2009 (r188430)
@@ -137,41 +137,39 @@ copy_file(const FTSENT *entp, int dne)
* Mmap and write if less than 8M (the limit is so we don't totally
* trash memory on big files. This is really a minor hack, but it
* wins some CPU back.
+ * Some filesystems, such as smbnetfs, don't support mmap,
+ * so this is a best-effort attempt.
*/
#ifdef VM_AND_BUFFER_CACHE_SYNCHRONIZED
if (S_ISREG(fs->st_mode) && fs->st_size > 0 &&
- fs->st_size <= 8 * 1048576) {
- if ((p = mmap(NULL, (size_t)fs->st_size, PROT_READ,
- MAP_SHARED, from_fd, (off_t)0)) == MAP_FAILED) {
+ fs->st_size <= 8 * 1024 * 1024 &&
+ (p = mmap(NULL, (size_t)fs->st_size, PROT_READ,
+ MAP_SHARED, from_fd, (off_t)0)) != MAP_FAILED) {
+ wtotal = 0;
+ for (bufp = p, wresid = fs->st_size; ;
+ bufp += wcount, wresid -= (size_t)wcount) {
+ wcount = write(to_fd, bufp, wresid);
+ if (wcount <= 0)
+ break;
+ wtotal += wcount;
+ if (info) {
+ info = 0;
+ (void)fprintf(stderr,
+ "%s -> %s %3d%%\n",
+ entp->fts_path, to.p_path,
+ cp_pct(wtotal, fs->st_size));
+ }
+ if (wcount >= (ssize_t)wresid)
+ break;
+ }
+ if (wcount != (ssize_t)wresid) {
+ warn("%s", to.p_path);
+ rval = 1;
+ }
+ /* Some systems don't unmap on close(2). */
+ if (munmap(p, fs->st_size) < 0) {
warn("%s", entp->fts_path);
rval = 1;
- } else {
- wtotal = 0;
- for (bufp = p, wresid = fs->st_size; ;
- bufp += wcount, wresid -= (size_t)wcount) {
- wcount = write(to_fd, bufp, wresid);
- if (wcount <= 0)
- break;
- wtotal += wcount;
- if (info) {
- info = 0;
- (void)fprintf(stderr,
- "%s -> %s %3d%%\n",
- entp->fts_path, to.p_path,
- cp_pct(wtotal, fs->st_size));
- }
- if (wcount >= (ssize_t)wresid)
- break;
- }
- if (wcount != (ssize_t)wresid) {
- warn("%s", to.p_path);
- rval = 1;
- }
- /* Some systems don't unmap on close(2). */
- if (munmap(p, fs->st_size) < 0) {
- warn("%s", entp->fts_path);
- rval = 1;
- }
}
} else
#endif
Modified: projects/tcp_cc_7.x/contrib/opie/opiekey.1
==============================================================================
--- projects/tcp_cc_7.x/contrib/opie/opiekey.1 Tue Feb 10 02:43:07 2009 (r188429)
+++ projects/tcp_cc_7.x/contrib/opie/opiekey.1 Tue Feb 10 04:56:08 2009 (r188430)
@@ -157,8 +157,7 @@ this mistake. Better checks are needed.
.BR opieinfo (1),
.BR opiekeys (5),
.BR opieaccess (5),
-.BR opiegen (1)
-.BR su (1),
+.BR su (1)
.SH AUTHOR
Bellcore's S/Key was written by Phil Karn, Neil M. Haller, and John S. Walden
Modified: projects/tcp_cc_7.x/etc/defaults/rc.conf
==============================================================================
--- projects/tcp_cc_7.x/etc/defaults/rc.conf Tue Feb 10 02:43:07 2009 (r188429)
+++ projects/tcp_cc_7.x/etc/defaults/rc.conf Tue Feb 10 04:56:08 2009 (r188430)
@@ -615,24 +615,27 @@ jail_sysvipc_allow="NO" # Allow SystemV
# each jail, specified in jail_list, with the following variables.
# NOTES:
# - replace 'example' with the jail's name.
-# - except rootdir, hostname and ip, all of the following variables may be made
-# global jail variables if you don't specify a jail name (ie. jail_interface).
+# - except rootdir, hostname, ip and the _multi<n> addresses,
+# all of the following variables may be made global jail variables
+# if you don't specify a jail name (ie. jail_interface, jail_devfs_ruleset).
#
#jail_example_rootdir="/usr/jail/default" # Jail's root directory
#jail_example_hostname="default.domain.com" # Jail's hostname
-#jail_example_ip="192.168.0.10" # Jail's IP number
-#jail_example_interface="" # Interface to create the IP alias on
-#jail_example_fib="0" # routing table for setfib(1)
+#jail_example_interface="" # Jail's interface variable to create IP aliases on
+#jail_example_fib="0" # Routing table for setfib(1)
+#jail_example_ip="192.0.2.10,2001:db8::17" # Jail's primary IPv4 and IPv6 address
+#jail_example_ip_multi0="2001:db8::10" # and another IPv6 address
#jail_example_exec_start="/bin/sh /etc/rc" # command to execute in jail for starting
#jail_example_exec_afterstart0="/bin/sh command" # command to execute after the one for
# starting the jail. More than one can be
# specified using a trailing number
#jail_example_exec_stop="/bin/sh /etc/rc.shutdown" # command to execute in jail for stopping
#jail_example_devfs_enable="NO" # mount devfs in the jail
+#jail_example_devfs_ruleset="ruleset_name" # devfs ruleset to apply to jail -
+ # usually you want "devfsrules_jail".
#jail_example_fdescfs_enable="NO" # mount fdescfs in the jail
#jail_example_procfs_enable="NO" # mount procfs in jail
#jail_example_mount_enable="NO" # mount/umount jail's fs
-#jail_example_devfs_ruleset="ruleset_name" # devfs ruleset to apply to jail
#jail_example_fstab="" # fstab(5) for mount/umount
#jail_example_flags="-l -U root" # flags for jail(8)
Modified: projects/tcp_cc_7.x/etc/rc.d/jail
==============================================================================
--- projects/tcp_cc_7.x/etc/rc.d/jail Tue Feb 10 02:43:07 2009 (r188429)
+++ projects/tcp_cc_7.x/etc/rc.d/jail Tue Feb 10 04:56:08 2009 (r188430)
@@ -93,6 +93,7 @@ init_variables()
debug "$_j mount enable: $_mount"
debug "$_j hostname: $_hostname"
debug "$_j ip: $_ip"
+ jail_show_addresses ${_j}
debug "$_j interface: $_interface"
debug "$_j fib: $_fib"
debug "$_j root: $_rootdir"
@@ -126,10 +127,6 @@ init_variables()
if [ -z "${_rootdir}" ]; then
err 3 "$name: No root directory has been defined for ${_j}"
fi
- if [ -z "${_ip}" ]; then
- err 3 "$name: No IP address has been defined for ${_j}"
- fi
-
}
# set_sysctl rc_knob mib msg
@@ -275,6 +272,208 @@ jail_mount_fstab()
mount -a -F "${_fstab}"
}
+# jail_show_addresses jail
+# Debug print the input for the given _multi aliases
+# for a jail for init_variables().
+#
+jail_show_addresses()
+{
+ local _j _type alias
+ _j="$1"
+ alias=0
+
+ if [ -z "${_j}" ]; then
+ warn "jail_show_addresses: you must specify a jail"
+ return
+ fi
+
+ while : ; do
+ eval _addr=\"\$jail_${_j}_ip_multi${alias}\"
+ if [ -n "${_addr}" ]; then
+ debug "${_j} ip_multi${alias}: $_addr"
+ alias=$((${alias} + 1))
+ else
+ break
+ fi
+ done
+}
+
+# jail_extract_address argument
+# The second argument is the string from one of the _ip
+# or the _multi variables. In case of a comma separated list
+# only one argument must be passed in at a time.
+# The function alters the _type, _iface, _addr and _mask variables.
+#
+jail_extract_address()
+{
+ local _i
+ _i=$1
+
+ if [ -z "${_i}" ]; then
+ warn "jail_extract_address: called without input"
+ return
+ fi
+
+ # Check if we have an interface prefix given and split into
+ # iFace and rest.
+ case "${_i}" in
+ *\|*) # ifN|.. prefix there
+ _iface=${_i%%|*}
+ _r=${_i##*|}
+ ;;
+ *) _iface=""
+ _r=${_i}
+ ;;
+ esac
+
+ # In case the IP has no interface given, check if we have a global one.
+ _iface=${_iface:-${_interface}}
+
+ # Set address, cut off any prefix/netmask/prefixlen.
+ _addr=${_r}
+ _addr=${_addr%%[/ ]*}
+
+ # Theoretically we can return here if interface is not set,
+ # as we only care about the _mask if we call ifconfig.
+ # This is not done because we may want to santize IP addresses
+ # based on _type later, and optionally change the type as well.
+
+ # Extract the prefix/netmask/prefixlen part by cutting off the address.
+ _mask=${_r}
+ _mask=`expr "${_mask}" : "${_addr}\(.*\)"`
+
+ # Identify type {inet,inet6}.
+ case "${_addr}" in
+ *\.*\.*\.*) _type="inet" ;;
+ *:*) _type="inet6" ;;
+ *) warn "jail_extract_address: type not identified"
+ ;;
+ esac
+
+ # Handle the special /netmask instead of /prefix or
+ # "netmask xxx" case for legacy IP.
+ # We do NOT support shortend class-full netmasks.
+ if [ "${_type}" = "inet" ]; then
+ case "${_mask}" in
+ /*\.*\.*\.*) _mask=" netmask ${_mask#/}" ;;
+ *) ;;
+ esac
+
+ # In case _mask is still not set use /32.
+ _mask=${_mask:-/32}
+
+ elif [ "${_type}" = "inet6" ]; then
+ # In case _maske is not set for IPv6, use /128.
+ _mask=${_mask:-/128}
+ fi
+}
+
+# jail_handle_ips_option {add,del} input
+# Handle a single argument imput which can be a comma separated
+# list of addresses (theoretically with an option interface and
+# prefix/netmask/prefixlen).
+#
+jail_handle_ips_option()
+{
+ local _x _action _type _i
+ _action=$1
+ _x=$2
+
+ if [ -z "${_x}" ]; then
+ # No IP given. This can happen for the primary address
+ # of each address family.
+ return
+ fi
+
+ # Loop, in case we find a comma separated list, we need to handle
+ # each argument on its own.
+ while [ ${#_x} -gt 0 ]; do
+ case "${_x}" in
+ *,*) # Extract the first argument and strip it off the list.
+ _i=`expr "${_x}" : '^\([^,]*\)'`
+ _x=`expr "${_x}" : "^[^,]*,\(.*\)"`
+ ;;
+ *) _i=${_x}
+ _x=""
+ ;;
+ esac
+
+ _type=""
+ _iface=""
+ _addr=""
+ _mask=""
+ jail_extract_address "${_i}"
+
+ # make sure we got an address.
+ case "${_addr}" in
+ "") continue ;;
+ *) ;;
+ esac
+
+ # Append address to list of addresses for the jail command.
+ case "${_addrl}" in
+ "") _addrl="${_addr}" ;;
+ *) _addrl="${_addrl},${_addr}" ;;
+ esac
+
+ # Configure interface alias if requested by a given interface
+ # and if we could correctly parse everything.
+ case "${_iface}" in
+ "") continue ;;
+ esac
+ case "${_type}" in
+ inet) ;;
+ inet6) ;;
+ *) warn "Could not determine address family. Not going" \
+ "to ${_action} address '${_addr}' for ${_jail}."
+ continue
+ ;;
+ esac
+ case "${_action}" in
+ add) ifconfig ${_iface} ${_type} ${_addr}${_mask} alias
+ ;;
+ del) # When removing the IP, ignore the _mask.
+ ifconfig ${_iface} ${_type} ${_addr} -alias
+ ;;
+ esac
+ done
+}
+
+# jail_ips {add,del}
+# Extract the comma separated list of addresses and return them
+# for the jail command.
+# Handle more than one address via the _multi option as well.
+# If an interface is given also add/remove an alias for the
+# address with an optional netmask.
+#
+jail_ips()
+{
+ local _action
+ _action=$1
+
+ case "${_action}" in
+ add) ;;
+ del) ;;
+ *) warn "jail_ips: invalid action '${_action}'"
+ return
+ ;;
+ esac
+
+ # Handle addresses.
+ jail_handle_ips_option ${_action} "${_ip}"
+ # Handle jail_xxx_ip_multi<N>
+ alias=0
+ while : ; do
+ eval _x=\"\$jail_${_jail}_ip_multi${alias}\"
+ case "${_x}" in
+ "") break ;;
+ *) jail_handle_ips_option ${_action} "${_x}"
+ alias=$((${alias} + 1))
+ ;;
+ esac
+ done
+}
+
jail_start()
{
echo -n 'Configuring jails:'
@@ -296,9 +495,8 @@ jail_start()
echo -n " [${_hostname} already running (/var/run/jail_${_jail}.id exists)]"
continue;
fi
- if [ -n "${_interface}" ]; then
- ifconfig ${_interface} alias ${_ip} netmask 255.255.255.255
- fi
+ _addrl=""
+ jail_ips "add"
if [ -n "${_fib}" ]; then
_setfib="setfib -F '${_fib}'"
else
@@ -358,7 +556,7 @@ jail_start()
fi
_tmp_jail=${_tmp_dir}/jail.$$
eval ${_setfib} jail ${_flags} -i ${_rootdir} ${_hostname} \
- ${_ip} ${_exec_start} > ${_tmp_jail} 2>&1
+ \"${_addrl}\" ${_exec_start} > ${_tmp_jail} 2>&1
if [ "$?" -eq 0 ] ; then
_jail_id=$(head -1 ${_tmp_jail})
@@ -379,9 +577,7 @@ jail_start()
echo ${_jail_id} > /var/run/jail_${_jail}.id
else
jail_umount_fs
- if [ -n "${_interface}" ]; then
- ifconfig ${_interface} -alias ${_ip}
- fi
+ jail_ips "del"
echo " cannot start jail \"${_jail}\": "
tail +2 ${_tmp_jail}
fi
@@ -410,9 +606,7 @@ jail_stop()
jail_umount_fs
echo -n " $_hostname"
fi
- if [ -n "${_interface}" ]; then
- ifconfig ${_interface} -alias ${_ip}
- fi
+ jail_ips "del"
rm /var/run/jail_${_jail}.id
else
echo " cannot stop jail ${_jail}. No jail id in /var/run"
Modified: projects/tcp_cc_7.x/lib/libarchive/archive_write_disk.c
==============================================================================
--- projects/tcp_cc_7.x/lib/libarchive/archive_write_disk.c Tue Feb 10 02:43:07 2009 (r188429)
+++ projects/tcp_cc_7.x/lib/libarchive/archive_write_disk.c Tue Feb 10 04:56:08 2009 (r188430)
@@ -176,6 +176,8 @@ struct archive_write_disk {
int fd;
/* Current offset for writing data to the file. */
off_t offset;
+ /* Last offset actually written to disk. */
+ off_t fd_offset;
/* Maximum size of file, -1 if unknown. */
off_t filesize;
/* Dir we were in before this restore; only for deep paths. */
@@ -185,8 +187,6 @@ struct archive_write_disk {
/* UID/GID to use in restoring this entry. */
uid_t uid;
gid_t gid;
- /* Last offset written to disk. */
- off_t last_offset;
};
/*
@@ -232,7 +232,7 @@ static struct fixup_entry *sort_dir_list
static gid_t trivial_lookup_gid(void *, const char *, gid_t);
static uid_t trivial_lookup_uid(void *, const char *, uid_t);
static ssize_t write_data_block(struct archive_write_disk *,
- const char *, size_t, off_t);
+ const char *, size_t);
static struct archive_vtable *archive_write_disk_vtable(void);
@@ -334,7 +334,7 @@ _archive_write_header(struct archive *_a
}
a->entry = archive_entry_clone(entry);
a->fd = -1;
- a->last_offset = 0;
+ a->fd_offset = 0;
a->offset = 0;
a->uid = a->user_uid;
a->mode = archive_entry_mode(a->entry);
@@ -500,9 +500,9 @@ archive_write_disk_set_skip_file(struct
}
static ssize_t
-write_data_block(struct archive_write_disk *a,
- const char *buff, size_t size, off_t offset)
+write_data_block(struct archive_write_disk *a, const char *buff, size_t size)
{
+ uint64_t start_size = size;
ssize_t bytes_written = 0;
ssize_t block_size = 0, bytes_to_write;
int r;
@@ -519,8 +519,9 @@ write_data_block(struct archive_write_di
block_size = a->pst->st_blksize;
}
- if (a->filesize >= 0 && (off_t)(offset + size) > a->filesize)
- size = (size_t)(a->filesize - offset);
+ /* If this write would run beyond the file size, truncate it. */
+ if (a->filesize >= 0 && (off_t)(a->offset + size) > a->filesize)
+ start_size = size = (size_t)(a->filesize - a->offset);
/* Write the data. */
while (size > 0) {
@@ -536,7 +537,7 @@ write_data_block(struct archive_write_di
if (*p != '\0')
break;
}
- offset += p - buff;
+ a->offset += p - buff;
size -= p - buff;
buff = p;
if (size == 0)
@@ -544,22 +545,25 @@ write_data_block(struct archive_write_di
/* Calculate next block boundary after offset. */
block_end
- = (offset / block_size) * block_size + block_size;
+ = (a->offset / block_size + 1) * block_size;
/* If the adjusted write would cross block boundary,
* truncate it to the block boundary. */
bytes_to_write = size;
- if (offset + bytes_to_write > block_end)
- bytes_to_write = block_end - offset;
+ if (a->offset + bytes_to_write > block_end)
+ bytes_to_write = block_end - a->offset;
}
/* Seek if necessary to the specified offset. */
- if (offset != a->last_offset) {
- if (lseek(a->fd, offset, SEEK_SET) < 0) {
+ if (a->offset != a->fd_offset) {
+ if (lseek(a->fd, a->offset, SEEK_SET) < 0) {
archive_set_error(&a->archive, errno,
"Seek failed");
return (ARCHIVE_FATAL);
}
+ a->fd_offset = a->offset;
+ a->archive.file_position = a->offset;
+ a->archive.raw_position = a->offset;
}
bytes_written = write(a->fd, buff, bytes_to_write);
if (bytes_written < 0) {
@@ -568,12 +572,12 @@ write_data_block(struct archive_write_di
}
buff += bytes_written;
size -= bytes_written;
- offset += bytes_written;
+ a->offset += bytes_written;
a->archive.file_position += bytes_written;
a->archive.raw_position += bytes_written;
- a->last_offset = a->offset = offset;
+ a->fd_offset = a->offset;
}
- return (bytes_written);
+ return (start_size - size);
}
static ssize_t
@@ -586,9 +590,9 @@ _archive_write_data_block(struct archive
__archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC,
ARCHIVE_STATE_DATA, "archive_write_disk_block");
- r = write_data_block(a, buff, size, offset);
-
- if (r < 0)
+ a->offset = offset;
+ r = write_data_block(a, buff, size);
+ if (r < ARCHIVE_OK)
return (r);
if ((size_t)r < size) {
archive_set_error(&a->archive, 0,
@@ -606,7 +610,7 @@ _archive_write_data(struct archive *_a,
__archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC,
ARCHIVE_STATE_DATA, "archive_write_data");
- return (write_data_block(a, buff, size, a->offset));
+ return (write_data_block(a, buff, size));
}
static int
@@ -627,7 +631,7 @@ _archive_write_finish_entry(struct archi
/* There's no file. */
} else if (a->filesize < 0) {
/* File size is unknown, so we can't set the size. */
- } else if (a->last_offset == a->filesize) {
+ } else if (a->fd_offset == a->filesize) {
/* Last write ended at exactly the filesize; we're done. */
/* Hopefully, this is the common case. */
} else {
Modified: projects/tcp_cc_7.x/lib/libarchive/test/Makefile
==============================================================================
--- projects/tcp_cc_7.x/lib/libarchive/test/Makefile Tue Feb 10 02:43:07 2009 (r188429)
+++ projects/tcp_cc_7.x/lib/libarchive/test/Makefile Tue Feb 10 04:56:08 2009 (r188430)
@@ -58,6 +58,7 @@ TESTS= \
test_write_disk_hardlink.c \
test_write_disk_perms.c \
test_write_disk_secure.c \
+ test_write_disk_sparse.c \
test_write_format_ar.c \
test_write_format_cpio.c \
test_write_format_cpio_empty.c \
Copied: projects/tcp_cc_7.x/lib/libarchive/test/test_write_disk_sparse.c (from r188429, stable/7/lib/libarchive/test/test_write_disk_sparse.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/tcp_cc_7.x/lib/libarchive/test/test_write_disk_sparse.c Tue Feb 10 04:56:08 2009 (r188430, copy of r188429, stable/7/lib/libarchive/test/test_write_disk_sparse.c)
@@ -0,0 +1,278 @@
+/*-
+ * Copyright (c) 2003-2007 Tim Kientzle
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "test.h"
+__FBSDID("$FreeBSD$");
+
+/*
+ * Write a file using archive_write_data call, read the file
+ * back and verify the contents. The data written includes large
+ * blocks of nulls, so it should exercise the sparsification logic
+ * if ARCHIVE_EXTRACT_SPARSE is enabled.
+ */
+static void
+verify_write_data(struct archive *a, int sparse)
+{
+ static const char data[]="abcdefghijklmnopqrstuvwxyz";
+ struct stat st;
+ struct archive_entry *ae;
+ size_t buff_size = 64 * 1024;
+ char *buff, *p;
+ const char *msg = sparse ? "sparse" : "non-sparse";
+ int fd;
+
+ buff = malloc(buff_size);
+ assert(buff != NULL);
+
+ ae = archive_entry_new();
+ assert(ae != NULL);
+ archive_entry_set_size(ae, 8 * buff_size);
+ archive_entry_set_pathname(ae, "test_write_data");
+ archive_entry_set_mode(ae, AE_IFREG | 0755);
+ assertEqualIntA(a, 0, archive_write_header(a, ae));
+
+ /* Use archive_write_data() to write three relatively sparse blocks. */
+
+ /* First has non-null data at beginning. */
+ memset(buff, 0, buff_size);
+ memcpy(buff, data, sizeof(data));
+ failure("%s", msg);
+ assertEqualInt(buff_size, archive_write_data(a, buff, buff_size));
+
+ /* Second has non-null data in the middle. */
+ memset(buff, 0, buff_size);
+ memcpy(buff + buff_size / 2 - 3, data, sizeof(data));
+ failure("%s", msg);
+ assertEqualInt(buff_size, archive_write_data(a, buff, buff_size));
+
+ /* Third has non-null data at the end. */
+ memset(buff, 0, buff_size);
+ memcpy(buff + buff_size - sizeof(data), data, sizeof(data));
+ failure("%s", msg);
+ assertEqualInt(buff_size, archive_write_data(a, buff, buff_size));
+
+ failure("%s", msg);
+ assertEqualIntA(a, 0, archive_write_finish_entry(a));
+
+ /* Test the entry on disk. */
+ assert(0 == stat(archive_entry_pathname(ae), &st));
+ assertEqualInt(st.st_size, 8 * buff_size);
+ fd = open(archive_entry_pathname(ae), O_RDONLY);
+ if (!assert(fd >= 0))
+ return;
+
+ /* Check first block. */
+ assertEqualInt(buff_size, read(fd, buff, buff_size));
+ failure("%s", msg);
+ assertEqualMem(buff, data, sizeof(data));
+ for (p = buff + sizeof(data); p < buff + buff_size; ++p) {
+ failure("offset: %d, %s", (int)(p - buff), msg);
+ if (!assertEqualInt(0, *p))
+ break;
+ }
+
+ /* Check second block. */
+ assertEqualInt(buff_size, read(fd, buff, buff_size));
+ for (p = buff; p < buff + buff_size; ++p) {
+ failure("offset: %d, %s", (int)(p - buff), msg);
+ if (p == buff + buff_size / 2 - 3) {
+ assertEqualMem(p, data, sizeof(data));
+ p += sizeof(data);
+ } else if (!assertEqualInt(0, *p))
+ break;
+ }
+
+ /* Check third block. */
+ assertEqualInt(buff_size, read(fd, buff, buff_size));
+ for (p = buff; p < buff + buff_size - sizeof(data); ++p) {
+ failure("offset: %d, %s", (int)(p - buff), msg);
+ if (!assertEqualInt(0, *p))
+ break;
+ }
+ failure("%s", msg);
+ assertEqualMem(buff + buff_size - sizeof(data), data, sizeof(data));
+
+ /* XXX more XXX */
+
+ assertEqualInt(0, close(fd));
+ free(buff);
+}
+
+/*
+ * As above, but using the archive_write_data_block() call.
+ */
+static void
+verify_write_data_block(struct archive *a, int sparse)
+{
+ static const char data[]="abcdefghijklmnopqrstuvwxyz";
+ struct stat st;
+ struct archive_entry *ae;
+ size_t buff_size = 64 * 1024;
+ char *buff, *p;
+ const char *msg = sparse ? "sparse" : "non-sparse";
+ int fd;
+
+ buff = malloc(buff_size);
+ assert(buff != NULL);
+
+ ae = archive_entry_new();
+ assert(ae != NULL);
+ archive_entry_set_size(ae, 8 * buff_size);
+ archive_entry_set_pathname(ae, "test_write_data_block");
+ archive_entry_set_mode(ae, AE_IFREG | 0755);
+ assertEqualIntA(a, 0, archive_write_header(a, ae));
+
+ /* Use archive_write_data_block() to write three
+ relatively sparse blocks. */
+
+ /* First has non-null data at beginning. */
+ memset(buff, 0, buff_size);
+ memcpy(buff, data, sizeof(data));
+ failure("%s", msg);
+ assertEqualInt(ARCHIVE_OK,
+ archive_write_data_block(a, buff, buff_size, 100));
+
+ /* Second has non-null data in the middle. */
+ memset(buff, 0, buff_size);
+ memcpy(buff + buff_size / 2 - 3, data, sizeof(data));
+ failure("%s", msg);
+ assertEqualInt(ARCHIVE_OK,
+ archive_write_data_block(a, buff, buff_size, buff_size + 200));
+
+ /* Third has non-null data at the end. */
+ memset(buff, 0, buff_size);
+ memcpy(buff + buff_size - sizeof(data), data, sizeof(data));
+ failure("%s", msg);
+ assertEqualInt(ARCHIVE_OK,
+ archive_write_data_block(a, buff, buff_size, buff_size * 2 + 300));
+
+ failure("%s", msg);
+ assertEqualIntA(a, 0, archive_write_finish_entry(a));
+
+ /* Test the entry on disk. */
+ assert(0 == stat(archive_entry_pathname(ae), &st));
+ assertEqualInt(st.st_size, 8 * buff_size);
+ fd = open(archive_entry_pathname(ae), O_RDONLY);
+ if (!assert(fd >= 0))
+ return;
+
+ /* Check 100-byte gap at beginning */
+ assertEqualInt(100, read(fd, buff, 100));
+ failure("%s", msg);
+ for (p = buff; p < buff + 100; ++p) {
+ failure("offset: %d, %s", (int)(p - buff), msg);
+ if (!assertEqualInt(0, *p))
+ break;
+ }
+
+ /* Check first block. */
+ assertEqualInt(buff_size, read(fd, buff, buff_size));
+ failure("%s", msg);
+ assertEqualMem(buff, data, sizeof(data));
+ for (p = buff + sizeof(data); p < buff + buff_size; ++p) {
+ failure("offset: %d, %s", (int)(p - buff), msg);
+ if (!assertEqualInt(0, *p))
+ break;
+ }
+
+ /* Check 100-byte gap */
+ assertEqualInt(100, read(fd, buff, 100));
+ failure("%s", msg);
+ for (p = buff; p < buff + 100; ++p) {
+ failure("offset: %d, %s", (int)(p - buff), msg);
+ if (!assertEqualInt(0, *p))
+ break;
+ }
+
+ /* Check second block. */
+ assertEqualInt(buff_size, read(fd, buff, buff_size));
+ for (p = buff; p < buff + buff_size; ++p) {
+ failure("offset: %d, %s", (int)(p - buff), msg);
+ if (p == buff + buff_size / 2 - 3) {
+ assertEqualMem(p, data, sizeof(data));
+ p += sizeof(data);
+ } else if (!assertEqualInt(0, *p))
+ break;
+ }
+
+ /* Check 100-byte gap */
+ assertEqualInt(100, read(fd, buff, 100));
+ failure("%s", msg);
+ for (p = buff; p < buff + 100; ++p) {
+ failure("offset: %d, %s", (int)(p - buff), msg);
+ if (!assertEqualInt(0, *p))
+ break;
+ }
+
+ /* Check third block. */
+ assertEqualInt(buff_size, read(fd, buff, buff_size));
+ for (p = buff; p < buff + buff_size - sizeof(data); ++p) {
+ failure("offset: %d, %s", (int)(p - buff), msg);
+ if (!assertEqualInt(0, *p))
+ break;
+ }
+ failure("%s", msg);
+ assertEqualMem(buff + buff_size - sizeof(data), data, sizeof(data));
+
+ /* Check another block size beyond last we wrote. */
+ assertEqualInt(buff_size, read(fd, buff, buff_size));
+ failure("%s", msg);
+ for (p = buff; p < buff + buff_size; ++p) {
+ failure("offset: %d, %s", (int)(p - buff), msg);
+ if (!assertEqualInt(0, *p))
+ break;
+ }
+
+
+ /* XXX more XXX */
+
+ assertEqualInt(0, close(fd));
+ free(buff);
+}
+
+DEFINE_TEST(test_write_disk_sparse)
+{
+ struct archive *ad;
+
+
+ /*
+ * The return values, etc, of the write data functions
+ * shouldn't change regardless of whether we've requested
+ * sparsification. (The performance and pattern of actual
+ * write calls to the disk should vary, of course, but the
+ * client program shouldn't see any difference.)
+ */
+ assert((ad = archive_write_disk_new()) != NULL);
+ archive_write_disk_set_options(ad, 0);
+ verify_write_data(ad, 0);
+ verify_write_data_block(ad, 0);
+ assertEqualInt(0, archive_write_finish(ad));
+
+ assert((ad = archive_write_disk_new()) != NULL);
+ archive_write_disk_set_options(ad, ARCHIVE_EXTRACT_SPARSE);
+ verify_write_data(ad, 1);
+ verify_write_data_block(ad, 1);
+ assertEqualInt(0, archive_write_finish(ad));
+
+}
Modified: projects/tcp_cc_7.x/lib/libc/sys/cpuset_getaffinity.2
==============================================================================
--- projects/tcp_cc_7.x/lib/libc/sys/cpuset_getaffinity.2 Tue Feb 10 02:43:07 2009 (r188429)
+++ projects/tcp_cc_7.x/lib/libc/sys/cpuset_getaffinity.2 Tue Feb 10 04:56:08 2009 (r188430)
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd March 29, 2008
+.Dd November 29, 2008
.Dt CPUSET 2
.Os
.Sh NAME
@@ -46,7 +46,7 @@
and
.Fn cpuset_setaffinity
allow the manipulation of sets of CPUs available to processes, threads,
-interrupts and other resources.
+interrupts, jails and other resources.
These functions may manipulate sets of CPUs that contain many processes
or per-object anonymous masks that effect only a single object.
.Pp
Modified: projects/tcp_cc_7.x/lib/libc/sys/jail.2
==============================================================================
--- projects/tcp_cc_7.x/lib/libc/sys/jail.2 Tue Feb 10 02:43:07 2009 (r188429)
+++ projects/tcp_cc_7.x/lib/libc/sys/jail.2 Tue Feb 10 04:56:08 2009 (r188430)
@@ -8,7 +8,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd April 8, 2003
+.Dd January 6, 2009
.Dt JAIL 2
.Os
.Sh NAME
@@ -32,15 +32,20 @@ The argument is a pointer to a structure
.Bd -literal -offset indent
struct jail {
u_int32_t version;
- char *path;
- char *hostname;
- u_int32_t ip_number;
+ char *path;
+ char *hostname;
+ char *jailname;
+ unsigned int ip4s;
+ unsigned int ip6s;
+ struct in_addr *ip4;
+ struct in6_addr *ip6;
};
.Ed
.Pp
.Dq Li version
defines the version of the API in use.
-It should be set to zero at this time.
+.Dv JAIL_API_VERSION
+is defined for the current version.
.Pp
The
.Dq Li path
@@ -54,8 +59,24 @@ This can be changed
from the inside of the prison.
.Pp
The
-.Dq Li ip_number
-can be set to the IP number assigned to the prison.
+.Dq Li jailname
+pointer is an optional name that can be assigned to the jail
+for example for managment purposes.
+.Pp
+The
+.Dq Li ip4s
+and
+.Dq Li ip6s
+give the numbers of IPv4 and IPv6 addresses that will be passed
+via their respective pointers.
+.Pp
+The
+.Dq Li ip4
+and
+.Dq Li ip6
+pointers can be set to an arrays of IPv4 and IPv6 addresses to be assigned to
+the prison, or NULL if none.
+IPv4 addresses must be in network byte order.
.Pp
The
.Fn jail_attach
@@ -97,6 +118,12 @@ or, if present, the per-jail
.Pp
All IP activity will be forced to happen to/from the IP number specified,
which should be an alias on one of the network interfaces.
+All connections to/from the loopback address
+.Pf ( Li 127.0.0.1
+for IPv4,
+.Li ::1
+for IPv6) will be changed to be to/from the primary address
+of the jail for the given address family.
.Pp
It is possible to identify a process as jailed by examining
.Dq Li /proc/<pid>/status :
Modified: projects/tcp_cc_7.x/lib/libkvm/kvm_proc.c
==============================================================================
--- projects/tcp_cc_7.x/lib/libkvm/kvm_proc.c Tue Feb 10 02:43:07 2009 (r188429)
+++ projects/tcp_cc_7.x/lib/libkvm/kvm_proc.c Tue Feb 10 04:56:08 2009 (r188430)
@@ -54,10 +54,11 @@ __FBSDID("$FreeBSD$");
#include <sys/_lock.h>
#include <sys/_mutex.h>
#include <sys/_task.h>
-#define _WANT_PRISON /* make jail.h give us 'struct prison' */
-#include <sys/jail.h>
+#include <sys/cpuset.h>
#include <sys/user.h>
#include <sys/proc.h>
+#define _WANT_PRISON /* make jail.h give us 'struct prison' */
+#include <sys/jail.h>
#include <sys/exec.h>
#include <sys/stat.h>
#include <sys/sysent.h>
Modified: projects/tcp_cc_7.x/libexec/ftpd/ftpd.8
==============================================================================
--- projects/tcp_cc_7.x/libexec/ftpd/ftpd.8 Tue Feb 10 02:43:07 2009 (r188429)
+++ projects/tcp_cc_7.x/libexec/ftpd/ftpd.8 Tue Feb 10 04:56:08 2009 (r188430)
@@ -205,7 +205,7 @@ for more information.
Note that option is a virtual no-op in
.Fx 5.0
and above; both port
-ranges are indentical by default.
+ranges are identical by default.
.It Fl u
The default file creation mode mask is set to
.Ar umask ,
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list