Date: Sat, 30 Jun 2007 21:45:35 GMT From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 122586 for review Message-ID: <200706302145.l5ULjZde097025@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=122586 Change 122586 by peter@peter_overcee on 2007/06/30 21:44:42 IFC @122585 Affected files ... .. //depot/projects/hammer/ObsoleteFiles.inc#28 integrate .. //depot/projects/hammer/contrib/ipfilter/tools/ipfstat.c#5 integrate .. //depot/projects/hammer/contrib/less/main.c#6 integrate .. //depot/projects/hammer/contrib/less/screen.c#6 integrate .. //depot/projects/hammer/etc/mtree/BSD.include.dist#44 integrate .. //depot/projects/hammer/include/Makefile#62 integrate .. //depot/projects/hammer/lib/libarchive/archive_read_open_fd.c#9 integrate .. //depot/projects/hammer/lib/libarchive/archive_read_open_file.c#12 integrate .. //depot/projects/hammer/lib/libarchive/archive_read_open_filename.c#4 integrate .. //depot/projects/hammer/lib/libc/arm/sys/sbrk.S#3 integrate .. //depot/projects/hammer/lib/libc/net/sctp_sys_calls.c#6 integrate .. //depot/projects/hammer/lib/libgssapi/gss_accept_sec_context.c#3 integrate .. //depot/projects/hammer/lib/libgssapi/gss_display_status.c#2 integrate .. //depot/projects/hammer/lib/libgssapi/gss_export_name.c#2 integrate .. //depot/projects/hammer/lib/libgssapi/gss_indicate_mechs.c#2 integrate .. //depot/projects/hammer/lib/libgssapi/gss_init_sec_context.c#4 integrate .. //depot/projects/hammer/release/doc/en_US.ISO8859-1/hardware/article.sgml#3 integrate .. //depot/projects/hammer/release/doc/share/misc/dev.archlist.txt#44 integrate .. //depot/projects/hammer/release/scripts/src-install.sh#4 integrate .. //depot/projects/hammer/rescue/rescue/Makefile#33 integrate .. //depot/projects/hammer/sbin/Makefile#45 integrate .. //depot/projects/hammer/sbin/mount/mount.8#22 integrate .. //depot/projects/hammer/sbin/mount/mount.c#30 integrate .. //depot/projects/hammer/sbin/mount_umapfs/Makefile#3 delete .. //depot/projects/hammer/sbin/mount_umapfs/mount_umapfs.8#7 delete .. //depot/projects/hammer/sbin/mount_umapfs/mount_umapfs.c#6 delete .. //depot/projects/hammer/sbin/mount_umapfs/sample.group.mapfile#2 delete .. //depot/projects/hammer/sbin/mount_umapfs/sample.user.mapfile#2 delete .. //depot/projects/hammer/sbin/mount_umapfs/umap_manual#2 delete .. //depot/projects/hammer/share/Makefile#10 integrate .. //depot/projects/hammer/share/man/man4/Makefile#92 integrate .. //depot/projects/hammer/share/man/man4/bce.4#4 integrate .. //depot/projects/hammer/share/man/man4/mac.4#6 integrate .. //depot/projects/hammer/share/man/man4/nxge.4#1 branch .. //depot/projects/hammer/share/man/man4/pcm.4#20 integrate .. //depot/projects/hammer/share/man/man4/tty.4#6 integrate .. //depot/projects/hammer/share/man/man4/ucom.4#7 integrate .. //depot/projects/hammer/share/man/man4/uhid.4#6 integrate .. //depot/projects/hammer/share/man/man7/hier.7#34 integrate .. //depot/projects/hammer/share/man/man9/priv.9#4 integrate .. //depot/projects/hammer/share/man/man9/suser.9#12 integrate .. //depot/projects/hammer/share/misc/committers-src.dot#3 integrate .. //depot/projects/hammer/share/mk/bsd.own.mk#18 integrate .. //depot/projects/hammer/share/mk/sys.mk#22 integrate .. //depot/projects/hammer/sys/boot/forth/loader.conf#34 integrate .. //depot/projects/hammer/sys/cam/cam_xpt.c#33 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_da.c#42 integrate .. //depot/projects/hammer/sys/conf/NOTES#120 integrate .. //depot/projects/hammer/sys/conf/files#152 integrate .. //depot/projects/hammer/sys/conf/options#107 integrate .. //depot/projects/hammer/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#4 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi.c#77 integrate .. //depot/projects/hammer/sys/dev/ata/ata-all.h#44 integrate .. //depot/projects/hammer/sys/dev/ata/ata-chipset.c#78 integrate .. //depot/projects/hammer/sys/dev/ata/ata-disk.c#44 integrate .. //depot/projects/hammer/sys/dev/ata/ata-pci.h#47 integrate .. //depot/projects/hammer/sys/dev/ata/ata-usb.c#6 integrate .. //depot/projects/hammer/sys/dev/ath/if_ath.c#53 integrate .. //depot/projects/hammer/sys/dev/ipw/if_ipw.c#18 integrate .. //depot/projects/hammer/sys/dev/isp/isp.c#25 integrate .. //depot/projects/hammer/sys/dev/isp/isp_pci.c#31 integrate .. //depot/projects/hammer/sys/dev/iwi/if_iwi.c#24 integrate .. //depot/projects/hammer/sys/dev/nxge/if_nxge.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/if_nxge.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/build-version.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/version.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xge-debug.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xge-defs.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xge-list.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xge-os-pal.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xge-os-template.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xge-queue.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xgehal-channel.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xgehal-config.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xgehal-device.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xgehal-driver.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xgehal-event.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xgehal-fifo.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xgehal-mgmt.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xgehal-mgmtaux.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xgehal-mm.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xgehal-regs.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xgehal-ring.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xgehal-stats.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xgehal-types.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/include/xgehal.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/xge-osdep.h#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xge-queue.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xgehal-channel-fp.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xgehal-channel.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xgehal-config.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xgehal-device-fp.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xgehal-device.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xgehal-driver.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xgehal-fifo-fp.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xgehal-fifo.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xgehal-mgmt.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xgehal-mgmtaux.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xgehal-mm.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xgehal-ring-fp.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xgehal-ring.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgehal/xgehal-stats.c#1 branch .. //depot/projects/hammer/sys/dev/nxge/xgell-version.h#1 branch .. //depot/projects/hammer/sys/dev/ral/rt2560.c#8 integrate .. //depot/projects/hammer/sys/dev/ral/rt2661.c#7 integrate .. //depot/projects/hammer/sys/dev/rp/rp.c#22 integrate .. //depot/projects/hammer/sys/dev/sym/sym_hipd.c#25 integrate .. //depot/projects/hammer/sys/dev/usb/if_aue.c#35 integrate .. //depot/projects/hammer/sys/dev/usb/if_axe.c#34 integrate .. //depot/projects/hammer/sys/dev/usb/if_axereg.h#11 integrate .. //depot/projects/hammer/sys/dev/usb/if_cdce.c#10 integrate .. //depot/projects/hammer/sys/dev/usb/if_cue.c#30 integrate .. //depot/projects/hammer/sys/dev/usb/if_kue.c#26 integrate .. //depot/projects/hammer/sys/dev/usb/if_ural.c#23 integrate .. //depot/projects/hammer/sys/dev/usb/uark.c#3 integrate .. //depot/projects/hammer/sys/dev/usb/ucom.c#25 integrate .. //depot/projects/hammer/sys/dev/usb/ugen.c#30 integrate .. //depot/projects/hammer/sys/dev/usb/uhub.c#21 integrate .. //depot/projects/hammer/sys/dev/usb/ukbd.c#18 integrate .. //depot/projects/hammer/sys/dev/usb/umass.c#44 integrate .. //depot/projects/hammer/sys/dev/usb/umodem.c#14 integrate .. //depot/projects/hammer/sys/dev/usb/ums.c#22 integrate .. //depot/projects/hammer/sys/dev/usb/usb.h#9 integrate .. //depot/projects/hammer/sys/dev/usb/usb_port.h#20 integrate .. //depot/projects/hammer/sys/dev/usb/usb_quirks.c#18 integrate .. //depot/projects/hammer/sys/dev/usb/usb_quirks.h#9 integrate .. //depot/projects/hammer/sys/dev/usb/usb_subr.c#32 integrate .. //depot/projects/hammer/sys/dev/usb/usbdevs#80 integrate .. //depot/projects/hammer/sys/dev/usb/usbdi.c#17 integrate .. //depot/projects/hammer/sys/dev/usb/usbdi.h#14 integrate .. //depot/projects/hammer/sys/dev/wi/if_wi.c#51 integrate .. //depot/projects/hammer/sys/fs/tmpfs/tmpfs.h#2 integrate .. //depot/projects/hammer/sys/fs/tmpfs/tmpfs_fifoops.c#2 integrate .. //depot/projects/hammer/sys/fs/tmpfs/tmpfs_fifoops.h#2 integrate .. //depot/projects/hammer/sys/fs/tmpfs/tmpfs_subr.c#2 integrate .. //depot/projects/hammer/sys/fs/tmpfs/tmpfs_uma.c#2 delete .. //depot/projects/hammer/sys/fs/tmpfs/tmpfs_uma.h#2 delete .. //depot/projects/hammer/sys/fs/tmpfs/tmpfs_vfsops.c#2 integrate .. //depot/projects/hammer/sys/fs/tmpfs/tmpfs_vnops.c#2 integrate .. //depot/projects/hammer/sys/fs/tmpfs/tmpfs_vnops.h#2 integrate .. //depot/projects/hammer/sys/fs/umapfs/umap.h#5 delete .. //depot/projects/hammer/sys/fs/umapfs/umap_subr.c#8 delete .. //depot/projects/hammer/sys/fs/umapfs/umap_vfsops.c#18 delete .. //depot/projects/hammer/sys/fs/umapfs/umap_vnops.c#14 delete .. //depot/projects/hammer/sys/kern/Make.tags.inc#6 integrate .. //depot/projects/hammer/sys/kern/Makefile#5 integrate .. //depot/projects/hammer/sys/kern/kern_malloc.c#35 integrate .. //depot/projects/hammer/sys/kern/kern_rwlock.c#10 integrate .. //depot/projects/hammer/sys/kern/kern_timeout.c#24 integrate .. //depot/projects/hammer/sys/modules/Makefile#109 integrate .. //depot/projects/hammer/sys/modules/acpi/acpi_video/Makefile#7 integrate .. //depot/projects/hammer/sys/modules/ath_rate_amrr/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/ath_rate_onoe/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/i2c/controllers/alpm/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/i2c/controllers/viapm/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/nxge/Makefile#1 branch .. //depot/projects/hammer/sys/modules/tmpfs/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/umapfs/Makefile#2 delete .. //depot/projects/hammer/sys/net/bridgestp.c#14 integrate .. //depot/projects/hammer/sys/net/if_gre.c#34 integrate .. //depot/projects/hammer/sys/net80211/_ieee80211.h#10 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_freebsd.h#11 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_input.c#38 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_scan.c#2 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_scan.h#2 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_scan_sta.c#2 integrate .. //depot/projects/hammer/sys/netatalk/aarp.h#4 integrate .. //depot/projects/hammer/sys/netatalk/ddp.h#4 integrate .. //depot/projects/hammer/sys/netatm/atm_cm.c#12 integrate .. //depot/projects/hammer/sys/netatm/ipatm/ipatm_event.c#4 integrate .. //depot/projects/hammer/sys/netatm/spans/spans_proto.c#6 integrate .. //depot/projects/hammer/sys/netatm/uni/sscf_uni_lower.c#6 integrate .. //depot/projects/hammer/sys/netatm/uni/uniarp.c#10 integrate .. //depot/projects/hammer/sys/netatm/uni/uniarp_timer.c#4 integrate .. //depot/projects/hammer/sys/netatm/uni/unisig_decode.h#3 integrate .. //depot/projects/hammer/sys/netatm/uni/unisig_proto.c#5 integrate .. //depot/projects/hammer/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#22 integrate .. //depot/projects/hammer/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c#12 integrate .. //depot/projects/hammer/sys/netgraph/ng_parse.c#12 integrate .. //depot/projects/hammer/sys/netinet/sctp_indata.c#9 integrate .. //depot/projects/hammer/sys/netinet/sctputil.c#10 integrate .. //depot/projects/hammer/sys/security/audit/audit.h#8 integrate .. //depot/projects/hammer/sys/security/audit/audit_arg.c#9 integrate .. //depot/projects/hammer/sys/security/audit/audit_bsm.c#8 integrate .. //depot/projects/hammer/sys/security/audit/audit_bsm_token.c#6 integrate .. //depot/projects/hammer/sys/security/audit/audit_syscalls.c#9 integrate .. //depot/projects/hammer/sys/security/mac/mac_audit.c#2 integrate .. //depot/projects/hammer/sys/security/mac/mac_framework.h#4 integrate .. //depot/projects/hammer/sys/security/mac/mac_policy.h#4 integrate .. //depot/projects/hammer/sys/security/mac_stub/mac_stub.c#23 integrate .. //depot/projects/hammer/sys/security/mac_test/mac_test.c#41 integrate .. //depot/projects/hammer/sys/sys/_rwlock.h#4 integrate .. //depot/projects/hammer/sys/sys/rwlock.h#8 integrate .. //depot/projects/hammer/sys/vm/swap_pager.c#52 integrate .. //depot/projects/hammer/sys/vm/vm_pageout.c#43 integrate .. //depot/projects/hammer/tools/regression/fsx/fsx.c#5 integrate .. //depot/projects/hammer/tools/regression/lib/libc/nss/test-gethostby.c#2 integrate .. //depot/projects/hammer/tools/regression/lib/libc/nss/test-gethostby.t#2 integrate .. //depot/projects/hammer/tools/regression/tmpfs/Makefile#2 integrate .. //depot/projects/hammer/tools/regression/tmpfs/t_id_gen#2 delete .. //depot/projects/hammer/tools/tools/README#25 integrate .. //depot/projects/hammer/tools/tools/nxge/Makefile#1 branch .. //depot/projects/hammer/tools/tools/nxge/xge_cmn.h#1 branch .. //depot/projects/hammer/tools/tools/nxge/xge_info.c#1 branch .. //depot/projects/hammer/tools/tools/nxge/xge_info.h#1 branch .. //depot/projects/hammer/tools/tools/nxge/xge_log.c#1 branch .. //depot/projects/hammer/tools/tools/nxge/xge_log.h#1 branch .. //depot/projects/hammer/tools/tools/tinybsd/conf/bridge/tinybsd.basefiles#2 integrate .. //depot/projects/hammer/tools/tools/tinybsd/conf/default/tinybsd.basefiles#2 integrate .. //depot/projects/hammer/tools/tools/tinybsd/conf/firewall/tinybsd.basefiles#2 integrate .. //depot/projects/hammer/tools/tools/tinybsd/conf/minimal/tinybsd.basefiles#2 integrate .. //depot/projects/hammer/tools/tools/tinybsd/conf/vpn/tinybsd.basefiles#2 integrate .. //depot/projects/hammer/tools/tools/tinybsd/conf/wireless/tinybsd.basefiles#2 integrate .. //depot/projects/hammer/tools/tools/tinybsd/conf/wrap/tinybsd.basefiles#2 integrate .. //depot/projects/hammer/usr.bin/calendar/calendars/calendar.freebsd#54 integrate .. //depot/projects/hammer/usr.bin/truss/amd64-fbsd.c#6 integrate .. //depot/projects/hammer/usr.bin/truss/i386-fbsd.c#12 integrate .. //depot/projects/hammer/usr.bin/truss/i386-linux.c#9 integrate .. //depot/projects/hammer/usr.bin/truss/ia64-fbsd.c#11 integrate .. //depot/projects/hammer/usr.bin/truss/main.c#13 integrate .. //depot/projects/hammer/usr.bin/truss/powerpc-fbsd.c#3 integrate .. //depot/projects/hammer/usr.bin/truss/setup.c#7 integrate .. //depot/projects/hammer/usr.bin/truss/sparc64-fbsd.c#9 integrate .. //depot/projects/hammer/usr.bin/usbhidaction/usbhidaction.1#3 integrate .. //depot/projects/hammer/usr.bin/usbhidaction/usbhidaction.c#3 integrate .. //depot/projects/hammer/usr.sbin/portsnap/phttpget/phttpget.c#8 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/dist.c#30 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/dist.h#11 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/help/distributions.hlp#4 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/help/fixit.hlp#3 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/help/media.hlp#2 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/help/network_device.hlp#2 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/help/options.hlp#3 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/help/securelevel.hlp#4 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/help/shortcuts.hlp#3 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/index.c#14 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/install.c#29 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/menus.c#43 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/sysinstall.8#17 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/sysinstall.h#27 integrate .. //depot/projects/hammer/usr.sbin/sysinstall/system.c#9 integrate Differences ... ==== //depot/projects/hammer/ObsoleteFiles.inc#28 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.96 2007/06/18 18:50:59 rafan Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.97 2007/06/25 05:06:52 rafan Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,12 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20070625: umapfs removal +OLD_FILES+=rescue/mount_umapfs +OLD_FILES+=sbin/mount_umapfs +OLD_FILES+=usr/include/fs/umapfs/umap.h +OLD_FILES+=usr/share/man/man8/mount_umapfs.8.gz +OLD_DIRS+=usr/include/fs/umapfs # 20070618: shared library version bump OLD_LIBS+=lib/libalias.so.5 OLD_LIBS+=lib/libbsnmp.so.3 ==== //depot/projects/hammer/contrib/ipfilter/tools/ipfstat.c#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/contrib/ipfilter/tools/ipfstat.c,v 1.5 2007/06/04 02:54:34 darrenr Exp $ */ +/* $FreeBSD: src/contrib/ipfilter/tools/ipfstat.c,v 1.6 2007/06/24 16:39:12 darrenr Exp $ */ /* * Copyright (C) 2002-2006 by Darren Reed. @@ -1811,7 +1811,7 @@ *port = -1; } else if (!sscanf(comma + 1, "%d", port) || (*port < 0) || (*port > 65535)) { - fprintf(stderr, "Invalid port specfication in %s\n", + fprintf(stderr, "Invalid port specification in %s\n", argument); free(s); exit(-2); @@ -1823,6 +1823,7 @@ /* get ip address */ if (!strcasecmp(s, "any")) { ip->in4.s_addr = INADDR_ANY; + ok = 1; #ifdef USE_INET6 ip->in6 = in6addr_any; } else if (use_inet6 && inet_pton(AF_INET6, s, &ip->in6)) { ==== //depot/projects/hammer/contrib/less/main.c#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/contrib/less/main.c,v 1.8 2007/06/21 10:39:24 delphij Exp $ */ +/* $FreeBSD: src/contrib/less/main.c,v 1.9 2007/06/23 15:28:00 delphij Exp $ */ /* * Copyright (C) 1984-2007 Mark Nudelman * @@ -59,6 +59,7 @@ extern int missing_cap; extern int know_dumb; extern int quit_if_one_screen; +extern int no_init; extern int pr_type; @@ -165,7 +166,7 @@ } if (less_is_more && get_quit_at_eof()) - quit_if_one_screen = TRUE; + no_init = quit_if_one_screen = TRUE; #if EDITOR editor = lgetenv("VISUAL"); ==== //depot/projects/hammer/contrib/less/screen.c#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/contrib/less/screen.c,v 1.7 2007/06/21 10:44:50 delphij Exp $ */ +/* $FreeBSD: src/contrib/less/screen.c,v 1.8 2007/06/23 15:28:00 delphij Exp $ */ /* * Copyright (C) 1984-2007 Mark Nudelman * @@ -228,8 +228,6 @@ extern int no_back_scroll; extern int swindow; extern int no_init; -extern int quit_at_eof; -extern int less_is_more; extern int no_keypad; extern int sigs; extern int wscroll; @@ -1211,19 +1209,11 @@ if (sc_e_keypad == NULL) sc_e_keypad = ""; - /* - * This loses for terminals with termcap entries with ti/te strings - * that switch to/from an alternate screen, and we're in quit_at_eof - * (eg, more(1)). - */ - if (!quit_at_eof && !less_is_more) { - sc_init = ltgetstr("ti", &sp); - sc_deinit = ltgetstr("te", &sp); - } - + sc_init = ltgetstr("ti", &sp); if (sc_init == NULL) sc_init = ""; + sc_deinit= ltgetstr("te", &sp); if (sc_deinit == NULL) sc_deinit = ""; ==== //depot/projects/hammer/etc/mtree/BSD.include.dist#44 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/mtree/BSD.include.dist,v 1.114 2007/06/01 18:53:36 ru Exp $ +# $FreeBSD: src/etc/mtree/BSD.include.dist,v 1.115 2007/06/25 05:06:53 rafan Exp $ # # Please see the file src/etc/mtree/README before making changes to this file. # @@ -146,8 +146,6 @@ .. udf .. - umapfs - .. unionfs .. .. ==== //depot/projects/hammer/include/Makefile#62 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 1/4/94 -# $FreeBSD: src/include/Makefile,v 1.270 2007/04/13 01:39:33 pjd Exp $ +# $FreeBSD: src/include/Makefile,v 1.271 2007/06/25 05:06:53 rafan Exp $ # # Doing a "make install" builds /usr/include. @@ -42,8 +42,7 @@ dev/ic dev/iicbus ${_dev_ieee488} dev/lmc dev/ofw \ dev/pbio ${_dev_powermac_nvram} dev/ppbus dev/smbus dev/speaker dev/usb dev/utopia dev/vkbd dev/wi \ fs/devfs fs/fdescfs fs/fifofs fs/msdosfs fs/ntfs fs/nullfs \ - ${_fs_nwfs} fs/portalfs fs/procfs fs/smbfs fs/udf fs/umapfs \ - fs/unionfs \ + ${_fs_nwfs} fs/portalfs fs/procfs fs/smbfs fs/udf fs/unionfs \ geom/cache geom/concat geom/eli geom/gate geom/journal geom/label \ geom/mirror geom/nop geom/raid3 geom/shsec geom/stripe \ netatm/ipatm netatm/sigpvc netatm/spans netatm/uni \ ==== //depot/projects/hammer/lib/libarchive/archive_read_open_fd.c#9 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_open_fd.c,v 1.12 2007/06/18 00:36:54 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_open_fd.c,v 1.13 2007/06/26 03:06:48 kientzle Exp $"); #ifdef HAVE_SYS_STAT_H #include <sys/stat.h> @@ -78,7 +78,8 @@ return (ARCHIVE_FATAL); } mine->fd = fd; - mine->can_skip = 1; + /* lseek() hardly ever works, so disable it by default. See below. */ + mine->can_skip = 0; return (archive_read_open2(a, mine, file_open, file_read, file_skip, file_close)); } @@ -93,8 +94,18 @@ return (ARCHIVE_FATAL); } - if (S_ISREG(st.st_mode)) + if (S_ISREG(st.st_mode)) { archive_read_extract_set_skip_file(a, st.st_dev, st.st_ino); + /* + * Enabling skip here is a performance optimization for + * anything that supports lseek(). On FreeBSD, only + * regular files and raw disk devices support lseek() and + * there's no portable way to determine if a device is + * a raw disk device, so we only enable this optimization + * for regular files. + */ + mine->can_skip = 1; + } return (ARCHIVE_OK); } ==== //depot/projects/hammer/lib/libarchive/archive_read_open_file.c#12 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_open_file.c,v 1.19 2007/01/09 08:05:55 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_open_file.c,v 1.20 2007/06/26 03:06:48 kientzle Exp $"); #ifdef HAVE_SYS_STAT_H #include <sys/stat.h> @@ -51,6 +51,7 @@ FILE *f; size_t block_size; void *buffer; + char can_skip; }; static int file_close(struct archive *, void *); @@ -80,6 +81,8 @@ return (ARCHIVE_FATAL); } mine->f = f; + /* Suppress skip by default. See below. */ + mine->can_skip = 0; return (archive_read_open2(a, mine, file_open, file_read, file_skip, file_close)); } @@ -95,8 +98,11 @@ * it's not a file. (FILE * objects can wrap many kinds * of I/O streams.) */ - if (fstat(fileno(mine->f), &st) == 0 && S_ISREG(st.st_mode)) + if (fstat(fileno(mine->f), &st) == 0 && S_ISREG(st.st_mode)) { archive_read_extract_set_skip_file(a, st.st_dev, st.st_ino); + /* Enable the seek optimization for regular files. */ + mine->can_skip = 1; + } return (ARCHIVE_OK); } @@ -125,21 +131,25 @@ { struct read_FILE_data *mine = (struct read_FILE_data *)client_data; + (void)a; /* UNUSED */ + /* - * Note: the 'fd' and 'filename' versions round the request - * down to a multiple of the block size to ensure proper - * operation on block-oriented media such as tapes. But stdio - * doesn't work with such media (it doesn't ensure blocking), - * so we don't need to bother. + * If we can't skip, return 0 as the amount we did step and + * the caller will work around by reading and discarding. */ + if (!mine->can_skip) + return (0); + if (request == 0) + return (0); + #if HAVE_FSEEKO if (fseeko(mine->f, request, SEEK_CUR) != 0) #else if (fseek(mine->f, request, SEEK_CUR) != 0) #endif { - archive_set_error(a, errno, "Error skipping forward"); - return (ARCHIVE_FATAL); + mine->can_skip = 0; + return (0); } return (request); } ==== //depot/projects/hammer/lib/libarchive/archive_read_open_filename.c#4 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_open_filename.c,v 1.19 2007/06/18 00:36:54 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_open_filename.c,v 1.20 2007/06/26 03:06:48 kientzle Exp $"); #ifdef HAVE_SYS_STAT_H #include <sys/stat.h> @@ -96,7 +96,8 @@ mine->block_size = block_size; mine->buffer = NULL; mine->fd = -1; - mine->can_skip = 1; + /* lseek() almost never works; disable it by default. See below. */ + mine->can_skip = 0; return (archive_read_open2(a, mine, file_open, file_read, file_skip, file_close)); } @@ -123,8 +124,19 @@ if (fstat(mine->fd, &st) == 0) { /* If we're reading a file from disk, ensure that we don't overwrite it with an extracted file. */ - if (S_ISREG(st.st_mode)) + if (S_ISREG(st.st_mode)) { archive_read_extract_set_skip_file(a, st.st_dev, st.st_ino); + /* + * Enabling skip here is a performance + * optimization for anything that supports + * lseek(). On FreeBSD, only regular files + * and raw disk devices support lseek() and + * there's no portable way to determine if a + * device is a raw disk device, so we only + * enable this optimization for regular files. + */ + mine->can_skip = 1; + } /* Remember mode so close can decide whether to flush. */ mine->st_mode = st.st_mode; } else { ==== //depot/projects/hammer/lib/libc/arm/sys/sbrk.S#3 (text+ko) ==== @@ -32,10 +32,10 @@ */ #include <machine/asm.h> -__FBSDID("$FreeBSD: src/lib/libc/arm/sys/sbrk.S,v 1.2 2004/11/09 16:49:14 cognet Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/arm/sys/sbrk.S,v 1.3 2007/06/27 02:45:37 kan Exp $"); #include "SYS.h" - .globl _C_LABEL(end) + .globl _C_LABEL(_end) #ifdef WEAK_ALIAS WEAK_ALIAS(sbrk, _sbrk) @@ -46,7 +46,7 @@ .globl CURBRK .type CURBRK,#object CURBRK: - .word _C_LABEL(end) + .word _C_LABEL(_end) /* * Change the data segment size ==== //depot/projects/hammer/lib/libc/net/sctp_sys_calls.c#6 (text+ko) ==== @@ -29,7 +29,7 @@ * SUCH DAMAGE. */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/lib/libc/net/sctp_sys_calls.c,v 1.9 2007/06/22 13:59:54 rrs Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/net/sctp_sys_calls.c,v 1.11 2007/06/26 02:07:47 mjacob Exp $"); #include <stdio.h> #include <string.h> #include <errno.h> @@ -185,10 +185,18 @@ /* validate all the addresses and get the size */ for (i = 0; i < addrcnt; i++) { if (at->sa_family == AF_INET) { + if (at->sa_len != sizeof(struct sockaddr_in)) { + errno = EINVAL; + return (-1); + } memcpy(cpto, at, at->sa_len); cpto = ((caddr_t)cpto + at->sa_len); len += at->sa_len; } else if (at->sa_family == AF_INET6) { + if (at->sa_len != sizeof(struct sockaddr_in6)) { + errno = EINVAL; + return (-1); + } if (IN6_IS_ADDR_V4MAPPED(&((struct sockaddr_in6 *)at)->sin6_addr)) { len += sizeof(struct sockaddr_in); in6_sin6_2_sin((struct sockaddr_in *)cpto, (struct sockaddr_in6 *)at); @@ -205,7 +213,8 @@ } if (len > (sizeof(buf) - sizeof(int))) { /* Never enough memory */ - return (E2BIG); + errno = E2BIG; + return (-1); } at = (struct sockaddr *)((caddr_t)at + at->sa_len); cnt++; @@ -231,7 +240,7 @@ { struct sctp_getaddresses *gaddrs; struct sockaddr *sa; - int i, sz, fam, argsz; + int i, sz, argsz; /* validate the flags */ if ((flags != SCTP_BINDX_ADD_ADDR) && @@ -251,23 +260,30 @@ errno = ENOMEM; return (-1); } - gaddrs->sget_assoc_id = 0; sa = addrs; for (i = 0; i < addrcnt; i++) { sz = sa->sa_len; - fam = sa->sa_family; - if ((fam != AF_INET) && (fam != AF_INET6)) { + if (sa->sa_family == AF_INET) { + if (sa->sa_len != sizeof(struct sockaddr_in)) + goto out_error; + } else if (sa->sa_family == AF_INET6) { + if (sa->sa_len != sizeof(struct sockaddr_in6)) + goto out_error; + } else { + /* invalid address family specified */ + out_error: free(gaddrs); errno = EINVAL; return (-1); } + memset(gaddrs, 0, argsz); + gaddrs->sget_assoc_id = 0; memcpy(gaddrs->addr, sa, sz); - if (setsockopt(sd, IPPROTO_SCTP, flags, - gaddrs, (socklen_t) argsz) != 0) { + if (setsockopt(sd, IPPROTO_SCTP, flags, gaddrs, + (socklen_t) argsz) != 0) { free(gaddrs); return (-1); } - memset(gaddrs, 0, argsz); sa = (struct sockaddr *)((caddr_t)sa + sz); } free(gaddrs); @@ -315,7 +331,6 @@ errno = ENOMEM; return (-1); } - memset(addrs, 0, siz); addrs->sget_assoc_id = id; /* Now lets get the array of addresses */ if (getsockopt(sd, IPPROTO_SCTP, SCTP_GET_PEER_ADDRESSES, @@ -380,7 +395,6 @@ errno = ENOMEM; return (-1); } - memset(addrs, 0, siz); addrs->sget_assoc_id = id; /* Now lets get the array of addresses */ if (getsockopt(sd, IPPROTO_SCTP, SCTP_GET_LOCAL_ADDRESSES, addrs, ==== //depot/projects/hammer/lib/libgssapi/gss_accept_sec_context.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libgssapi/gss_accept_sec_context.c,v 1.2 2007/04/04 02:40:59 kan Exp $ + * $FreeBSD: src/lib/libgssapi/gss_accept_sec_context.c,v 1.3 2007/06/30 07:47:45 dfr Exp $ */ #include <gssapi/gssapi.h> @@ -48,7 +48,7 @@ OM_uint32 *time_rec, gss_cred_id_t *delegated_cred_handle) { - OM_uint32 major_status; + OM_uint32 major_status, mech_ret_flags; struct _gss_mech_switch *m; struct _gss_context *ctx = (struct _gss_context *) *context_handle; struct _gss_cred *cred = (struct _gss_cred *) acceptor_cred_handle; @@ -165,7 +165,7 @@ &src_mn, mech_type, output_token, - ret_flags, + &mech_ret_flags, time_rec, &delegated_mc); if (major_status != GSS_S_COMPLETE && @@ -187,7 +187,7 @@ *src_name = (gss_name_t) name; } - if (*ret_flags & GSS_C_DELEG_FLAG) { + if (mech_ret_flags & GSS_C_DELEG_FLAG) { if (!delegated_cred_handle) { m->gm_release_cred(minor_status, &delegated_mc); *ret_flags &= ~GSS_C_DELEG_FLAG; @@ -217,6 +217,8 @@ } } + if (ret_flags) + *ret_flags = mech_ret_flags; *context_handle = (gss_ctx_id_t) ctx; return (major_status); } ==== //depot/projects/hammer/lib/libgssapi/gss_display_status.c#2 (text+ko) ==== @@ -23,46 +23,122 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libgssapi/gss_display_status.c,v 1.1 2005/12/29 14:40:20 dfr Exp $ + * $FreeBSD: src/lib/libgssapi/gss_display_status.c,v 1.2 2007/06/30 07:47:45 dfr Exp $ + */ +/* + * Copyright (c) 1998 - 2005 Kungliga Tekniska Högskolan + * (Royal Institute of Technology, Stockholm, Sweden). + * 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. + * + * 3. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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. */ #include <gssapi/gssapi.h> #include <string.h> +#include <errno.h> #include "mech_switch.h" -struct _gss_status_desc { - OM_uint32 gs_status; - const char* gs_desc; -}; +static const char * +calling_error(OM_uint32 v) +{ + static const char *msgs[] = { + NULL, /* 0 */ + "A required input parameter could not be read.", /* */ + "A required output parameter could not be written.", /* */ + "A parameter was malformed" + }; + + v >>= GSS_C_CALLING_ERROR_OFFSET; + + if (v == 0) + return ""; + else if (v >= sizeof(msgs)/sizeof(*msgs)) + return "unknown calling error"; + else + return msgs[v]; +} + +static const char * +routine_error(OM_uint32 v) +{ + static const char *msgs[] = { + NULL, /* 0 */ + "An unsupported mechanism was requested", + "An invalid name was supplied", + "A supplied name was of an unsupported type", + "Incorrect channel bindings were supplied", + "An invalid status code was supplied", + "A token had an invalid MIC", + "No credentials were supplied, " + "or the credentials were unavailable or inaccessible.", + "No context has been established", + "A token was invalid", + "A credential was invalid", + "The referenced credentials have expired", + "The context has expired", + "Miscellaneous failure (see text)", + "The quality-of-protection requested could not be provide", + "The operation is forbidden by local security policy", + "The operation or option is not available", + "The requested credential element already exists", + "The provided name was not a mechanism name.", + }; + + v >>= GSS_C_ROUTINE_ERROR_OFFSET; + + if (v == 0) + return ""; + else if (v >= sizeof(msgs)/sizeof(*msgs)) + return "unknown routine error"; + else + return msgs[v]; +} + +static const char * +supplementary_error(OM_uint32 v) +{ + static const char *msgs[] = { + "normal completion", + "continuation call to routine required", + "duplicate per-message token detected", + "timed-out per-message token detected", + "reordered (early) per-message token detected", + "skipped predecessor token(s) detected" + }; -static struct _gss_status_desc _gss_status_descs[] = { - GSS_S_BAD_MECH, "An unsupported mechanism was requested", - GSS_S_BAD_NAME, "An invalid name was supplied", - GSS_S_BAD_NAMETYPE, "A supplied name was of an unsupported type", - GSS_S_BAD_BINDINGS, "Incorrect channel bindings were supplied", - GSS_S_BAD_STATUS, "An invalid status code was supplied", - GSS_S_BAD_MIC, "A token had an invalid MIC", - GSS_S_NO_CRED, "No credentials were supplied, or the " - "credentials were unavailable or inaccessible", - GSS_S_NO_CONTEXT, "No context has been established", - GSS_S_DEFECTIVE_TOKEN, "A token was invalid", - GSS_S_DEFECTIVE_CREDENTIAL, "A credential was invalid", - GSS_S_CREDENTIALS_EXPIRED, "The referenced credentials have expired", - GSS_S_CONTEXT_EXPIRED, "The context has expired", - GSS_S_FAILURE, "Miscellaneous failure", - GSS_S_BAD_QOP, "The quality-of-protection requested could " - "not be provided", - GSS_S_UNAUTHORIZED, "The operation is forbidden by local security " - "policy", - GSS_S_UNAVAILABLE, "The operation or option is unavailable", - GSS_S_DUPLICATE_ELEMENT, "The requested credential element already " - "exists", - GSS_S_NAME_NOT_MN, "The provided name was not a mechanism name" -}; -#define _gss_status_desc_count \ - sizeof(_gss_status_descs) / sizeof(_gss_status_descs[0]) + v >>= GSS_C_SUPPLEMENTARY_OFFSET; + if (v >= sizeof(msgs)/sizeof(*msgs)) + return "unknown routine error"; + else + return msgs[v]; +} OM_uint32 gss_display_status(OM_uint32 *minor_status, @@ -73,31 +149,29 @@ gss_buffer_t status_string) { OM_uint32 major_status; - struct _gss_mech_switch *m; - int i; - const char *message; *minor_status = 0; switch (status_type) { - case GSS_C_GSS_CODE: - for (i = 0; i < _gss_status_desc_count; i++) { - if (_gss_status_descs[i].gs_status == status_value) { - message = _gss_status_descs[i].gs_desc; - status_string->length = strlen(message); - status_string->value = strdup(message); - return (GSS_S_COMPLETE); - } - } + case GSS_C_GSS_CODE: { + char *buf; + + if (GSS_SUPPLEMENTARY_INFO(status_value)) + asprintf(&buf, "%s", supplementary_error( + GSS_SUPPLEMENTARY_INFO(status_value))); + else + asprintf (&buf, "%s %s", + calling_error(GSS_CALLING_ERROR(status_value)), + routine_error(GSS_ROUTINE_ERROR(status_value))); + + status_string->length = strlen(buf); + status_string->value = buf; - /* - * Fall through to attempt to get some underlying - * implementation to describe the value. - */ - case GSS_C_MECH_CODE: - SLIST_FOREACH(m, &_gss_mechs, gm_link) { - if (mech_type && - !_gss_oid_equal(&m->gm_mech_oid, mech_type)) - continue; + return GSS_S_COMPLETE; + } + case GSS_C_MECH_CODE: { + struct _gss_mech_switch *m; + m = _gss_find_mech_switch(mech_type); + if (m) { major_status = m->gm_display_status(minor_status, status_value, status_type, mech_type, message_content, status_string); @@ -105,6 +179,8 @@ return (GSS_S_COMPLETE); } } - + } + status_string->value = NULL; + status_string->length = 0; return (GSS_S_BAD_STATUS); } ==== //depot/projects/hammer/lib/libgssapi/gss_export_name.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libgssapi/gss_export_name.c,v 1.1 2005/12/29 14:40:20 dfr Exp $ + * $FreeBSD: src/lib/libgssapi/gss_export_name.c,v 1.2 2007/06/30 07:47:45 dfr Exp $ */ #include <gssapi/gssapi.h> @@ -39,6 +39,9 @@ struct _gss_name *name = (struct _gss_name *) input_name; struct _gss_mechanism_name *mn; + exported_name->value = NULL; + exported_name->length = 0; + /* * If this name already has any attached MNs, export the first * one, otherwise export based on the first mechanism in our ==== //depot/projects/hammer/lib/libgssapi/gss_indicate_mechs.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libgssapi/gss_indicate_mechs.c,v 1.1 2005/12/29 14:40:20 dfr Exp $ + * $FreeBSD: src/lib/libgssapi/gss_indicate_mechs.c,v 1.2 2007/06/30 07:47:45 dfr Exp $ */ #include <gssapi/gssapi.h> @@ -46,13 +46,18 @@ return (major_status); SLIST_FOREACH(m, &_gss_mechs, gm_link) { - major_status = m->gm_indicate_mechs(minor_status, &set); - if (major_status) - continue; - for (i = 0; i < set->count; i++) - major_status = gss_add_oid_set_member(minor_status, - &set->elements[i], mech_set); >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200706302145.l5ULjZde097025>