PERFORCE change 74639 for review
David Xu
davidxu at FreeBSD.org
Wed Apr 6 23:28:58 PDT 2005
http://perforce.freebsd.org/chv.cgi?CH=74639
Change 74639 by davidxu at davidxu_celeron on 2005/04/07 06:28:43
IFC.
Affected files ...
.. //depot/projects/davidxu_thread/src/Makefile.inc1#12 integrate
.. //depot/projects/davidxu_thread/src/etc/defaults/rc.conf#9 integrate
.. //depot/projects/davidxu_thread/src/etc/rc.d/dumpon#2 integrate
.. //depot/projects/davidxu_thread/src/etc/rc.d/pf#2 integrate
.. //depot/projects/davidxu_thread/src/gnu/usr.bin/gdb/libgdb/fbsd-threads.c#4 integrate
.. //depot/projects/davidxu_thread/src/include/Makefile#8 integrate
.. //depot/projects/davidxu_thread/src/include/pthread.h#3 integrate
.. //depot/projects/davidxu_thread/src/lib/libalias/alias.c#2 integrate
.. //depot/projects/davidxu_thread/src/lib/libarchive/archive_private.h#2 integrate
.. //depot/projects/davidxu_thread/src/lib/libarchive/archive_read.c#3 integrate
.. //depot/projects/davidxu_thread/src/lib/libarchive/archive_read_support_format_cpio.c#4 integrate
.. //depot/projects/davidxu_thread/src/lib/libarchive/archive_read_support_format_iso9660.c#2 integrate
.. //depot/projects/davidxu_thread/src/lib/libarchive/archive_read_support_format_tar.c#5 integrate
.. //depot/projects/davidxu_thread/src/lib/libarchive/archive_read_support_format_zip.c#2 integrate
.. //depot/projects/davidxu_thread/src/lib/libc/net/Makefile.inc#3 integrate
.. //depot/projects/davidxu_thread/src/lib/libc/net/gai_strerror.c#1 branch
.. //depot/projects/davidxu_thread/src/lib/libc/net/getaddrinfo.c#3 integrate
.. //depot/projects/davidxu_thread/src/lib/libc/net/name6.c#4 integrate
.. //depot/projects/davidxu_thread/src/lib/libc/yp/yplib.c#4 integrate
.. //depot/projects/davidxu_thread/src/lib/libthr/Makefile#3 integrate
.. //depot/projects/davidxu_thread/src/lib/libthr/pthread.map#2 integrate
.. //depot/projects/davidxu_thread/src/lib/libthr/thread/thr_barrier.c#3 integrate
.. //depot/projects/davidxu_thread/src/lib/libthr/thread/thr_init.c#6 integrate
.. //depot/projects/davidxu_thread/src/lib/libthr/thread/thr_list.c#2 integrate
.. //depot/projects/davidxu_thread/src/lib/libthr/thread/thr_private.h#6 integrate
.. //depot/projects/davidxu_thread/src/lib/libthread_db/libpthread_db.c#3 integrate
.. //depot/projects/davidxu_thread/src/lib/libthread_db/libthr_db.c#4 integrate
.. //depot/projects/davidxu_thread/src/lib/libthread_db/thread_db.h#3 integrate
.. //depot/projects/davidxu_thread/src/lib/msun/Makefile#7 integrate
.. //depot/projects/davidxu_thread/src/lib/msun/man/exp.3#4 integrate
.. //depot/projects/davidxu_thread/src/lib/msun/man/math.3#6 integrate
.. //depot/projects/davidxu_thread/src/lib/msun/src/k_rem_pio2f.c#2 integrate
.. //depot/projects/davidxu_thread/src/lib/msun/src/math.h#6 integrate
.. //depot/projects/davidxu_thread/src/lib/msun/src/s_exp2.c#1 branch
.. //depot/projects/davidxu_thread/src/lib/msun/src/s_exp2f.c#1 branch
.. //depot/projects/davidxu_thread/src/libexec/getty/chat.c#2 integrate
.. //depot/projects/davidxu_thread/src/libexec/getty/extern.h#2 integrate
.. //depot/projects/davidxu_thread/src/libexec/getty/init.c#2 integrate
.. //depot/projects/davidxu_thread/src/libexec/getty/main.c#2 integrate
.. //depot/projects/davidxu_thread/src/libexec/rexecd/rexecd.c#7 integrate
.. //depot/projects/davidxu_thread/src/libexec/rtld-aout/shlib.c#2 edit
.. //depot/projects/davidxu_thread/src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#8 integrate
.. //depot/projects/davidxu_thread/src/release/doc/share/sgml/release.ent#3 integrate
.. //depot/projects/davidxu_thread/src/release/doc/zh_CN.GB2312/hardware/common/dev.sgml#3 integrate
.. //depot/projects/davidxu_thread/src/release/doc/zh_CN.GB2312/installation/common/install.sgml#3 integrate
.. //depot/projects/davidxu_thread/src/release/doc/zh_CN.GB2312/relnotes/common/new.sgml#3 integrate
.. //depot/projects/davidxu_thread/src/sbin/devfs/devfs.8#5 integrate
.. //depot/projects/davidxu_thread/src/sbin/ipfw/ipfw2.c#4 integrate
.. //depot/projects/davidxu_thread/src/sbin/restore/dirs.c#3 integrate
.. //depot/projects/davidxu_thread/src/sbin/restore/restore.h#3 integrate
.. //depot/projects/davidxu_thread/src/share/man/man4/ng_source.4#4 integrate
.. //depot/projects/davidxu_thread/src/share/man/man9/devclass_get_drivers.9#1 branch
.. //depot/projects/davidxu_thread/src/share/man/man9/devclass_get_maxunit.9#2 integrate
.. //depot/projects/davidxu_thread/src/sys/alpha/alpha/critical.c#2 delete
.. //depot/projects/davidxu_thread/src/sys/alpha/alpha/machdep.c#8 integrate
.. //depot/projects/davidxu_thread/src/sys/alpha/alpha/mp_machdep.c#4 integrate
.. //depot/projects/davidxu_thread/src/sys/alpha/alpha/vm_machdep.c#5 integrate
.. //depot/projects/davidxu_thread/src/sys/alpha/include/critical.h#4 delete
.. //depot/projects/davidxu_thread/src/sys/alpha/include/proc.h#3 integrate
.. //depot/projects/davidxu_thread/src/sys/amd64/amd64/critical.c#2 delete
.. //depot/projects/davidxu_thread/src/sys/amd64/amd64/machdep.c#7 integrate
.. //depot/projects/davidxu_thread/src/sys/amd64/amd64/mp_machdep.c#5 integrate
.. //depot/projects/davidxu_thread/src/sys/amd64/amd64/vm_machdep.c#5 integrate
.. //depot/projects/davidxu_thread/src/sys/amd64/include/critical.h#4 delete
.. //depot/projects/davidxu_thread/src/sys/amd64/include/proc.h#3 integrate
.. //depot/projects/davidxu_thread/src/sys/amd64/include/tss.h#2 integrate
.. //depot/projects/davidxu_thread/src/sys/amd64/linux32/linux32_machdep.c#4 integrate
.. //depot/projects/davidxu_thread/src/sys/arm/arm/critical.c#2 delete
.. //depot/projects/davidxu_thread/src/sys/arm/arm/machdep.c#6 integrate
.. //depot/projects/davidxu_thread/src/sys/arm/arm/vm_machdep.c#6 integrate
.. //depot/projects/davidxu_thread/src/sys/arm/include/critical.h#2 delete
.. //depot/projects/davidxu_thread/src/sys/arm/include/proc.h#4 integrate
.. //depot/projects/davidxu_thread/src/sys/boot/pc98/boot2/Makefile#3 integrate
.. //depot/projects/davidxu_thread/src/sys/compat/ia32/ia32_signal.h#2 integrate
.. //depot/projects/davidxu_thread/src/sys/conf/Makefile.pc98#4 integrate
.. //depot/projects/davidxu_thread/src/sys/conf/NOTES#9 integrate
.. //depot/projects/davidxu_thread/src/sys/conf/files.alpha#4 integrate
.. //depot/projects/davidxu_thread/src/sys/conf/files.amd64#9 integrate
.. //depot/projects/davidxu_thread/src/sys/conf/files.arm#3 integrate
.. //depot/projects/davidxu_thread/src/sys/conf/files.i386#10 integrate
.. //depot/projects/davidxu_thread/src/sys/conf/files.ia64#3 integrate
.. //depot/projects/davidxu_thread/src/sys/conf/files.pc98#5 integrate
.. //depot/projects/davidxu_thread/src/sys/conf/files.powerpc#2 integrate
.. //depot/projects/davidxu_thread/src/sys/conf/files.sparc64#5 integrate
.. //depot/projects/davidxu_thread/src/sys/conf/kern.post.mk#5 integrate
.. //depot/projects/davidxu_thread/src/sys/conf/kmod.mk#6 integrate
.. //depot/projects/davidxu_thread/src/sys/conf/options#8 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/acpi_support/acpi_fujitsu.c#2 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/acpica/acpi_cpu.c#4 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/acpica/acpi_if.m#5 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/acpica/acpi_perf.c#6 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/acpica/acpivar.h#9 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ata/ata-all.c#5 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ata/ata-all.h#4 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ata/ata-card.c#4 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ata/ata-cbus.c#3 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ata/ata-chipset.c#6 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ata/ata-isa.c#3 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ata/ata-lowlevel.c#8 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ata/ata-pci.c#4 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ata/ata-pci.h#4 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ata/atapi-cam.c#2 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ath/if_ath.c#8 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ath/if_athvar.h#5 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/em/if_em.c#5 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/hme/if_hme_sbus.c#3 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ieee488/upd7210.c#4 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ixgb/if_ixgb.c#6 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/ixgb/if_ixgb.h#4 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/sio/sio_pci.c#3 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/syscons/apm/apm_saver.c#2 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/usb/uftdi.c#3 integrate
.. //depot/projects/davidxu_thread/src/sys/dev/usb/usbdevs#8 integrate
.. //depot/projects/davidxu_thread/src/sys/fs/unionfs/union_vnops.c#8 integrate
.. //depot/projects/davidxu_thread/src/sys/geom/concat/g_concat.c#3 integrate
.. //depot/projects/davidxu_thread/src/sys/i386/cpufreq/est.c#3 integrate
.. //depot/projects/davidxu_thread/src/sys/i386/i386/critical.c#2 delete
.. //depot/projects/davidxu_thread/src/sys/i386/i386/machdep.c#7 integrate
.. //depot/projects/davidxu_thread/src/sys/i386/i386/mp_machdep.c#5 integrate
.. //depot/projects/davidxu_thread/src/sys/i386/i386/vm_machdep.c#5 integrate
.. //depot/projects/davidxu_thread/src/sys/i386/include/apm_bios.h#3 integrate
.. //depot/projects/davidxu_thread/src/sys/i386/include/bus.h#2 integrate
.. //depot/projects/davidxu_thread/src/sys/i386/include/bus_at386.h#5 delete
.. //depot/projects/davidxu_thread/src/sys/i386/include/bus_pc98.h#3 delete
.. //depot/projects/davidxu_thread/src/sys/i386/include/critical.h#4 delete
.. //depot/projects/davidxu_thread/src/sys/i386/include/legacyvar.h#2 integrate
.. //depot/projects/davidxu_thread/src/sys/i386/include/md_var.h#2 integrate
.. //depot/projects/davidxu_thread/src/sys/i386/include/pci_cfgreg.h#3 integrate
.. //depot/projects/davidxu_thread/src/sys/i386/include/proc.h#3 integrate
.. //depot/projects/davidxu_thread/src/sys/ia64/ia64/critical.c#2 delete
.. //depot/projects/davidxu_thread/src/sys/ia64/ia64/machdep.c#7 integrate
.. //depot/projects/davidxu_thread/src/sys/ia64/ia64/mp_machdep.c#2 integrate
.. //depot/projects/davidxu_thread/src/sys/ia64/ia64/vm_machdep.c#5 integrate
.. //depot/projects/davidxu_thread/src/sys/ia64/include/critical.h#4 delete
.. //depot/projects/davidxu_thread/src/sys/ia64/include/proc.h#3 integrate
.. //depot/projects/davidxu_thread/src/sys/kern/imgact_elf.c#3 integrate
.. //depot/projects/davidxu_thread/src/sys/kern/kern_fork.c#6 integrate
.. //depot/projects/davidxu_thread/src/sys/kern/kern_idle.c#3 integrate
.. //depot/projects/davidxu_thread/src/sys/kern/kern_jail.c#4 integrate
.. //depot/projects/davidxu_thread/src/sys/kern/kern_lock.c#8 integrate
.. //depot/projects/davidxu_thread/src/sys/kern/kern_mutex.c#3 integrate
.. //depot/projects/davidxu_thread/src/sys/kern/kern_proc.c#7 integrate
.. //depot/projects/davidxu_thread/src/sys/kern/kern_switch.c#7 integrate
.. //depot/projects/davidxu_thread/src/sys/kern/subr_bus.c#9 integrate
.. //depot/projects/davidxu_thread/src/sys/kern/subr_prf.c#4 integrate
.. //depot/projects/davidxu_thread/src/sys/kern/vfs_default.c#8 integrate
.. //depot/projects/davidxu_thread/src/sys/kern/vfs_lookup.c#6 integrate
.. //depot/projects/davidxu_thread/src/sys/kern/vfs_subr.c#10 integrate
.. //depot/projects/davidxu_thread/src/sys/kern/vfs_vnops.c#8 integrate
.. //depot/projects/davidxu_thread/src/sys/modules/ata/Makefile#2 integrate
.. //depot/projects/davidxu_thread/src/sys/modules/ata/atapicam/Makefile#1 branch
.. //depot/projects/davidxu_thread/src/sys/modules/cpufreq/Makefile#4 integrate
.. //depot/projects/davidxu_thread/src/sys/net80211/ieee80211_crypto.h#4 integrate
.. //depot/projects/davidxu_thread/src/sys/net80211/ieee80211_freebsd.h#4 integrate
.. //depot/projects/davidxu_thread/src/sys/net80211/ieee80211_input.c#8 integrate
.. //depot/projects/davidxu_thread/src/sys/net80211/ieee80211_node.h#4 integrate
.. //depot/projects/davidxu_thread/src/sys/net80211/ieee80211_proto.h#4 integrate
.. //depot/projects/davidxu_thread/src/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c#3 integrate
.. //depot/projects/davidxu_thread/src/sys/netgraph/bluetooth/socket/ng_btsocket.c#4 integrate
.. //depot/projects/davidxu_thread/src/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#4 integrate
.. //depot/projects/davidxu_thread/src/sys/netgraph/ng_iface.c#6 integrate
.. //depot/projects/davidxu_thread/src/sys/netgraph/ng_source.c#6 integrate
.. //depot/projects/davidxu_thread/src/sys/netgraph/ng_source.h#5 integrate
.. //depot/projects/davidxu_thread/src/sys/netinet/ip_dummynet.c#5 integrate
.. //depot/projects/davidxu_thread/src/sys/netinet/ip_fw_pfil.c#4 integrate
.. //depot/projects/davidxu_thread/src/sys/pc98/i386/machdep.c#8 integrate
.. //depot/projects/davidxu_thread/src/sys/pc98/include/apm_bios.h#2 integrate
.. //depot/projects/davidxu_thread/src/sys/pc98/include/bus.h#2 integrate
.. //depot/projects/davidxu_thread/src/sys/pc98/include/bus_pc98.h#2 delete
.. //depot/projects/davidxu_thread/src/sys/pc98/include/critical.h#2 delete
.. //depot/projects/davidxu_thread/src/sys/pc98/include/md_var.h#2 integrate
.. //depot/projects/davidxu_thread/src/sys/pc98/include/pci_cfgreg.h#2 integrate
.. //depot/projects/davidxu_thread/src/sys/powerpc/include/critical.h#4 delete
.. //depot/projects/davidxu_thread/src/sys/powerpc/include/proc.h#2 integrate
.. //depot/projects/davidxu_thread/src/sys/powerpc/powerpc/critical.c#2 delete
.. //depot/projects/davidxu_thread/src/sys/powerpc/powerpc/machdep.c#8 integrate
.. //depot/projects/davidxu_thread/src/sys/powerpc/powerpc/vm_machdep.c#5 integrate
.. //depot/projects/davidxu_thread/src/sys/sparc64/include/critical.h#4 delete
.. //depot/projects/davidxu_thread/src/sys/sparc64/include/proc.h#3 integrate
.. //depot/projects/davidxu_thread/src/sys/sparc64/sparc64/critical.c#2 delete
.. //depot/projects/davidxu_thread/src/sys/sparc64/sparc64/machdep.c#7 integrate
.. //depot/projects/davidxu_thread/src/sys/sparc64/sparc64/mp_machdep.c#2 integrate
.. //depot/projects/davidxu_thread/src/sys/sparc64/sparc64/vm_machdep.c#5 integrate
.. //depot/projects/davidxu_thread/src/sys/sys/bus.h#7 integrate
.. //depot/projects/davidxu_thread/src/sys/sys/lock.h#2 integrate
.. //depot/projects/davidxu_thread/src/sys/sys/mutex.h#5 integrate
.. //depot/projects/davidxu_thread/src/sys/sys/systm.h#8 integrate
.. //depot/projects/davidxu_thread/src/sys/ufs/ffs/ffs_extern.h#4 integrate
.. //depot/projects/davidxu_thread/src/sys/ufs/ffs/ffs_inode.c#6 integrate
.. //depot/projects/davidxu_thread/src/sys/ufs/ffs/ffs_snapshot.c#8 integrate
.. //depot/projects/davidxu_thread/src/sys/ufs/ffs/ffs_softdep.c#7 integrate
.. //depot/projects/davidxu_thread/src/sys/ufs/ffs/ffs_vfsops.c#8 integrate
.. //depot/projects/davidxu_thread/src/sys/vm/vm_meter.c#4 integrate
.. //depot/projects/davidxu_thread/src/sys/vm/vnode_pager.c#8 integrate
.. //depot/projects/davidxu_thread/src/usr.bin/calendar/calendars/calendar.birthday#3 integrate
.. //depot/projects/davidxu_thread/src/usr.bin/make/job.c#11 integrate
.. //depot/projects/davidxu_thread/src/usr.bin/mt/mt.1#3 integrate
.. //depot/projects/davidxu_thread/src/usr.bin/top/machine.c#2 integrate
Differences ...
==== //depot/projects/davidxu_thread/src/Makefile.inc1#12 (text+ko) ====
@@ -1,5 +1,5 @@
#
-# $FreeBSD: src/Makefile.inc1,v 1.490 2005/03/27 19:35:09 ru Exp $
+# $FreeBSD: src/Makefile.inc1,v 1.492 2005/04/06 01:55:43 peter Exp $
#
# Make command line options:
# -DNO_DYNAMICROOT do not link /bin and /sbin dynamically
@@ -223,6 +223,7 @@
# Yes, the flags are redundant.
LIB32MAKEENV= MAKEOBJDIRPREFIX=${OBJTREE}/lib32 \
_SHLIBDIRPREFIX=${LIB32TMP} \
+ MACHINE=i386 \
MACHINE_ARCH=i386 \
INSTALL="sh ${.CURDIR}/tools/install.sh" \
PATH=${TMPPATH} \
@@ -454,7 +455,7 @@
WMAKE_TGTS+= _cross-tools
.endif
WMAKE_TGTS+= _includes _libraries _depend everything
-.if ${TARGET_ARCH} == "amd64" && defined(WITH_LIB32)
+.if ${TARGET_ARCH} == "amd64" && !defined(NO_LIB32)
WMAKE_TGTS+= build32
.endif
@@ -540,7 +541,7 @@
@echo ">>> Installing everything"
@echo "--------------------------------------------------------------"
${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install
-.if ${TARGET_ARCH} == "amd64" && defined(WITH_LIB32)
+.if ${TARGET_ARCH} == "amd64" && !defined(NO_LIB32)
${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install32
.endif
==== //depot/projects/davidxu_thread/src/etc/defaults/rc.conf#9 (text+ko) ====
@@ -15,7 +15,7 @@
# For a more detailed explanation of all the rc.conf variables, please
# refer to the rc.conf(5) manual page.
#
-# $FreeBSD: src/etc/defaults/rc.conf,v 1.243 2005/03/12 21:09:15 trhodes Exp $
+# $FreeBSD: src/etc/defaults/rc.conf,v 1.244 2005/04/03 21:45:20 njl Exp $
##############################################################
### Important initial Boot-time options ####################
@@ -474,9 +474,9 @@
devfs_set_rulesets="" # A list of /mount/dev=ruleset_name settings to
# apply (must be mounted already, i.e. fstab(5))
performance_cx_lowest="HIGH" # Online CPU idle state
-performance_cpu_freq="NONE" # Online CPU frequency
+performance_cpu_freq="HIGH" # Online CPU frequency
economy_cx_lowest="HIGH" # Offline CPU idle state
-economy_cpu_freq="NONE" # Offline CPU frequency
+economy_cpu_freq="HIGH" # Offline CPU frequency
virecover_enable="YES" # Perform housekeeping for the vi(1) editor
ugidfw_enable="NO" # Load mac_bsdextended(4) rules on boot
bsdextended_script="/etc/rc.bsdextended" # Default mac_bsdextended(4)
==== //depot/projects/davidxu_thread/src/etc/rc.d/dumpon#2 (text+ko) ====
@@ -1,11 +1,11 @@
#!/bin/sh
#
-# $FreeBSD: src/etc/rc.d/dumpon,v 1.7 2004/10/18 23:40:13 thomas Exp $
+# $FreeBSD: src/etc/rc.d/dumpon,v 1.8 2005/04/05 18:59:24 obrien Exp $
#
# PROVIDE: dumpon
-# REQUIRE: initrandom
-# BEFORE: disks savecore
+# REQUIRE: rcconf
+# BEFORE: disks savecore initrandom
# KEYWORD: nojail
. /etc/rc.subr
==== //depot/projects/davidxu_thread/src/etc/rc.d/pf#2 (text+ko) ====
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $FreeBSD: src/etc/rc.d/pf,v 1.6 2004/10/25 08:12:28 pjd Exp $
+# $FreeBSD: src/etc/rc.d/pf,v 1.7 2005/04/04 23:06:10 seanc Exp $
#
# PROVIDE: pf
@@ -75,7 +75,9 @@
echo "Reloading pf rules."
${pf_program:-/sbin/pfctl} -n -f "${pf_rules}" || return 1
- ${pf_program:-/sbin/pfctl} -Fa > /dev/null 2>&1
+ # Flush everything but existing state entries that way when
+ # rules are read in, it doesn't break established connections.
+ ${pf_program:-/sbin/pfctl} -Fnat -Fqueue -Frules -FSources -Finfo -FTables -Fosfp > /dev/null 2>&1
${pf_program:-/sbin/pfctl} -f "${pf_rules}" ${pf_flags}
}
==== //depot/projects/davidxu_thread/src/gnu/usr.bin/gdb/libgdb/fbsd-threads.c#4 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/gnu/usr.bin/gdb/libgdb/fbsd-threads.c,v 1.9 2005/01/11 14:53:16 peadar Exp $ */
+/* $FreeBSD: src/gnu/usr.bin/gdb/libgdb/fbsd-threads.c,v 1.10 2005/04/05 11:40:58 davidxu Exp $ */
/* FreeBSD libthread_db assisted debugging support.
Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
==== //depot/projects/davidxu_thread/src/include/Makefile#8 (text+ko) ====
@@ -1,5 +1,5 @@
# @(#)Makefile 8.2 (Berkeley) 1/4/94
-# $FreeBSD: src/include/Makefile,v 1.238 2005/04/01 23:22:01 imp Exp $
+# $FreeBSD: src/include/Makefile,v 1.239 2005/04/03 04:53:23 imp Exp $
#
# Doing a "make install" builds /usr/include.
@@ -162,10 +162,14 @@
${DESTDIR}${INCLUDEDIR}/machine/pc
.endif
.if defined(_MARCH)
+ ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
+ ${DESTDIR}${INCLUDEDIR}/${_MARCH}; \
cd ${.CURDIR}/../sys/${_MARCH}/include; \
${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
${DESTDIR}${INCLUDEDIR}/${_MARCH}
.if exists(${.CURDIR}/../sys/${_MARCH}/include/pc)
+ ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
+ ${DESTDIR}${INCLUDEDIR}/${_MARCH}/pc; \
cd ${.CURDIR}/../sys/${_MARCH}/include/pc; \
${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \
${DESTDIR}${INCLUDEDIR}/${_MARCH}/pc
@@ -240,12 +244,16 @@
done
.endif
.if defined(_MARCH)
+ ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
+ ${DESTDIR}${INCLUDEDIR}/${_MARCH}; \
cd ${.CURDIR}/../sys/${_MARCH}/include; \
for h in *.h; do \
ln -fs ../../../sys/${_MARCH}/include/$$h \
${DESTDIR}${INCLUDEDIR}/${_MARCH}; \
done
.if exists(${.CURDIR}/../sys/${_MARCH}/include/pc)
+ ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
+ ${DESTDIR}${INCLUDEDIR}/${_MARCH}/pc; \
cd ${.CURDIR}/../sys/${_MARCH}/include/pc; \
for h in *.h; do \
ln -fs ../../../../sys/${_MARCH}/include/pc/$$h \
==== //depot/projects/davidxu_thread/src/include/pthread.h#3 (text+ko) ====
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/include/pthread.h,v 1.33 2005/01/08 11:07:13 davidxu Exp $
+ * $FreeBSD: src/include/pthread.h,v 1.34 2005/04/03 23:55:02 davidxu Exp $
*/
#ifndef _PTHREAD_H_
#define _PTHREAD_H_
@@ -225,6 +225,10 @@
void pthread_cleanup_push(void (*) (void *), void *routine_arg);
int pthread_condattr_destroy(pthread_condattr_t *);
int pthread_condattr_init(pthread_condattr_t *);
+int pthread_condattr_getclock(const pthread_condattr_t *,
+ clockid_t *);
+int pthread_condattr_setclock(pthread_condattr_t *,
+ clockid_t);
int pthread_cond_broadcast(pthread_cond_t *);
int pthread_cond_destroy(pthread_cond_t *);
==== //depot/projects/davidxu_thread/src/lib/libalias/alias.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libalias/alias.c,v 1.49 2004/08/14 14:21:09 phk Exp $");
+__FBSDID("$FreeBSD: src/lib/libalias/alias.c,v 1.50 2005/04/05 13:04:35 phk Exp $");
/*
Alias.c provides supervisory control for the functions of the
@@ -1170,7 +1170,7 @@
if (la->packetAliasMode & PKT_ALIAS_REVERSE) {
la->packetAliasMode &= ~PKT_ALIAS_REVERSE;
- iresult = PacketAliasOut(ptr, maxpacketsize);
+ iresult = LibAliasOut(la, ptr, maxpacketsize);
la->packetAliasMode |= PKT_ALIAS_REVERSE;
return (iresult);
}
@@ -1264,7 +1264,7 @@
if (la->packetAliasMode & PKT_ALIAS_REVERSE) {
la->packetAliasMode &= ~PKT_ALIAS_REVERSE;
- iresult = PacketAliasIn(ptr, maxpacketsize);
+ iresult = LibAliasIn(la, ptr, maxpacketsize);
la->packetAliasMode |= PKT_ALIAS_REVERSE;
return (iresult);
}
==== //depot/projects/davidxu_thread/src/lib/libarchive/archive_private.h#2 (text+ko) ====
@@ -23,7 +23,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/lib/libarchive/archive_private.h,v 1.16 2004/11/06 05:25:53 kientzle Exp $
+ * $FreeBSD: src/lib/libarchive/archive_private.h,v 1.17 2005/04/06 04:19:30 kientzle Exp $
*/
#ifndef ARCHIVE_PRIVATE_H_INCLUDED
@@ -156,6 +156,7 @@
int (*bid)(struct archive *);
int (*read_header)(struct archive *, struct archive_entry *);
int (*read_data)(struct archive *, const void **, size_t *, off_t *);
+ int (*read_data_skip)(struct archive *);
int (*cleanup)(struct archive *);
void *format_data; /* Format-specific data for readers. */
} formats[4];
@@ -229,6 +230,7 @@
int (*bid)(struct archive *),
int (*read_header)(struct archive *, struct archive_entry *),
int (*read_data)(struct archive *, const void **, size_t *, off_t *),
+ int (*read_data_skip)(struct archive *),
int (*cleanup)(struct archive *));
int __archive_read_register_compression(struct archive *a,
==== //depot/projects/davidxu_thread/src/lib/libarchive/archive_read.c#3 (text+ko) ====
@@ -33,7 +33,7 @@
*/
#include "archive_platform.h"
-__FBSDID("$FreeBSD: src/lib/libarchive/archive_read.c,v 1.13 2005/01/08 18:28:11 kientzle Exp $");
+__FBSDID("$FreeBSD: src/lib/libarchive/archive_read.c,v 1.14 2005/04/06 04:19:30 kientzle Exp $");
#include <errno.h>
#include <stdio.h>
@@ -226,6 +226,8 @@
a->state = ARCHIVE_STATE_FATAL;
return (ARCHIVE_FATAL);
}
+ if (ret != ARCHIVE_OK)
+ return (ret);
}
/* Record start-of-header. */
@@ -405,9 +407,13 @@
archive_check_magic(a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_DATA);
- while ((r = archive_read_data_block(a, &buff, &size, &offset)) ==
- ARCHIVE_OK)
- ;
+ if (a->format->read_data_skip != NULL)
+ r = (a->format->read_data_skip)(a);
+ else {
+ while ((r = archive_read_data_block(a, &buff, &size, &offset))
+ == ARCHIVE_OK)
+ ;
+ }
if (r == ARCHIVE_EOF)
r = ARCHIVE_OK;
@@ -505,6 +511,7 @@
int (*bid)(struct archive *),
int (*read_header)(struct archive *, struct archive_entry *),
int (*read_data)(struct archive *, const void **, size_t *, off_t *),
+ int (*read_data_skip)(struct archive *),
int (*cleanup)(struct archive *))
{
int i, number_slots;
@@ -520,6 +527,7 @@
a->formats[i].bid = bid;
a->formats[i].read_header = read_header;
a->formats[i].read_data = read_data;
+ a->formats[i].read_data_skip = read_data_skip;
a->formats[i].cleanup = cleanup;
a->formats[i].format_data = format_data;
return (ARCHIVE_OK);
==== //depot/projects/davidxu_thread/src/lib/libarchive/archive_read_support_format_cpio.c#4 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include "archive_platform.h"
-__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_cpio.c,v 1.12 2005/03/13 01:52:35 kientzle Exp $");
+__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_cpio.c,v 1.13 2005/04/06 04:19:30 kientzle Exp $");
#include <sys/stat.h>
@@ -142,6 +142,7 @@
archive_read_format_cpio_bid,
archive_read_format_cpio_read_header,
archive_read_format_cpio_read_data,
+ NULL,
archive_read_format_cpio_cleanup);
if (r != ARCHIVE_OK)
==== //depot/projects/davidxu_thread/src/lib/libarchive/archive_read_support_format_iso9660.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include "archive_platform.h"
-__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_iso9660.c,v 1.7 2005/02/12 22:48:38 kientzle Exp $");
+__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_iso9660.c,v 1.8 2005/04/06 04:19:30 kientzle Exp $");
#include <sys/stat.h>
@@ -212,6 +212,7 @@
archive_read_format_iso9660_bid,
archive_read_format_iso9660_read_header,
archive_read_format_iso9660_read_data,
+ NULL,
archive_read_format_iso9660_cleanup);
if (r != ARCHIVE_OK) {
==== //depot/projects/davidxu_thread/src/lib/libarchive/archive_read_support_format_tar.c#5 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include "archive_platform.h"
-__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_tar.c,v 1.31 2005/03/13 02:35:52 kientzle Exp $");
+__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_tar.c,v 1.32 2005/04/06 04:19:30 kientzle Exp $");
#include <sys/stat.h>
#include <errno.h>
@@ -216,6 +216,7 @@
archive_read_format_tar_bid,
archive_read_format_tar_read_header,
archive_read_format_tar_read_data,
+ NULL,
archive_read_format_tar_cleanup);
if (r != ARCHIVE_OK)
==== //depot/projects/davidxu_thread/src/lib/libarchive/archive_read_support_format_zip.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include "archive_platform.h"
-__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_zip.c,v 1.4 2005/02/12 23:00:31 kientzle Exp $");
+__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_zip.c,v 1.5 2005/04/06 04:19:30 kientzle Exp $");
#include <sys/stat.h>
#include <errno.h>
@@ -41,16 +41,30 @@
#include "archive_private.h"
struct zip {
+ /* entry_bytes_remaining is the number of bytes we expect. */
off_t entry_bytes_remaining;
off_t entry_offset;
+ /* These count the number of bytes actually read for the entry. */
+ off_t entry_compressed_bytes_read;
+ off_t entry_uncompressed_bytes_read;
+
unsigned version;
unsigned system;
unsigned flags;
unsigned compression;
const char * compression_name;
time_t mtime;
+ time_t ctime;
+ time_t atime;
+ mode_t mode;
+ uid_t uid;
+ gid_t gid;
+
+ /* Flags to mark progress of decompression. */
+ char decompress_init;
char end_of_entry;
+ char end_of_entry_cleanup;
long crc32;
ssize_t filename_length;
@@ -73,8 +87,7 @@
struct zip_file_header {
char signature[4];
- char version[1];
- char reserved[1];
+ char version[2];
char flags[2];
char compression[2];
char timedate[4];
@@ -101,17 +114,22 @@
static int archive_read_format_zip_cleanup(struct archive *);
static int archive_read_format_zip_read_data(struct archive *,
const void **, size_t *, off_t *);
+static int archive_read_format_zip_read_data_skip(struct archive *a);
static int archive_read_format_zip_read_header(struct archive *,
struct archive_entry *);
static int i2(const char *);
static int i4(const char *);
+static unsigned int u2(const char *);
+static unsigned int u4(const char *);
+static uint64_t u8(const char *);
static int zip_read_data_deflate(struct archive *a, const void **buff,
size_t *size, off_t *offset);
static int zip_read_data_none(struct archive *a, const void **buff,
size_t *size, off_t *offset);
-static int zip_read_data_skip(struct archive *a, const void **buff,
- size_t *size, off_t *offset);
+static int zip_read_file_header(struct archive *a,
+ struct archive_entry *entry, struct zip *zip);
static time_t zip_time(const char *);
+static void process_extra(const void* extra, struct zip* zip);
int
archive_read_support_format_zip(struct archive *a)
@@ -127,6 +145,7 @@
archive_read_format_zip_bid,
archive_read_format_zip_read_header,
archive_read_format_zip_read_data,
+ archive_read_format_zip_read_data_skip,
archive_read_format_zip_cleanup);
if (r != ARCHIVE_OK)
@@ -171,7 +190,7 @@
{
int bytes_read;
const void *h;
- const struct zip_file_header *p;
+ const char *signature;
struct zip *zip;
a->archive_format = ARCHIVE_FORMAT_ZIP;
@@ -179,40 +198,70 @@
a->archive_format_name = "ZIP";
zip = *(a->pformat_data);
+ zip->decompress_init = 0;
zip->end_of_entry = 0;
- bytes_read =
- (a->compression_read_ahead)(a, &h, sizeof(struct zip_file_header));
+ zip->end_of_entry_cleanup = 0;
+ zip->entry_uncompressed_bytes_read = 0;
+ zip->entry_compressed_bytes_read = 0;
+ bytes_read = (a->compression_read_ahead)(a, &h, 4);
if (bytes_read < 4)
return (ARCHIVE_FATAL);
- p = h;
- if (p->signature[0] != 'P' || p->signature[1] != 'K') {
+ signature = h;
+ if (signature[0] != 'P' || signature[1] != 'K') {
archive_set_error(a, ARCHIVE_ERRNO_FILE_FORMAT,
"Bad ZIP file");
return (ARCHIVE_FATAL);
}
- if (p->signature[2] == '\001' && p->signature[3] == '\002') {
+ if (signature[2] == '\001' && signature[3] == '\002') {
/* Beginning of central directory. */
return (ARCHIVE_EOF);
- } else if (p->signature[2] == '\003' && p->signature[3] == '\004') {
- /* Regular file entry; fall through. */
- } else if (p->signature[2] == '\005' && p->signature[3] == '\006') {
+ }
+
+ if (signature[2] == '\003' && signature[3] == '\004') {
+ /* Regular file entry. */
+ return (zip_read_file_header(a, entry, zip));
+ }
+
+ if (signature[2] == '\005' && signature[3] == '\006') {
/* End-of-archive record. */
return (ARCHIVE_EOF);
- } else if (p->signature[2] == '\007' && p->signature[3] == '\010') {
- /* ??? Need to research this. ??? */
- } else {
- archive_set_error(a, ARCHIVE_ERRNO_FILE_FORMAT,
- "Damaged ZIP file or unsupported format variant (%d,%d)", p->signature[2], p->signature[3]);
+ }
+
+ if (signature[2] == '\007' && signature[3] == '\010') {
+ /*
+ * We should never encounter this record here;
+ * see ZIP_LENGTH_AT_END handling below for details.
+ */
+ archive_set_error(a, ARCHIVE_ERRNO_MISC,
+ "Bad ZIP file: Unexpected end-of-entry record");
return (ARCHIVE_FATAL);
}
+ archive_set_error(a, ARCHIVE_ERRNO_FILE_FORMAT,
+ "Damaged ZIP file or unsupported format variant (%d,%d)",
+ signature[2], signature[3]);
+ return (ARCHIVE_FATAL);
+}
+
+int
+zip_read_file_header(struct archive *a, struct archive_entry *entry,
+ struct zip *zip)
+{
+ const struct zip_file_header *p;
+ const void *h;
+ int bytes_read;
+ struct stat st;
+
+ bytes_read =
+ (a->compression_read_ahead)(a, &h, sizeof(struct zip_file_header));
if (bytes_read < (int)sizeof(struct zip_file_header)) {
archive_set_error(a, ARCHIVE_ERRNO_FILE_FORMAT,
"Truncated ZIP file header");
return (ARCHIVE_FATAL);
}
+ p = h;
zip->version = p->version[0];
zip->system = p->version[1];
@@ -224,11 +273,16 @@
else
zip->compression_name = "??";
zip->mtime = zip_time(p->timedate);
+ zip->ctime = 0;
+ zip->atime = 0;
+ zip->mode = 0;
+ zip->uid = 0;
+ zip->gid = 0;
zip->crc32 = i4(p->crc32);
zip->filename_length = i2(p->filename_length);
zip->extra_length = i2(p->extra_length);
- zip->uncompressed_size = i4(p->uncompressed_size);
- zip->compressed_size = i4(p->compressed_size);
+ zip->uncompressed_size = u4(p->uncompressed_size);
+ zip->compressed_size = u4(p->compressed_size);
(a->compression_read_consume)(a, sizeof(struct zip_file_header));
@@ -245,6 +299,11 @@
(a->compression_read_consume)(a, zip->filename_length);
archive_entry_set_pathname(entry, zip->pathname.s);
+ if (zip->pathname.s[archive_strlen(&zip->pathname) - 1] == '/')
+ zip->mode = S_IFDIR | 0777;
+ else
+ zip->mode = S_IFREG | 0777;
+
/* Read the extra data. */
bytes_read = (a->compression_read_ahead)(a, &h, zip->extra_length);
if (bytes_read < zip->extra_length) {
@@ -252,16 +311,20 @@
"Truncated ZIP file header");
return (ARCHIVE_FATAL);
}
- /* TODO: Store the extra data somewhere? */
+ process_extra(h, zip);
(a->compression_read_consume)(a, zip->extra_length);
/* Populate some additional entry fields: */
- archive_entry_set_mtime(entry, zip->mtime, 0);
- if (zip->pathname.s[archive_strlen(&zip->pathname) - 1] == '/')
- archive_entry_set_mode(entry, S_IFDIR | 0777);
- else
- archive_entry_set_mode(entry, S_IFREG | 0777);
- archive_entry_set_size(entry, zip->uncompressed_size);
+ memset(&st, 0, sizeof(st));
+ st.st_mode = zip->mode;
+ st.st_uid = zip->uid;
+ st.st_gid = zip->gid;
+ st.st_mtime = zip->mtime;
+ st.st_ctime = zip->ctime;
+ st.st_atime = zip->atime;
+ st.st_size = zip->uncompressed_size;
+ archive_entry_copy_stat(entry, &st);
+
zip->entry_bytes_remaining = zip->compressed_size;
zip->entry_offset = 0;
@@ -304,34 +367,101 @@
zip = *(a->pformat_data);
- if (!zip->end_of_entry) {
- switch(zip->compression) {
- case 0: /* No compression. */
- r = zip_read_data_none(a, buff, size, offset);
- break;
- case 8: /* Deflate compression. */
- r = zip_read_data_deflate(a, buff, size, offset);
- break;
- default: /* Unsupported compression. */
- r = zip_read_data_skip(a, buff, size, offset);
- /* Return a warning. */
- archive_set_error(a, ARCHIVE_ERRNO_FILE_FORMAT,
- "Unsupported ZIP compression method (%s)",
- zip->compression_name);
- r = ARCHIVE_WARN;
- break;
+ /*
+ * If we hit end-of-entry last time, clean up and return
+ * ARCHIVE_EOF this time.
+ */
+ if (zip->end_of_entry) {
+ if (!zip->end_of_entry_cleanup) {
+ if (zip->flags & ZIP_LENGTH_AT_END) {
+ const void *h;
+ const char *p;
+ int bytes_read =
+ (a->compression_read_ahead)(a, &h, 16);
+ if (bytes_read < 16) {
+ archive_set_error(a,
+ ARCHIVE_ERRNO_FILE_FORMAT,
+ "Truncated ZIP end-of-file record");
+ return (ARCHIVE_FATAL);
+ }
+ p = h;
+ zip->crc32 = i4(p + 4);
+ zip->compressed_size = u4(p + 8);
+ zip->uncompressed_size = u4(p + 12);
+ bytes_read = (a->compression_read_consume)(a, 16);
+ }
+
+ /* Check file size, CRC against these values. */
+ if (zip->compressed_size != zip->entry_compressed_bytes_read) {
+ archive_set_error(a, ARCHIVE_ERRNO_MISC,
+ "ZIP compressed data is wrong size");
+ return (ARCHIVE_WARN);
+ }
+ if (zip->uncompressed_size != zip->entry_uncompressed_bytes_read) {
+ archive_set_error(a, ARCHIVE_ERRNO_MISC,
+ "ZIP uncompressed data is wrong size");
+ return (ARCHIVE_WARN);
+ }
+/* TODO: Compute CRC. */
+/*
+ if (zip->crc32 != zip->entry_crc32_calculated) {
+ archive_set_error(a, ARCHIVE_ERRNO_MISC,
+ "ZIP data CRC error");
+ return (ARCHIVE_WARN);
+ }
+*/
+ /* End-of-entry cleanup done. */
+ zip->end_of_entry_cleanup = 1;
}
- } else {
- r = ARCHIVE_EOF;
+ return (ARCHIVE_EOF);
+ }
+
+ switch(zip->compression) {
+ case 0: /* No compression. */
+ r = zip_read_data_none(a, buff, size, offset);
+ break;
+ case 8: /* Deflate compression. */
+ r = zip_read_data_deflate(a, buff, size, offset);
+ break;
+ default: /* Unsupported compression. */
+ *buff = NULL;
+ *size = 0;
+ *offset = 0;
+ /* Return a warning. */
+ archive_set_error(a, ARCHIVE_ERRNO_FILE_FORMAT,
+ "Unsupported ZIP compression method (%s)",
+ zip->compression_name);
if (zip->flags & ZIP_LENGTH_AT_END) {
- /* TODO: Read the "PK\007\008" trailer that follows. */
+ /*
+ * ZIP_LENGTH_AT_END requires us to
+ * decompress the entry in order to
+ * skip it, but we don't know this
+ * compression method, so we give up.
+ */
+ r = ARCHIVE_FATAL;
+ } else {
+ /* We know compressed size; just skip it. */
+ archive_read_format_zip_read_data_skip(a);
+ r = ARCHIVE_WARN;
}
+ break;
}
- if (r == ARCHIVE_EOF)
- zip->end_of_entry = 1;
return (r);
}
+/*
+ * Read "uncompressed" data. According to the current specification,
+ * if ZIP_LENGTH_AT_END is specified, then the size fields in the
+ * initial file header are supposed to be set to zero. This would, of
+ * course, make it impossible for us to read the archive, since we
+ * couldn't determine the end of the file data. Info-ZIP seems to
+ * include the real size fields both before and after the data in this
+ * case (the CRC only appears afterwards), so this works as you would
+ * expect.
+ *
+ * Returns ARCHIVE_OK if successful, ARCHIVE_FATAL otherwise, sets
+ * zip->end_of_entry if it consumes all of the data.
+ */
static int
zip_read_data_none(struct archive *a, const void **buff,
size_t *size, off_t *offset)
@@ -345,7 +475,8 @@
*buff = NULL;
*size = 0;
*offset = zip->entry_offset;
- return (ARCHIVE_EOF);
+ zip->end_of_entry = 1;
+ return (ARCHIVE_OK);
}
/*
* Note: '1' here is a performance optimization.
@@ -366,6 +497,8 @@
*offset = zip->entry_offset;
zip->entry_offset += *size;
zip->entry_bytes_remaining -= *size;
+ zip->entry_uncompressed_bytes_read += *size;
+ zip->entry_compressed_bytes_read += *size;
return (ARCHIVE_OK);
}
@@ -394,7 +527,7 @@
}
/* If we haven't yet read any data, initialize the decompressor. */
- if (zip->entry_bytes_remaining == zip->compressed_size) {
+ if (!zip->decompress_init) {
r = inflateInit2(&zip->stream,
-15 /* Don't check for zlib header */);
if (r != Z_OK) {
@@ -402,6 +535,7 @@
"Can't initialize ZIP decompression.");
return (ARCHIVE_FATAL);
}
+ zip->decompress_init = 1;
}
/*
@@ -416,8 +550,6 @@
"Truncated ZIP file body");
return (ARCHIVE_FATAL);
}
- if (bytes_avail > zip->entry_bytes_remaining)
- bytes_avail = zip->entry_bytes_remaining;
/*
* A bug in zlib.h: stream.next_in should be marked 'const'
@@ -453,10 +585,11 @@
bytes_avail = zip->stream.total_in;
(a->compression_read_consume)(a, bytes_avail);
zip->entry_bytes_remaining -= bytes_avail;
-
+ zip->entry_compressed_bytes_read += bytes_avail;
*offset = zip->entry_offset;
*size = zip->stream.total_out;
+ zip->entry_uncompressed_bytes_read += *size;
*buff = zip->uncompressed_buffer;
zip->entry_offset += *size;
return (ARCHIVE_OK);
@@ -468,31 +601,45 @@
{
int r;
- r = zip_read_data_skip(a, buff, size, offset);
+ *buff = NULL;
+ *size = 0;
+ *offset = 0;
archive_set_error(a, ARCHIVE_ERRNO_MISC,
"libarchive compiled without deflate support (no libz)");
- return (ARCHIVE_WARN);
+ return (ARCHIVE_FATAL);
}
#endif
static int
-zip_read_data_skip(struct archive *a, const void **buff,
- size_t *size, off_t *offset)
+archive_read_format_zip_read_data_skip(struct archive *a)
{
struct zip *zip;
+ const void *buff = NULL;
ssize_t bytes_avail;
zip = *(a->pformat_data);
- /* Return nothing gracefully. */
- *buff = NULL;
- *size = 0;
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list