svn commit: r191642 - in projects/mesh11s: . contrib/amd/m4
contrib/bind contrib/bind9 contrib/bind9/lib/dns/sec
contrib/cpio contrib/csup contrib/cvs/tools/pcl-cvs
contrib/file contrib/gcc/config/...
Rui Paulo
rpaulo at FreeBSD.org
Tue Apr 28 23:36:32 UTC 2009
Author: rpaulo
Date: Tue Apr 28 23:36:29 2009
New Revision: 191642
URL: http://svn.freebsd.org/changeset/base/191642
Log:
MFH 191433:191639.
Sponsored by: The FreeBSD Foundation
Added:
projects/mesh11s/lib/libarchive/archive_read_support_format_raw.c
- copied unchanged from r191639, head/lib/libarchive/archive_read_support_format_raw.c
projects/mesh11s/lib/libarchive/test/test_compat_solaris_tar_acl.c
- copied unchanged from r191639, head/lib/libarchive/test/test_compat_solaris_tar_acl.c
projects/mesh11s/lib/libarchive/test/test_compat_solaris_tar_acl.tar.uu
- copied unchanged from r191639, head/lib/libarchive/test/test_compat_solaris_tar_acl.tar.uu
projects/mesh11s/lib/libarchive/test/test_read_format_cpio_bin_be.c
- copied unchanged from r191639, head/lib/libarchive/test/test_read_format_cpio_bin_be.c
projects/mesh11s/lib/libarchive/test/test_read_format_cpio_bin_be.cpio.uu
- copied unchanged from r191639, head/lib/libarchive/test/test_read_format_cpio_bin_be.cpio.uu
projects/mesh11s/lib/libarchive/test/test_read_format_raw.c
- copied unchanged from r191639, head/lib/libarchive/test/test_read_format_raw.c
projects/mesh11s/lib/libarchive/test/test_read_format_raw.data.Z.uu
- copied unchanged from r191639, head/lib/libarchive/test/test_read_format_raw.data.Z.uu
projects/mesh11s/lib/libarchive/test/test_read_format_raw.data.uu
- copied unchanged from r191639, head/lib/libarchive/test/test_read_format_raw.data.uu
projects/mesh11s/sys/powerpc/mpc85xx/atpic.c
- copied unchanged from r191639, head/sys/powerpc/mpc85xx/atpic.c
projects/mesh11s/sys/powerpc/mpc85xx/isa.c
- copied unchanged from r191639, head/sys/powerpc/mpc85xx/isa.c
Deleted:
projects/mesh11s/contrib/amd/m4/
projects/mesh11s/contrib/bind/
projects/mesh11s/contrib/bind9/lib/dns/sec/
projects/mesh11s/contrib/cvs/tools/pcl-cvs/
projects/mesh11s/contrib/gcc/config/alpha/
projects/mesh11s/contrib/gcc/config/frv/
projects/mesh11s/contrib/gcc/config/mpw/
projects/mesh11s/contrib/gcc/contrib/
projects/mesh11s/contrib/gcc/f/
projects/mesh11s/contrib/gcc/include/
projects/mesh11s/contrib/gdb/gdb/config/none/
projects/mesh11s/contrib/gdb/gdb/nlm/
projects/mesh11s/contrib/groff/addftinfo/
projects/mesh11s/contrib/groff/afmtodit/
projects/mesh11s/contrib/groff/eqn/
projects/mesh11s/contrib/groff/grn/
projects/mesh11s/contrib/groff/grodvi/
projects/mesh11s/contrib/groff/groff/
projects/mesh11s/contrib/groff/grog/
projects/mesh11s/contrib/groff/grohtml/
projects/mesh11s/contrib/groff/grolbp/
projects/mesh11s/contrib/groff/grolj4/
projects/mesh11s/contrib/groff/grops/
projects/mesh11s/contrib/groff/grotty/
projects/mesh11s/contrib/groff/hpftodit/
projects/mesh11s/contrib/groff/include/
projects/mesh11s/contrib/groff/indxbib/
projects/mesh11s/contrib/groff/libbib/
projects/mesh11s/contrib/groff/libdriver/
projects/mesh11s/contrib/groff/libgroff/
projects/mesh11s/contrib/groff/lkbib/
projects/mesh11s/contrib/groff/lookbib/
projects/mesh11s/contrib/groff/mm/
projects/mesh11s/contrib/groff/nroff/
projects/mesh11s/contrib/groff/pfbtops/
projects/mesh11s/contrib/groff/pic/
projects/mesh11s/contrib/groff/refer/
projects/mesh11s/contrib/groff/soelim/
projects/mesh11s/contrib/groff/src/xditview/
projects/mesh11s/contrib/groff/tbl/
projects/mesh11s/contrib/groff/tfmtodit/
projects/mesh11s/contrib/groff/troff/
projects/mesh11s/contrib/groff/xditview/
projects/mesh11s/contrib/libpcap/doc/
projects/mesh11s/contrib/libstdc++/config/abi/alpha-freebsd5/
projects/mesh11s/contrib/libstdc++/config/abi/alpha-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/alphaev67-unknown-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/arm-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/hppa-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/i386-freebsd4/
projects/mesh11s/contrib/libstdc++/config/abi/i386-freebsd5/
projects/mesh11s/contrib/libstdc++/config/abi/i386-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/i486-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/i686-pc-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/ia64-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/ia64-unknown-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/m68k-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/mips-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/powerpc-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/s390-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/s390x-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/sparc-freebsd5/
projects/mesh11s/contrib/libstdc++/config/abi/sparc-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/abi/x86_64-linux-gnu/
projects/mesh11s/contrib/libstdc++/config/cpu/alpha/bits/
projects/mesh11s/contrib/libstdc++/config/cpu/arm/bits/
projects/mesh11s/contrib/libstdc++/config/cpu/cris/bits/
projects/mesh11s/contrib/libstdc++/config/cpu/generic/bits/
projects/mesh11s/contrib/libstdc++/config/cpu/i386/bits/
projects/mesh11s/contrib/libstdc++/config/cpu/i486/bits/
projects/mesh11s/contrib/libstdc++/config/cpu/ia64/bits/
projects/mesh11s/contrib/libstdc++/config/cpu/m68k/bits/
projects/mesh11s/contrib/libstdc++/config/cpu/mips/bits/
projects/mesh11s/contrib/libstdc++/config/cpu/mmix/
projects/mesh11s/contrib/libstdc++/config/cpu/powerpc/bits/
projects/mesh11s/contrib/libstdc++/config/cpu/s390/
projects/mesh11s/contrib/libstdc++/config/cpu/sparc/bits/
projects/mesh11s/contrib/libstdc++/config/cpu/x86-64/
projects/mesh11s/contrib/libstdc++/config/os/aix/bits/
projects/mesh11s/contrib/libstdc++/config/os/bsd/freebsd/bits/
projects/mesh11s/contrib/libstdc++/config/os/bsd/netbsd/bits/
projects/mesh11s/contrib/libstdc++/config/os/djgpp/bits/
projects/mesh11s/contrib/libstdc++/config/os/generic/bits/
projects/mesh11s/contrib/libstdc++/config/os/gnu-linux/bits/
projects/mesh11s/contrib/libstdc++/config/os/hpux/bits/
projects/mesh11s/contrib/libstdc++/config/os/irix/irix5.2/bits/
projects/mesh11s/contrib/libstdc++/config/os/irix/irix6.5/bits/
projects/mesh11s/contrib/libstdc++/config/os/mingw32/bits/
projects/mesh11s/contrib/libstdc++/config/os/newlib/bits/
projects/mesh11s/contrib/libstdc++/config/os/osf/
projects/mesh11s/contrib/libstdc++/config/os/qnx/qnx6.1/bits/
projects/mesh11s/contrib/libstdc++/config/os/solaris/solaris2.5/bits/
projects/mesh11s/contrib/libstdc++/config/os/solaris/solaris2.6/bits/
projects/mesh11s/contrib/libstdc++/config/os/solaris/solaris2.7/bits/
projects/mesh11s/contrib/libstdc++/include/c_shadow/
projects/mesh11s/contrib/ncurses/tack/
projects/mesh11s/contrib/ntp/html/hints/
projects/mesh11s/contrib/ntp/scripts/support/
projects/mesh11s/contrib/openpam/modules/pam_dummy/
projects/mesh11s/crypto/openssl/os2/
projects/mesh11s/gnu/usr.bin/perl/
projects/mesh11s/gnu/usr.bin/pr/
projects/mesh11s/gnu/usr.bin/texinfo/info-files/
projects/mesh11s/lib/libftp/
projects/mesh11s/libexec/bugfiler/
projects/mesh11s/libexec/kpasswdd/
projects/mesh11s/sys/cddl/dev/dtnfsclient/
projects/mesh11s/sys/modules/ata/ata/
projects/mesh11s/tools/tools/nanobsd/rescue/Files/conf/
projects/mesh11s/tools/tools/nanobsd/rescue/Pkg/
projects/mesh11s/usr.bin/compile_et/test/
projects/mesh11s/usr.bin/diff/
projects/mesh11s/usr.bin/grep/
projects/mesh11s/usr.bin/timedef/
projects/mesh11s/usr.sbin/bootpd/
projects/mesh11s/usr.sbin/update/
projects/mesh11s/usr.sbin/xntpd/
Modified:
projects/mesh11s/ (props changed)
projects/mesh11s/UPDATING
projects/mesh11s/contrib/bind9/ (props changed)
projects/mesh11s/contrib/cpio/ (props changed)
projects/mesh11s/contrib/csup/ (props changed)
projects/mesh11s/contrib/file/ (props changed)
projects/mesh11s/contrib/gdb/ (props changed)
projects/mesh11s/contrib/gdtoa/ (props changed)
projects/mesh11s/contrib/ipfilter/ipsend/sbpf.c
projects/mesh11s/contrib/libpcap/ (props changed)
projects/mesh11s/contrib/ncurses/ (props changed)
projects/mesh11s/contrib/netcat/ (props changed)
projects/mesh11s/contrib/ntp/ (props changed)
projects/mesh11s/contrib/openbsm/ (props changed)
projects/mesh11s/contrib/openpam/ (props changed)
projects/mesh11s/contrib/pf/ (props changed)
projects/mesh11s/contrib/sendmail/ (props changed)
projects/mesh11s/contrib/tcpdump/ (props changed)
projects/mesh11s/contrib/top/ (props changed)
projects/mesh11s/contrib/top/install-sh (props changed)
projects/mesh11s/contrib/wpa/ (props changed)
projects/mesh11s/crypto/openssh/ (props changed)
projects/mesh11s/crypto/openssl/ (props changed)
projects/mesh11s/etc/rc.d/jail
projects/mesh11s/lib/libarchive/Makefile
projects/mesh11s/lib/libarchive/archive.h
projects/mesh11s/lib/libarchive/archive_entry.c
projects/mesh11s/lib/libarchive/archive_read.3
projects/mesh11s/lib/libarchive/archive_read.c
projects/mesh11s/lib/libarchive/archive_read_open_fd.c
projects/mesh11s/lib/libarchive/archive_read_open_file.c
projects/mesh11s/lib/libarchive/archive_read_open_filename.c
projects/mesh11s/lib/libarchive/archive_read_private.h
projects/mesh11s/lib/libarchive/archive_read_support_compression_xz.c
projects/mesh11s/lib/libarchive/archive_read_support_format_cpio.c
projects/mesh11s/lib/libarchive/archive_read_support_format_empty.c
projects/mesh11s/lib/libarchive/archive_read_support_format_iso9660.c
projects/mesh11s/lib/libarchive/archive_read_support_format_mtree.c
projects/mesh11s/lib/libarchive/archive_read_support_format_tar.c
projects/mesh11s/lib/libarchive/archive_write_set_format_cpio.c
projects/mesh11s/lib/libarchive/archive_write_set_format_pax.c
projects/mesh11s/lib/libarchive/archive_write_set_format_ustar.c
projects/mesh11s/lib/libarchive/tar.5
projects/mesh11s/lib/libarchive/test/Makefile
projects/mesh11s/lib/libarchive/test/main.c
projects/mesh11s/lib/libarchive/test/test.h
projects/mesh11s/lib/libarchive/test/test_acl_pax.c
projects/mesh11s/lib/libarchive/test/test_fuzz.c
projects/mesh11s/lib/libarchive/test/test_pax_filename_encoding.c
projects/mesh11s/lib/libarchive/test/test_read_format_isojoliet_bz2.c
projects/mesh11s/lib/libarchive/test/test_read_format_isorr_bz2.c
projects/mesh11s/lib/libarchive/test/test_read_format_isorr_bz2.iso.bz2.uu
projects/mesh11s/lib/libarchive/test/test_read_format_mtree.c
projects/mesh11s/lib/libc/ (props changed)
projects/mesh11s/lib/libc/arm/string/strncmp.S
projects/mesh11s/lib/libc/posix1e/acl_set_qualifier.3
projects/mesh11s/lib/libc/stdio/asprintf.c (props changed)
projects/mesh11s/lib/libc/stdtime/ (props changed)
projects/mesh11s/lib/libc/string/ffsll.c (props changed)
projects/mesh11s/lib/libc/string/flsll.c (props changed)
projects/mesh11s/lib/libc/string/wcpcpy.c (props changed)
projects/mesh11s/lib/libc/string/wcpncpy.c (props changed)
projects/mesh11s/lib/libusb/ (props changed)
projects/mesh11s/lib/libusb/libusb.3 (props changed)
projects/mesh11s/lib/libusb/usb.h (props changed)
projects/mesh11s/lib/libutil/ (props changed)
projects/mesh11s/release/doc/en_US.ISO8859-1/hardware/article.sgml
projects/mesh11s/release/picobsd/tinyware/ns/ns.c
projects/mesh11s/sbin/ (props changed)
projects/mesh11s/sbin/ipfw/ (props changed)
projects/mesh11s/share/man/man4/pts.4
projects/mesh11s/share/man/man5/rc.conf.5
projects/mesh11s/share/zoneinfo/ (props changed)
projects/mesh11s/share/zoneinfo/africa
projects/mesh11s/sys/ (props changed)
projects/mesh11s/sys/amd64/amd64/busdma_machdep.c
projects/mesh11s/sys/amd64/include/xen/ (props changed)
projects/mesh11s/sys/arm/arm/busdma_machdep.c
projects/mesh11s/sys/compat/linux/linux_socket.c
projects/mesh11s/sys/conf/files.powerpc
projects/mesh11s/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
projects/mesh11s/sys/contrib/pf/ (props changed)
projects/mesh11s/sys/dev/acpica/acpi.c
projects/mesh11s/sys/dev/ata/ata-pci.c
projects/mesh11s/sys/dev/ata/ata-pci.h
projects/mesh11s/sys/dev/ata/ata-usb.c (props changed)
projects/mesh11s/sys/dev/ata/atapi-tape.c
projects/mesh11s/sys/dev/ata/chipsets/ata-ahci.c
projects/mesh11s/sys/dev/ata/chipsets/ata-ati.c
projects/mesh11s/sys/dev/cxgb/ (props changed)
projects/mesh11s/sys/dev/cxgb/cxgb_multiq.c
projects/mesh11s/sys/dev/e1000/if_em.c
projects/mesh11s/sys/dev/e1000/if_em.h
projects/mesh11s/sys/dev/e1000/if_igb.c
projects/mesh11s/sys/dev/ed/if_ed_pccard.c
projects/mesh11s/sys/dev/fb/creator.c
projects/mesh11s/sys/dev/mxge/if_mxge.c
projects/mesh11s/sys/dev/mxge/if_mxge_var.h
projects/mesh11s/sys/dev/nve/if_nve.c
projects/mesh11s/sys/dev/pccard/pccarddevs
projects/mesh11s/sys/dev/rp/rp.c
projects/mesh11s/sys/dev/rp/rp_pci.c
projects/mesh11s/sys/dev/rp/rpreg.h
projects/mesh11s/sys/dev/sound/usb/uaudio.c (props changed)
projects/mesh11s/sys/dev/sound/usb/uaudio.h (props changed)
projects/mesh11s/sys/dev/sound/usb/uaudio_pcm.c (props changed)
projects/mesh11s/sys/dev/sound/usb/uaudioreg.h (props changed)
projects/mesh11s/sys/dev/usb/README.TXT (props changed)
projects/mesh11s/sys/dev/usb/bluetooth/TODO.TXT (props changed)
projects/mesh11s/sys/dev/usb/bluetooth/ng_ubt.c (props changed)
projects/mesh11s/sys/dev/usb/bluetooth/ng_ubt_var.h (props changed)
projects/mesh11s/sys/dev/usb/bluetooth/ubtbcmfw.c (props changed)
projects/mesh11s/sys/dev/usb/controller/at91dci.c (props changed)
projects/mesh11s/sys/dev/usb/controller/at91dci.h (props changed)
projects/mesh11s/sys/dev/usb/controller/at91dci_atmelarm.c (props changed)
projects/mesh11s/sys/dev/usb/controller/atmegadci.c (props changed)
projects/mesh11s/sys/dev/usb/controller/atmegadci.h (props changed)
projects/mesh11s/sys/dev/usb/controller/atmegadci_atmelarm.c (props changed)
projects/mesh11s/sys/dev/usb/controller/ehci.c (contents, props changed)
projects/mesh11s/sys/dev/usb/controller/ehci.h (props changed)
projects/mesh11s/sys/dev/usb/controller/ehci_ixp4xx.c (props changed)
projects/mesh11s/sys/dev/usb/controller/ehci_mbus.c (props changed)
projects/mesh11s/sys/dev/usb/controller/ehci_pci.c (props changed)
projects/mesh11s/sys/dev/usb/controller/musb_otg.c (props changed)
projects/mesh11s/sys/dev/usb/controller/musb_otg.h (props changed)
projects/mesh11s/sys/dev/usb/controller/musb_otg_atmelarm.c (props changed)
projects/mesh11s/sys/dev/usb/controller/ohci.c (contents, props changed)
projects/mesh11s/sys/dev/usb/controller/ohci.h (props changed)
projects/mesh11s/sys/dev/usb/controller/ohci_atmelarm.c (props changed)
projects/mesh11s/sys/dev/usb/controller/ohci_pci.c (props changed)
projects/mesh11s/sys/dev/usb/controller/uhci.c (contents, props changed)
projects/mesh11s/sys/dev/usb/controller/uhci.h (props changed)
projects/mesh11s/sys/dev/usb/controller/uhci_pci.c (props changed)
projects/mesh11s/sys/dev/usb/controller/usb_controller.c (props changed)
projects/mesh11s/sys/dev/usb/controller/uss820dci.c (props changed)
projects/mesh11s/sys/dev/usb/controller/uss820dci.h (props changed)
projects/mesh11s/sys/dev/usb/controller/uss820dci_atmelarm.c (props changed)
projects/mesh11s/sys/dev/usb/input/uhid.c (props changed)
projects/mesh11s/sys/dev/usb/input/ukbd.c (props changed)
projects/mesh11s/sys/dev/usb/input/ums.c (props changed)
projects/mesh11s/sys/dev/usb/input/usb_rdesc.h (props changed)
projects/mesh11s/sys/dev/usb/misc/udbp.c (props changed)
projects/mesh11s/sys/dev/usb/misc/udbp.h (props changed)
projects/mesh11s/sys/dev/usb/misc/ufm.c (props changed)
projects/mesh11s/sys/dev/usb/net/if_aue.c (props changed)
projects/mesh11s/sys/dev/usb/net/if_auereg.h (props changed)
projects/mesh11s/sys/dev/usb/net/if_axe.c (props changed)
projects/mesh11s/sys/dev/usb/net/if_axereg.h (props changed)
projects/mesh11s/sys/dev/usb/net/if_cdce.c (props changed)
projects/mesh11s/sys/dev/usb/net/if_cdcereg.h (props changed)
projects/mesh11s/sys/dev/usb/net/if_cue.c (props changed)
projects/mesh11s/sys/dev/usb/net/if_cuereg.h (props changed)
projects/mesh11s/sys/dev/usb/net/if_kue.c (props changed)
projects/mesh11s/sys/dev/usb/net/if_kuefw.h (props changed)
projects/mesh11s/sys/dev/usb/net/if_kuereg.h (props changed)
projects/mesh11s/sys/dev/usb/net/if_rue.c (props changed)
projects/mesh11s/sys/dev/usb/net/if_ruereg.h (props changed)
projects/mesh11s/sys/dev/usb/net/if_udav.c (props changed)
projects/mesh11s/sys/dev/usb/net/if_udavreg.h (props changed)
projects/mesh11s/sys/dev/usb/net/usb_ethernet.c (props changed)
projects/mesh11s/sys/dev/usb/net/usb_ethernet.h (props changed)
projects/mesh11s/sys/dev/usb/quirk/usb_quirk.c (props changed)
projects/mesh11s/sys/dev/usb/quirk/usb_quirk.h (props changed)
projects/mesh11s/sys/dev/usb/serial/u3g.c (props changed)
projects/mesh11s/sys/dev/usb/serial/uark.c (props changed)
projects/mesh11s/sys/dev/usb/serial/ubsa.c (props changed)
projects/mesh11s/sys/dev/usb/serial/ubser.c (props changed)
projects/mesh11s/sys/dev/usb/serial/uchcom.c (props changed)
projects/mesh11s/sys/dev/usb/serial/ucycom.c (props changed)
projects/mesh11s/sys/dev/usb/serial/ufoma.c (props changed)
projects/mesh11s/sys/dev/usb/serial/uftdi.c (props changed)
projects/mesh11s/sys/dev/usb/serial/uftdi_reg.h (props changed)
projects/mesh11s/sys/dev/usb/serial/ugensa.c (props changed)
projects/mesh11s/sys/dev/usb/serial/uipaq.c (props changed)
projects/mesh11s/sys/dev/usb/serial/ulpt.c (props changed)
projects/mesh11s/sys/dev/usb/serial/umct.c (props changed)
projects/mesh11s/sys/dev/usb/serial/umodem.c (props changed)
projects/mesh11s/sys/dev/usb/serial/umoscom.c (props changed)
projects/mesh11s/sys/dev/usb/serial/uplcom.c (props changed)
projects/mesh11s/sys/dev/usb/serial/usb_serial.c (props changed)
projects/mesh11s/sys/dev/usb/serial/usb_serial.h (props changed)
projects/mesh11s/sys/dev/usb/serial/uslcom.c (props changed)
projects/mesh11s/sys/dev/usb/serial/uvisor.c (props changed)
projects/mesh11s/sys/dev/usb/serial/uvscom.c (props changed)
projects/mesh11s/sys/dev/usb/storage/rio500_usb.h (props changed)
projects/mesh11s/sys/dev/usb/storage/umass.c (props changed)
projects/mesh11s/sys/dev/usb/storage/urio.c (props changed)
projects/mesh11s/sys/dev/usb/storage/ustorage_fs.c (props changed)
projects/mesh11s/sys/dev/usb/template/usb_template.c (props changed)
projects/mesh11s/sys/dev/usb/template/usb_template.h (props changed)
projects/mesh11s/sys/dev/usb/template/usb_template_cdce.c (props changed)
projects/mesh11s/sys/dev/usb/template/usb_template_msc.c (props changed)
projects/mesh11s/sys/dev/usb/template/usb_template_mtp.c (props changed)
projects/mesh11s/sys/dev/usb/ufm_ioctl.h (props changed)
projects/mesh11s/sys/dev/usb/usb.h (props changed)
projects/mesh11s/sys/dev/usb/usb_bus.h (props changed)
projects/mesh11s/sys/dev/usb/usb_busdma.c (props changed)
projects/mesh11s/sys/dev/usb/usb_busdma.h (props changed)
projects/mesh11s/sys/dev/usb/usb_cdc.h (props changed)
projects/mesh11s/sys/dev/usb/usb_compat_linux.c (props changed)
projects/mesh11s/sys/dev/usb/usb_compat_linux.h (props changed)
projects/mesh11s/sys/dev/usb/usb_controller.h (props changed)
projects/mesh11s/sys/dev/usb/usb_core.c (props changed)
projects/mesh11s/sys/dev/usb/usb_core.h (contents, props changed)
projects/mesh11s/sys/dev/usb/usb_debug.c (props changed)
projects/mesh11s/sys/dev/usb/usb_debug.h (props changed)
projects/mesh11s/sys/dev/usb/usb_defs.h (props changed)
projects/mesh11s/sys/dev/usb/usb_dev.c (props changed)
projects/mesh11s/sys/dev/usb/usb_dev.h (props changed)
projects/mesh11s/sys/dev/usb/usb_device.c (contents, props changed)
projects/mesh11s/sys/dev/usb/usb_device.h (contents, props changed)
projects/mesh11s/sys/dev/usb/usb_dynamic.c (props changed)
projects/mesh11s/sys/dev/usb/usb_dynamic.h (props changed)
projects/mesh11s/sys/dev/usb/usb_endian.h (props changed)
projects/mesh11s/sys/dev/usb/usb_error.c (props changed)
projects/mesh11s/sys/dev/usb/usb_error.h (props changed)
projects/mesh11s/sys/dev/usb/usb_generic.c (contents, props changed)
projects/mesh11s/sys/dev/usb/usb_generic.h (props changed)
projects/mesh11s/sys/dev/usb/usb_handle_request.c (props changed)
projects/mesh11s/sys/dev/usb/usb_handle_request.h (props changed)
projects/mesh11s/sys/dev/usb/usb_hid.c (props changed)
projects/mesh11s/sys/dev/usb/usb_hid.h (props changed)
projects/mesh11s/sys/dev/usb/usb_hub.c (contents, props changed)
projects/mesh11s/sys/dev/usb/usb_hub.h (props changed)
projects/mesh11s/sys/dev/usb/usb_if.m (props changed)
projects/mesh11s/sys/dev/usb/usb_ioctl.h (props changed)
projects/mesh11s/sys/dev/usb/usb_lookup.c (props changed)
projects/mesh11s/sys/dev/usb/usb_lookup.h (props changed)
projects/mesh11s/sys/dev/usb/usb_mbuf.c (props changed)
projects/mesh11s/sys/dev/usb/usb_mbuf.h (props changed)
projects/mesh11s/sys/dev/usb/usb_mfunc.h (props changed)
projects/mesh11s/sys/dev/usb/usb_msctest.c (props changed)
projects/mesh11s/sys/dev/usb/usb_msctest.h (props changed)
projects/mesh11s/sys/dev/usb/usb_parse.c (props changed)
projects/mesh11s/sys/dev/usb/usb_parse.h (props changed)
projects/mesh11s/sys/dev/usb/usb_pci.h (props changed)
projects/mesh11s/sys/dev/usb/usb_process.c (props changed)
projects/mesh11s/sys/dev/usb/usb_process.h (props changed)
projects/mesh11s/sys/dev/usb/usb_request.c (contents, props changed)
projects/mesh11s/sys/dev/usb/usb_request.h (props changed)
projects/mesh11s/sys/dev/usb/usb_revision.h (contents, props changed)
projects/mesh11s/sys/dev/usb/usb_transfer.c (contents, props changed)
projects/mesh11s/sys/dev/usb/usb_transfer.h (props changed)
projects/mesh11s/sys/dev/usb/usb_util.c (props changed)
projects/mesh11s/sys/dev/usb/usb_util.h (props changed)
projects/mesh11s/sys/dev/usb/usbdevs (props changed)
projects/mesh11s/sys/dev/usb/usbhid.h (props changed)
projects/mesh11s/sys/dev/usb/wlan/if_rum.c (props changed)
projects/mesh11s/sys/dev/usb/wlan/if_rumfw.h (props changed)
projects/mesh11s/sys/dev/usb/wlan/if_rumreg.h (props changed)
projects/mesh11s/sys/dev/usb/wlan/if_rumvar.h (props changed)
projects/mesh11s/sys/dev/usb/wlan/if_ural.c (props changed)
projects/mesh11s/sys/dev/usb/wlan/if_uralreg.h (props changed)
projects/mesh11s/sys/dev/usb/wlan/if_uralvar.h (props changed)
projects/mesh11s/sys/dev/usb/wlan/if_zyd.c (props changed)
projects/mesh11s/sys/dev/usb/wlan/if_zydfw.h (props changed)
projects/mesh11s/sys/dev/usb/wlan/if_zydreg.h (props changed)
projects/mesh11s/sys/dev/usb/wlan/usb_wlan.h (props changed)
projects/mesh11s/sys/dev/xen/netfront/ (props changed)
projects/mesh11s/sys/dev/xen/xenpci/ (props changed)
projects/mesh11s/sys/dev/xl/if_xl.c
projects/mesh11s/sys/i386/i386/busdma_machdep.c
projects/mesh11s/sys/ia64/isa/isa.c
projects/mesh11s/sys/kern/kern_cpuset.c
projects/mesh11s/sys/kern/kern_rmlock.c
projects/mesh11s/sys/kern/kern_vimage.c
projects/mesh11s/sys/kern/tty_pts.c
projects/mesh11s/sys/legacy/dev/ata/ata-usb.c (props changed)
projects/mesh11s/sys/legacy/dev/sound/usb/uaudio.c (props changed)
projects/mesh11s/sys/legacy/dev/sound/usb/uaudio.h (props changed)
projects/mesh11s/sys/legacy/dev/sound/usb/uaudio_pcm.c (props changed)
projects/mesh11s/sys/legacy/dev/sound/usb/uaudioreg.h (props changed)
projects/mesh11s/sys/legacy/dev/usb/ (props changed)
projects/mesh11s/sys/legacy/dev/usb/ehci_ixp4xx.c (props changed)
projects/mesh11s/sys/modules/dtrace/dtnfsclient/ (props changed)
projects/mesh11s/sys/modules/ip6_mroute_mod/ (props changed)
projects/mesh11s/sys/modules/ipmi/ipmi_linux/ (props changed)
projects/mesh11s/sys/net/bridgestp.c
projects/mesh11s/sys/net/flowtable.c
projects/mesh11s/sys/net/if_arcsubr.c
projects/mesh11s/sys/net/if_bridge.c
projects/mesh11s/sys/net/if_ef.c
projects/mesh11s/sys/net/if_loop.c
projects/mesh11s/sys/net/route.c
projects/mesh11s/sys/net/rtsock.c
projects/mesh11s/sys/net80211/ieee80211_adhoc.c
projects/mesh11s/sys/net80211/ieee80211_ddb.c
projects/mesh11s/sys/net80211/ieee80211_freebsd.h
projects/mesh11s/sys/net80211/ieee80211_hostap.c
projects/mesh11s/sys/net80211/ieee80211_ht.c
projects/mesh11s/sys/net80211/ieee80211_ioctl.c
projects/mesh11s/sys/net80211/ieee80211_output.c
projects/mesh11s/sys/net80211/ieee80211_sta.c
projects/mesh11s/sys/net80211/ieee80211_superg.c
projects/mesh11s/sys/net80211/ieee80211_var.h
projects/mesh11s/sys/net80211/ieee80211_wds.c
projects/mesh11s/sys/netgraph/netgraph.h
projects/mesh11s/sys/netgraph/ng_base.c
projects/mesh11s/sys/netgraph/ng_eiface.c
projects/mesh11s/sys/netgraph/ng_ether.c
projects/mesh11s/sys/netgraph/ng_iface.c
projects/mesh11s/sys/netinet/igmp.c
projects/mesh11s/sys/netinet/in.c
projects/mesh11s/sys/netinet/in_mcast.c
projects/mesh11s/sys/netinet/in_rmx.c
projects/mesh11s/sys/netinet/ip_carp.c
projects/mesh11s/sys/netinet/ip_divert.c
projects/mesh11s/sys/netinet/ip_fw2.c
projects/mesh11s/sys/netinet/ip_fw_pfil.c
projects/mesh11s/sys/netinet/ip_ipsec.c
projects/mesh11s/sys/netinet/ip_mroute.c
projects/mesh11s/sys/netinet/ip_output.c
projects/mesh11s/sys/netinet/tcp_subr.c
projects/mesh11s/sys/netinet/tcp_timewait.c
projects/mesh11s/sys/netinet/udp_usrreq.c
projects/mesh11s/sys/netinet6/in6_rmx.c
projects/mesh11s/sys/netinet6/nd6_rtr.c
projects/mesh11s/sys/netipsec/key.c
projects/mesh11s/sys/netipsec/key.h
projects/mesh11s/sys/netipx/spx_usrreq.c
projects/mesh11s/sys/powerpc/aim/machdep.c
projects/mesh11s/sys/powerpc/booke/pmap.c
projects/mesh11s/sys/powerpc/conf/MPC85XX
projects/mesh11s/sys/powerpc/include/intr_machdep.h
projects/mesh11s/sys/powerpc/include/pte.h
projects/mesh11s/sys/powerpc/mpc85xx/ocpbus.c
projects/mesh11s/sys/powerpc/mpc85xx/pci_ocp.c
projects/mesh11s/sys/powerpc/powerpc/autoconf.c
projects/mesh11s/sys/powerpc/powerpc/bus_machdep.c
projects/mesh11s/sys/powerpc/powerpc/intr_machdep.c
projects/mesh11s/sys/sys/mbuf.h
projects/mesh11s/sys/sys/queue.h
projects/mesh11s/sys/sys/vimage.h
projects/mesh11s/sys/ufs/ufs/dinode.h
projects/mesh11s/sys/ufs/ufs/inode.h
projects/mesh11s/sys/ufs/ufs/ufs_vnops.c
projects/mesh11s/sys/vm/swap_pager.c
projects/mesh11s/sys/vm/vm_fault.c
projects/mesh11s/sys/vm/vm_object.c
projects/mesh11s/sys/vm/vm_pageout.c
projects/mesh11s/sys/vm/vnode_pager.c
projects/mesh11s/sys/xen/evtchn.h (props changed)
projects/mesh11s/sys/xen/hypervisor.h (props changed)
projects/mesh11s/sys/xen/xen_intr.h (props changed)
projects/mesh11s/tools/regression/lib/msun/test-conj.t (props changed)
projects/mesh11s/tools/regression/usr.bin/pkill/pgrep-_g.t (props changed)
projects/mesh11s/tools/regression/usr.bin/pkill/pgrep-_s.t (props changed)
projects/mesh11s/tools/regression/usr.bin/pkill/pkill-_g.t (props changed)
projects/mesh11s/tools/tools/ath/common/dumpregs.h (props changed)
projects/mesh11s/tools/tools/ath/common/dumpregs_5210.c (props changed)
projects/mesh11s/tools/tools/ath/common/dumpregs_5211.c (props changed)
projects/mesh11s/tools/tools/ath/common/dumpregs_5212.c (props changed)
projects/mesh11s/tools/tools/ath/common/dumpregs_5416.c (props changed)
projects/mesh11s/usr.bin/csup/ (props changed)
projects/mesh11s/usr.bin/procstat/ (props changed)
projects/mesh11s/usr.sbin/arp/arp.8
projects/mesh11s/usr.sbin/dumpcis/cardinfo.h (props changed)
projects/mesh11s/usr.sbin/dumpcis/cis.h (props changed)
projects/mesh11s/usr.sbin/kbdmap/kbdmap.1
projects/mesh11s/usr.sbin/makefs/ffs/ffs_bswap.c (props changed)
projects/mesh11s/usr.sbin/makefs/ffs/ffs_subr.c (props changed)
projects/mesh11s/usr.sbin/makefs/ffs/ufs_bswap.h (props changed)
projects/mesh11s/usr.sbin/makefs/getid.c (props changed)
projects/mesh11s/usr.sbin/zic/ (props changed)
Modified: projects/mesh11s/UPDATING
==============================================================================
--- projects/mesh11s/UPDATING Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/UPDATING Tue Apr 28 23:36:29 2009 (r191642)
@@ -22,27 +22,35 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.
to maximize performance. (To disable malloc debugging, run
ln -s aj /etc/malloc.conf.)
-20090422
+20090422:
Implement low-level Bluetooth HCI API.
Bump __FreeBSD_version to 800083.
+20090419:
+ The layout of struct malloc_type, used by modules to register new
+ memory allocation types, has changed. Most modules will need to
+ be rebuilt or panics may be experienced.
+ Bump __FreeBSD_version to 800081.
+
20090415:
- Anticipate overflowing inp_flags - add inp_flags2.
+ Anticipate overflowing inp_flags - add inp_flags2.
This changes most offsets in inpcb, so checking v4 connection
- state will require a world rebuild.
+ state will require a world rebuild.
Bump __FreeBSD_version to 800080.
+
20090415:
Add an llentry to struct route and struct route_in6. Modules
- embedding a struct route will need to be recompiled.
+ embedding a struct route will need to be recompiled.
Bump __FreeBSD_version to 800079.
20090414:
The size of rt_metrics_lite and by extension rtentry has changed.
Networking administration apps will need to be recompiled.
- The route command now supports show as an alias for get, weighting
+ The route command now supports show as an alias for get, weighting
of routes, sticky and nostick flags to alter the behavior of stateful
load balancing.
Bump __FreeBSD_version to 800078.
+
20090408:
Do not use Giant for kbdmux(4) locking. This is wrong and
apparently causing more problems than it solves. This will
@@ -62,7 +70,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.
GEOM_PART has become the default partition slicer for storage devices,
replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It
introduces some changes:
-
+
MSDOS/EBR: the devices created from MSDOS extended partition entries
(EBR) can be named differently than with GEOM_MBR and are now symlinks
to devices with offset-based names. fstabs may need to be modified.
@@ -71,7 +79,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.
cases but it points to problems in file system misalignment with
disk geometry. The "c" partition is now implicit, covers the whole
top-level drive and cannot be (mis)used by users.
-
+
General: Kernel dumps are now not allowed to be written to devices
whose partition types indicate they are meant to be used for file
systems (or, in case of MSDOS partitions, as something else than
Modified: projects/mesh11s/contrib/ipfilter/ipsend/sbpf.c
==============================================================================
--- projects/mesh11s/contrib/ipfilter/ipsend/sbpf.c Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/contrib/ipfilter/ipsend/sbpf.c Tue Apr 28 23:36:29 2009 (r191642)
@@ -28,9 +28,6 @@
#include <netinet/in_systm.h>
#include <netinet/ip.h>
#include <netinet/ip_var.h>
-#include <netinet/udp.h>
-#include <netinet/udp_var.h>
-#include <netinet/tcp.h>
#include <stdio.h>
#include <netdb.h>
Modified: projects/mesh11s/etc/rc.d/jail
==============================================================================
--- projects/mesh11s/etc/rc.d/jail Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/etc/rc.d/jail Tue Apr 28 23:36:29 2009 (r191642)
@@ -41,6 +41,14 @@ init_variables()
eval _ip=\"\$jail_${_j}_ip\"
eval _interface=\"\${jail_${_j}_interface:-${jail_interface}}\"
eval _exec=\"\$jail_${_j}_exec\"
+
+ i=0
+ while : ; do
+ eval _exec_prestart${i}=\"\${jail_${_j}_exec_prestart${i}:-\${jail_exec_prestart${i}}}\"
+ [ -z "$(eval echo \"\$_exec_prestart${i}\")" ] && break
+ i=$((i + 1))
+ done
+
eval _exec_start=\"\${jail_${_j}_exec_start:-${jail_exec_start}}\"
i=1
@@ -49,8 +57,30 @@ init_variables()
[ -z "$(eval echo \"\$_exec_afterstart${i}\")" ] && break
i=$((i + 1))
done
-
+
+ i=0
+ while : ; do
+ eval _exec_poststart${i}=\"\${jail_${_j}_exec_poststart${i}:-\${jail_exec_poststart${i}}}\"
+ [ -z "$(eval echo \"\$_exec_poststart${i}\")" ] && break
+ i=$((i + 1))
+ done
+
+ i=0
+ while : ; do
+ eval _exec_prestop${i}=\"\${jail_${_j}_exec_prestop${i}:-\${jail_exec_prestop${i}}}\"
+ [ -z "$(eval echo \"\$_exec_prestop${i}\")" ] && break
+ i=$((i + 1))
+ done
+
eval _exec_stop=\"\${jail_${_j}_exec_stop:-${jail_exec_stop}}\"
+
+ i=0
+ while : ; do
+ eval _exec_poststop${i}=\"\${jail_${_j}_exec_poststop${i}:-\${jail_exec_poststop${i}}}\"
+ [ -z "$(eval echo \"\$_exec_poststop${i}\")" ] && break
+ i=$((i + 1))
+ done
+
if [ -n "${_exec}" ]; then
# simple/backward-compatible execution
_exec_start="${_exec}"
@@ -102,9 +132,20 @@ init_variables()
debug "$_j procdir: $_procdir"
debug "$_j ruleset: $_ruleset"
debug "$_j fstab: $_fstab"
- debug "$_j exec start: $_exec_start"
debug "$_j consolelog: $_consolelog"
+ i=0
+ while : ; do
+ eval out=\"\${_exec_prestart${i}:-''}\"
+ if [ -z "$out" ]; then
+ break
+ fi
+ debug "$_j exec pre-start #${i}: ${out}"
+ i=$((i + 1))
+ done
+
+ debug "$_j exec start: $_exec_start"
+
i=1
while [ true ]; do
eval out=\"\${_exec_afterstart${i}:-''}\"
@@ -117,7 +158,38 @@ init_variables()
i=$((i + 1))
done
+ i=0
+ while : ; do
+ eval out=\"\${_exec_poststart${i}:-''}\"
+ if [ -z "$out" ]; then
+ break
+ fi
+ debug "$_j exec post-start #${i}: ${out}"
+ i=$((i + 1))
+ done
+
+ i=0
+ while : ; do
+ eval out=\"\${_exec_prestop${i}:-''}\"
+ if [ -z "$out" ]; then
+ break
+ fi
+ debug "$_j exec pre-stop #${i}: ${out}"
+ i=$((i + 1))
+ done
+
debug "$_j exec stop: $_exec_stop"
+
+ i=0
+ while : ; do
+ eval out=\"\${_exec_poststop${i}:-''}\"
+ if [ -z "$out" ]; then
+ break
+ fi
+ debug "$_j exec post-stop #${i}: ${out}"
+ i=$((i + 1))
+ done
+
debug "$_j flags: $_flags"
debug "$_j consolelog: $_consolelog"
@@ -555,6 +627,15 @@ jail_start()
fi
fi
_tmp_jail=${_tmp_dir}/jail.$$
+
+ i=0
+ while : ; do
+ eval out=\"\${_exec_prestart${i}:-''}\"
+ [ -z "$out" ] && break
+ ${out}
+ i=$((i + 1))
+ done
+
eval ${_setfib} jail ${_flags} -i ${_rootdir} ${_hostname} \
\"${_addrl}\" ${_exec_start} > ${_tmp_jail} 2>&1
@@ -575,6 +656,14 @@ jail_start()
echo -n " $_hostname"
tail +2 ${_tmp_jail} >${_consolelog}
echo ${_jail_id} > /var/run/jail_${_jail}.id
+
+ i=0
+ while : ; do
+ eval out=\"\${_exec_poststart${i}:-''}\"
+ [ -z "$out" ] && break
+ ${out}
+ i=$((i + 1))
+ done
else
jail_umount_fs
jail_ips "del"
@@ -596,6 +685,15 @@ jail_stop()
_jail_id=$(cat /var/run/jail_${_jail}.id)
if [ ! -z "${_jail_id}" ]; then
init_variables $_jail
+
+ i=0
+ while : ; do
+ eval out=\"\${_exec_prestop${i}:-''}\"
+ [ -z "$out" ] && break
+ ${out}
+ i=$((i + 1))
+ done
+
if [ -n "${_exec_stop}" ]; then
eval env -i /usr/sbin/jexec ${_jail_id} ${_exec_stop} \
>> ${_consolelog} 2>&1
@@ -605,6 +703,14 @@ jail_stop()
killall -j ${_jail_id} -KILL > /dev/null 2>&1
jail_umount_fs
echo -n " $_hostname"
+
+ i=0
+ while : ; do
+ eval out=\"\${_exec_poststop${i}:-''}\"
+ [ -z "$out" ] && break
+ ${out}
+ i=$((i + 1))
+ done
fi
jail_ips "del"
rm /var/run/jail_${_jail}.id
Modified: projects/mesh11s/lib/libarchive/Makefile
==============================================================================
--- projects/mesh11s/lib/libarchive/Makefile Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/lib/libarchive/Makefile Tue Apr 28 23:36:29 2009 (r191642)
@@ -11,6 +11,9 @@ SHLIB_MAJOR= 4
CFLAGS+= -DPLATFORM_CONFIG_H=\"config_freebsd.h\"
CFLAGS+= -I${.OBJDIR}
+#Uncomment to build with full lzma/xz support via liblzma
+#CFLAGS+= -I/usr/local/include -DHAVE_LIBLZMA=1 -DHAVE_LZMA_H=1
+#LDADD+= -L/usr/local/lib -llzma
.if ${MK_OPENSSL} != "no"
CFLAGS+= -DWITH_OPENSSL
@@ -52,6 +55,7 @@ SRCS= archive_check_magic.c \
archive_read_support_format_empty.c \
archive_read_support_format_iso9660.c \
archive_read_support_format_mtree.c \
+ archive_read_support_format_raw.c \
archive_read_support_format_tar.c \
archive_read_support_format_zip.c \
archive_string.c \
@@ -177,6 +181,7 @@ MLINKS+= archive_read.3 archive_read_ext
MLINKS+= archive_read.3 archive_read_finish.3
MLINKS+= archive_read.3 archive_read_new.3
MLINKS+= archive_read.3 archive_read_next_header.3
+MLINKS+= archive_read.3 archive_read_next_header2.3
MLINKS+= archive_read.3 archive_read_open.3
MLINKS+= archive_read.3 archive_read_open2.3
MLINKS+= archive_read.3 archive_read_open_FILE.3
@@ -188,11 +193,17 @@ MLINKS+= archive_read.3 archive_read_sup
MLINKS+= archive_read.3 archive_read_support_compression_bzip2.3
MLINKS+= archive_read.3 archive_read_support_compression_compress.3
MLINKS+= archive_read.3 archive_read_support_compression_gzip.3
+MLINKS+= archive_read.3 archive_read_support_compression_lzma.3
MLINKS+= archive_read.3 archive_read_support_compression_none.3
MLINKS+= archive_read.3 archive_read_support_compression_program.3
+MLINKS+= archive_read.3 archive_read_support_compression_program_signature.3
+MLINKS+= archive_read.3 archive_read_support_compression_xz.3
MLINKS+= archive_read.3 archive_read_support_format_all.3
+MLINKS+= archive_read.3 archive_read_support_format_ar.3
MLINKS+= archive_read.3 archive_read_support_format_cpio.3
+MLINKS+= archive_read.3 archive_read_support_format_empty.3
MLINKS+= archive_read.3 archive_read_support_format_iso9660.3
+MLINKS+= archive_read.3 archive_read_support_format_raw.3
MLINKS+= archive_read.3 archive_read_support_format_tar.3
MLINKS+= archive_read.3 archive_read_support_format_zip.3
MLINKS+= archive_read_disk.3 archive_read_disk_entry_from_file.3
Modified: projects/mesh11s/lib/libarchive/archive.h
==============================================================================
--- projects/mesh11s/lib/libarchive/archive.h Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/lib/libarchive/archive.h Tue Apr 28 23:36:29 2009 (r191642)
@@ -272,6 +272,7 @@ typedef int archive_close_callback(struc
#define ARCHIVE_FORMAT_AR_GNU (ARCHIVE_FORMAT_AR | 1)
#define ARCHIVE_FORMAT_AR_BSD (ARCHIVE_FORMAT_AR | 2)
#define ARCHIVE_FORMAT_MTREE 0x80000
+#define ARCHIVE_FORMAT_RAW 0x90000
/*-
* Basic outline for reading an archive:
@@ -315,6 +316,7 @@ __LA_DECL int archive_read_support_for
__LA_DECL int archive_read_support_format_gnutar(struct archive *);
__LA_DECL int archive_read_support_format_iso9660(struct archive *);
__LA_DECL int archive_read_support_format_mtree(struct archive *);
+__LA_DECL int archive_read_support_format_raw(struct archive *);
__LA_DECL int archive_read_support_format_tar(struct archive *);
__LA_DECL int archive_read_support_format_zip(struct archive *);
Modified: projects/mesh11s/lib/libarchive/archive_entry.c
==============================================================================
--- projects/mesh11s/lib/libarchive/archive_entry.c Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/lib/libarchive/archive_entry.c Tue Apr 28 23:36:29 2009 (r191642)
@@ -115,6 +115,7 @@ static int acl_special(struct archive_en
static struct ae_acl *acl_new_entry(struct archive_entry *entry,
int type, int permset, int tag, int id);
static int isint_w(const wchar_t *start, const wchar_t *end, int *result);
+static int ismode_w(const wchar_t *start, const wchar_t *end, int *result);
static void next_field_w(const wchar_t **wp, const wchar_t **start,
const wchar_t **end, wchar_t *sep);
static int prefix_w(const wchar_t *start, const wchar_t *end,
@@ -1238,7 +1239,7 @@ static struct ae_acl *
acl_new_entry(struct archive_entry *entry,
int type, int permset, int tag, int id)
{
- struct ae_acl *ap;
+ struct ae_acl *ap, *aq;
if (type != ARCHIVE_ENTRY_ACL_TYPE_ACCESS &&
type != ARCHIVE_ENTRY_ACL_TYPE_DEFAULT)
@@ -1251,20 +1252,26 @@ acl_new_entry(struct archive_entry *entr
/* XXX TODO: More sanity-checks on the arguments XXX */
/* If there's a matching entry already in the list, overwrite it. */
- for (ap = entry->acl_head; ap != NULL; ap = ap->next) {
+ ap = entry->acl_head;
+ aq = NULL;
+ while (ap != NULL) {
if (ap->type == type && ap->tag == tag && ap->id == id) {
ap->permset = permset;
return (ap);
}
+ aq = ap;
+ ap = ap->next;
}
- /* Add a new entry to the list. */
+ /* Add a new entry to the end of the list. */
ap = (struct ae_acl *)malloc(sizeof(*ap));
if (ap == NULL)
return (NULL);
memset(ap, 0, sizeof(*ap));
- ap->next = entry->acl_head;
- entry->acl_head = ap;
+ if (aq == NULL)
+ entry->acl_head = ap;
+ else
+ aq->next = ap;
ap->type = type;
ap->tag = tag;
ap->id = id;
@@ -1586,11 +1593,10 @@ __archive_entry_acl_parse_w(struct archi
struct {
const wchar_t *start;
const wchar_t *end;
- } field[4];
+ } field[4], name;
int fields;
int type, tag, permset, id;
- const wchar_t *p;
wchar_t sep;
while (text != NULL && *text != L'\0') {
@@ -1609,9 +1615,6 @@ __archive_entry_acl_parse_w(struct archi
++fields;
} while (sep == L':');
- if (fields < 3)
- return (ARCHIVE_WARN);
-
/* Check for a numeric ID in field 1 or 3. */
id = -1;
isint_w(field[1].start, field[1].end, &id);
@@ -1619,27 +1622,6 @@ __archive_entry_acl_parse_w(struct archi
if (id == -1 && fields > 3)
isint_w(field[3].start, field[3].end, &id);
- /* Parse the permissions from field 2. */
- permset = 0;
- p = field[2].start;
- while (p < field[2].end) {
- switch (*p++) {
- case 'r': case 'R':
- permset |= ARCHIVE_ENTRY_ACL_READ;
- break;
- case 'w': case 'W':
- permset |= ARCHIVE_ENTRY_ACL_WRITE;
- break;
- case 'x': case 'X':
- permset |= ARCHIVE_ENTRY_ACL_EXECUTE;
- break;
- case '-':
- break;
- default:
- return (ARCHIVE_WARN);
- }
- }
-
/*
* Solaris extension: "defaultuser::rwx" is the
* default ACL corresponding to "user::rwx", etc.
@@ -1651,22 +1633,47 @@ __archive_entry_acl_parse_w(struct archi
} else
type = default_type;
+ name.start = name.end = NULL;
if (prefix_w(field[0].start, field[0].end, L"user")) {
- if (id != -1 || field[1].start < field[1].end)
+ if (!ismode_w(field[2].start, field[2].end, &permset))
+ return (ARCHIVE_WARN);
+ if (id != -1 || field[1].start < field[1].end) {
tag = ARCHIVE_ENTRY_ACL_USER;
- else
+ name = field[1];
+ } else
tag = ARCHIVE_ENTRY_ACL_USER_OBJ;
} else if (prefix_w(field[0].start, field[0].end, L"group")) {
- if (id != -1 || field[1].start < field[1].end)
+ if (!ismode_w(field[2].start, field[2].end, &permset))
+ return (ARCHIVE_WARN);
+ if (id != -1 || field[1].start < field[1].end) {
tag = ARCHIVE_ENTRY_ACL_GROUP;
- else
+ name = field[1];
+ } else
tag = ARCHIVE_ENTRY_ACL_GROUP_OBJ;
} else if (prefix_w(field[0].start, field[0].end, L"other")) {
- if (id != -1 || field[1].start < field[1].end)
+ if (fields == 2
+ && field[1].start < field[1].end
+ && ismode_w(field[1].start, field[2].end, &permset)) {
+ /* This is Solaris-style "other:rwx" */
+ } else if (fields == 3
+ && field[1].start == field[1].end
+ && field[2].start < field[2].end
+ && ismode_w(field[2].start, field[2].end, &permset)) {
+ /* This is FreeBSD-style "other::rwx" */
+ } else
return (ARCHIVE_WARN);
tag = ARCHIVE_ENTRY_ACL_OTHER;
} else if (prefix_w(field[0].start, field[0].end, L"mask")) {
- if (id != -1 || field[1].start < field[1].end)
+ if (fields == 2
+ && field[1].start < field[1].end
+ && ismode_w(field[1].start, field[1].end, &permset)) {
+ /* This is Solaris-style "mask:rwx" */
+ } else if (fields == 3
+ && field[1].start == field[1].end
+ && field[2].start < field[2].end
+ && ismode_w(field[2].start, field[2].end, &permset)) {
+ /* This is FreeBSD-style "mask::rwx" */
+ } else
return (ARCHIVE_WARN);
tag = ARCHIVE_ENTRY_ACL_MASK;
} else
@@ -1674,7 +1681,7 @@ __archive_entry_acl_parse_w(struct archi
/* Add entry to the internal list. */
archive_entry_acl_add_entry_w_len(entry, type, permset,
- tag, id, field[1].start, field[1].end - field[1].start);
+ tag, id, name.start, name.end - name.start);
}
return (ARCHIVE_OK);
}
@@ -1798,6 +1805,38 @@ isint_w(const wchar_t *start, const wcha
}
/*
+ * Parse a string as a mode field. Returns true if
+ * the string is non-empty and consists only of mode characters,
+ * false otherwise.
+ */
+static int
+ismode_w(const wchar_t *start, const wchar_t *end, int *permset)
+{
+ const wchar_t *p;
+
+ p = start;
+ *permset = 0;
+ while (p < end) {
+ switch (*p++) {
+ case 'r': case 'R':
+ *permset |= ARCHIVE_ENTRY_ACL_READ;
+ break;
+ case 'w': case 'W':
+ *permset |= ARCHIVE_ENTRY_ACL_WRITE;
+ break;
+ case 'x': case 'X':
+ *permset |= ARCHIVE_ENTRY_ACL_EXECUTE;
+ break;
+ case '-':
+ break;
+ default:
+ return (0);
+ }
+ }
+ return (1);
+}
+
+/*
* Match "[:whitespace:]*(.*)[:whitespace:]*[:,\n]". *wp is updated
* to point to just after the separator. *start points to the first
* character of the matched text and *end just after the last
Modified: projects/mesh11s/lib/libarchive/archive_read.3
==============================================================================
--- projects/mesh11s/lib/libarchive/archive_read.3 Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/lib/libarchive/archive_read.3 Tue Apr 28 23:36:29 2009 (r191642)
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd August 19, 2006
+.Dd April 13, 2009
.Dt archive_read 3
.Os
.Sh NAME
@@ -36,12 +36,18 @@
.Nm archive_read_support_compression_bzip2 ,
.Nm archive_read_support_compression_compress ,
.Nm archive_read_support_compression_gzip ,
+.Nm archive_read_support_compression_lzma ,
.Nm archive_read_support_compression_none ,
+.Nm archive_read_support_compression_xz ,
.Nm archive_read_support_compression_program ,
+.Nm archive_read_support_compression_program_signature ,
.Nm archive_read_support_format_all ,
+.Nm archive_read_support_format_ar ,
.Nm archive_read_support_format_cpio ,
.Nm archive_read_support_format_empty ,
.Nm archive_read_support_format_iso9660 ,
+.Nm archive_read_support_format_mtree,
+.Nm archive_read_support_format_raw,
.Nm archive_read_support_format_tar ,
.Nm archive_read_support_format_zip ,
.Nm archive_read_open ,
@@ -78,21 +84,38 @@
.Ft int
.Fn archive_read_support_compression_gzip "struct archive *"
.Ft int
+.Fn archive_read_support_compression_lzma "struct archive *"
+.Ft int
.Fn archive_read_support_compression_none "struct archive *"
.Ft int
+.Fn archive_read_support_compression_xz "struct archive *"
+.Ft int
.Fo archive_read_support_compression_program
.Fa "struct archive *"
.Fa "const char *cmd"
.Fc
.Ft int
+.Fo archive_read_support_compression_program_signature
+.Fa "struct archive *"
+.Fa "const char *cmd"
+.Fa "const void *signature"
+.Fa "size_t signature_length"
+.Fc
+.Ft int
.Fn archive_read_support_format_all "struct archive *"
.Ft int
+.Fn archive_read_support_format_ar "struct archive *"
+.Ft int
.Fn archive_read_support_format_cpio "struct archive *"
.Ft int
.Fn archive_read_support_format_empty "struct archive *"
.Ft int
.Fn archive_read_support_format_iso9660 "struct archive *"
.Ft int
+.Fn archive_read_support_format_mtree "struct archive *"
+.Ft int
+.Fn archive_read_support_format_raw "struct archive *"
+.Ft int
.Fn archive_read_support_format_tar "struct archive *"
.Ft int
.Fn archive_read_support_format_zip "struct archive *"
@@ -189,30 +212,43 @@ Allocates and initializes a
.Tn struct archive
object suitable for reading from an archive.
.It Xo
-.Fn archive_read_support_compression_all ,
.Fn archive_read_support_compression_bzip2 ,
.Fn archive_read_support_compression_compress ,
.Fn archive_read_support_compression_gzip ,
-.Fn archive_read_support_compression_none
+.Fn archive_read_support_compression_lzma ,
+.Fn archive_read_support_compression_none ,
+.Fn archive_read_support_compression_xz
.Xc
Enables auto-detection code and decompression support for the
specified compression.
+Returns
+.Cm ARCHIVE_OK
+if the compression is fully supported, or
+.Cm ARCHIVE_WARN
+if the compression is supported only through an external program.
+Note that decompression using an external program is usually slower than
+decompression through built-in libraries.
Note that
.Dq none
is always enabled by default.
-For convenience,
-.Fn archive_read_support_compression_all
-enables all available decompression code.
+.It Fn archive_read_support_compression_all
+Enables all available decompression filters.
.It Fn archive_read_support_compression_program
Data is fed through the specified external program before being dearchived.
Note that this disables automatic detection of the compression format,
so it makes no sense to specify this in conjunction with any other
decompression option.
+.It Fn archive_read_support_compression_program_signature
+This feeds data through the specified external program
+but only if the initial bytes of the data match the specified
+signature value.
.It Xo
.Fn archive_read_support_format_all ,
+.Fn archive_read_support_format_ar ,
.Fn archive_read_support_format_cpio ,
.Fn archive_read_support_format_empty ,
.Fn archive_read_support_format_iso9660 ,
+.Fn archive_read_support_format_mtree ,
.Fn archive_read_support_format_tar ,
.Fn archive_read_support_format_zip
.Xc
@@ -226,6 +262,17 @@ For convenience,
.Fn archive_read_support_format_all
enables support for all available formats.
Only empty archives are supported by default.
+.It Fn archive_read_support_format_raw
+The
+.Dq raw
+format handler allows libarchive to be used to read arbitrary data.
+It treats any data stream as an archive with a single entry.
+The pathname of this entry is
+.Dq data ;
+all other entry fields are unset.
+This is not enabled by
+.Fn archive_read_support_format_all
+in order to avoid erroneous handling of damaged archives.
.It Xo
.Fn archive_read_set_filter_options ,
.Fn archive_read_set_format_options ,
@@ -322,9 +369,9 @@ a
.Tn struct archive_entry .
This is a convenience wrapper around
.Fn archive_read_next_header2
-that uses an internal
+that reuses an internal
.Tn struct archive_entry
-object.
+object for each request.
.It Fn archive_read_next_header2
Read the header for the next entry and populate the provided
.Tn struct archive_entry .
Modified: projects/mesh11s/lib/libarchive/archive_read.c
==============================================================================
--- projects/mesh11s/lib/libarchive/archive_read.c Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/lib/libarchive/archive_read.c Tue Apr 28 23:36:29 2009 (r191642)
@@ -1112,7 +1112,24 @@ __archive_read_filter_consume(struct arc
int64_t
__archive_read_skip(struct archive_read *a, int64_t request)
{
- return (__archive_read_filter_skip(a->filter, request));
+ int64_t skipped = __archive_read_skip_lenient(a, request);
+ if (skipped == request)
+ return (skipped);
+ /* We hit EOF before we satisfied the skip request. */
+ archive_set_error(&a->archive,
+ ARCHIVE_ERRNO_MISC,
+ "Truncated input file (needed %jd bytes, only %jd available)",
+ (intmax_t)request, (intmax_t)skipped);
+ return (ARCHIVE_FATAL);
+}
+
+int64_t
+__archive_read_skip_lenient(struct archive_read *a, int64_t request)
+{
+ int64_t skipped = __archive_read_filter_skip(a->filter, request);
+ if (skipped > 0)
+ a->archive.file_position += skipped;
+ return (skipped);
}
int64_t
@@ -1128,13 +1145,13 @@ __archive_read_filter_skip(struct archiv
*/
if (filter->avail > 0) {
min = minimum(request, (off_t)filter->avail);
- bytes_skipped = __archive_read_consume(filter->archive, min);
+ bytes_skipped = __archive_read_filter_consume(filter, min);
request -= bytes_skipped;
total_bytes_skipped += bytes_skipped;
}
if (filter->client_avail > 0) {
min = minimum(request, (off_t)filter->client_avail);
- bytes_skipped = __archive_read_consume(filter->archive, min);
+ bytes_skipped = __archive_read_filter_consume(filter, min);
request -= bytes_skipped;
total_bytes_skipped += bytes_skipped;
}
@@ -1155,7 +1172,6 @@ __archive_read_filter_skip(struct archiv
filter->fatal = 1;
return (bytes_skipped);
}
- filter->archive->archive.file_position += bytes_skipped;
total_bytes_skipped += bytes_skipped;
request -= bytes_skipped;
filter->client_next = filter->client_buff;
@@ -1170,20 +1186,15 @@ __archive_read_filter_skip(struct archiv
while (request > 0) {
const void* dummy_buffer;
ssize_t bytes_read;
- dummy_buffer = __archive_read_ahead(filter->archive,
+ dummy_buffer = __archive_read_filter_ahead(filter,
1, &bytes_read);
if (bytes_read < 0)
return (bytes_read);
if (bytes_read == 0) {
- /* We hit EOF before we satisfied the skip request. */
- archive_set_error(&filter->archive->archive,
- ARCHIVE_ERRNO_MISC,
- "Truncated input file (need to skip %jd bytes)",
- (intmax_t)request);
- return (ARCHIVE_FATAL);
+ return (total_bytes_skipped);
}
min = (size_t)(minimum(bytes_read, request));
- bytes_read = __archive_read_consume(filter->archive, min);
+ bytes_read = __archive_read_filter_consume(filter, min);
total_bytes_skipped += bytes_read;
request -= bytes_read;
}
Modified: projects/mesh11s/lib/libarchive/archive_read_open_fd.c
==============================================================================
--- projects/mesh11s/lib/libarchive/archive_read_open_fd.c Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/lib/libarchive/archive_read_open_fd.c Tue Apr 28 23:36:29 2009 (r191642)
@@ -66,6 +66,7 @@ archive_read_open_fd(struct archive *a,
struct read_fd_data *mine;
void *b;
+ archive_clear_error(a);
if (fstat(fd, &st) != 0) {
archive_set_error(a, errno, "Can't stat fd %d", fd);
return (ARCHIVE_FATAL);
Modified: projects/mesh11s/lib/libarchive/archive_read_open_file.c
==============================================================================
--- projects/mesh11s/lib/libarchive/archive_read_open_file.c Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/lib/libarchive/archive_read_open_file.c Tue Apr 28 23:36:29 2009 (r191642)
@@ -70,6 +70,7 @@ archive_read_open_FILE(struct archive *a
size_t block_size = 128 * 1024;
void *b;
+ archive_clear_error(a);
mine = (struct read_FILE_data *)malloc(sizeof(*mine));
b = malloc(block_size);
if (mine == NULL || b == NULL) {
Modified: projects/mesh11s/lib/libarchive/archive_read_open_filename.c
==============================================================================
--- projects/mesh11s/lib/libarchive/archive_read_open_filename.c Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/lib/libarchive/archive_read_open_filename.c Tue Apr 28 23:36:29 2009 (r191642)
@@ -84,6 +84,7 @@ archive_read_open_filename(struct archiv
void *b;
int fd;
+ archive_clear_error(a);
if (filename == NULL || filename[0] == '\0')
return (archive_read_open_fd(a, 0, block_size));
Modified: projects/mesh11s/lib/libarchive/archive_read_private.h
==============================================================================
--- projects/mesh11s/lib/libarchive/archive_read_private.h Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/lib/libarchive/archive_read_private.h Tue Apr 28 23:36:29 2009 (r191642)
@@ -189,6 +189,7 @@ const void *__archive_read_filter_ahead(
ssize_t __archive_read_consume(struct archive_read *, size_t);
ssize_t __archive_read_filter_consume(struct archive_read_filter *, size_t);
int64_t __archive_read_skip(struct archive_read *, int64_t);
+int64_t __archive_read_skip_lenient(struct archive_read *, int64_t);
int64_t __archive_read_filter_skip(struct archive_read_filter *, int64_t);
int __archive_read_program(struct archive_read_filter *, const char *);
#endif
Modified: projects/mesh11s/lib/libarchive/archive_read_support_compression_xz.c
==============================================================================
--- projects/mesh11s/lib/libarchive/archive_read_support_compression_xz.c Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/lib/libarchive/archive_read_support_compression_xz.c Tue Apr 28 23:36:29 2009 (r191642)
@@ -100,6 +100,7 @@ archive_read_support_compression_xz(stru
struct archive_read *a = (struct archive_read *)_a;
struct archive_read_filter_bidder *bidder = __archive_read_get_bidder(a);
+ archive_clear_error(_a);
if (bidder == NULL)
return (ARCHIVE_FATAL);
@@ -123,6 +124,7 @@ archive_read_support_compression_lzma(st
struct archive_read *a = (struct archive_read *)_a;
struct archive_read_filter_bidder *bidder = __archive_read_get_bidder(a);
+ archive_clear_error(_a);
if (bidder == NULL)
return (ARCHIVE_FATAL);
Modified: projects/mesh11s/lib/libarchive/archive_read_support_format_cpio.c
==============================================================================
--- projects/mesh11s/lib/libarchive/archive_read_support_format_cpio.c Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/lib/libarchive/archive_read_support_format_cpio.c Tue Apr 28 23:36:29 2009 (r191642)
@@ -257,6 +257,11 @@ archive_read_format_cpio_read_header(str
cpio->entry_bytes_remaining = 0;
}
+ /* XXX TODO: If the full mode is 0160200, then this is a Solaris
+ * ACL description for the following entry. Read this body
+ * and parse it as a Solaris-style ACL, then read the next
+ * header. XXX */
+
/* Compare name to "TRAILER!!!" to test for end-of-archive. */
if (namelength == 11 && strcmp((const char *)h, "TRAILER!!!") == 0) {
/* TODO: Store file location of start of block. */
@@ -669,7 +674,7 @@ le4(const unsigned char *p)
static int
be4(const unsigned char *p)
{
- return (p[0] + (p[1]<<8) + (p[2]<<16) + (p[3]<<24));
+ return ((p[0]<<24) + (p[1]<<16) + (p[2]<<8) + (p[3]));
}
/*
Modified: projects/mesh11s/lib/libarchive/archive_read_support_format_empty.c
==============================================================================
--- projects/mesh11s/lib/libarchive/archive_read_support_format_empty.c Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/lib/libarchive/archive_read_support_format_empty.c Tue Apr 28 23:36:29 2009 (r191642)
@@ -59,10 +59,9 @@ archive_read_support_format_empty(struct
static int
archive_read_format_empty_bid(struct archive_read *a)
{
- const void *h;
ssize_t avail;
- h = __archive_read_ahead(a, 1, &avail);
+ (void)__archive_read_ahead(a, 1, &avail);
if (avail != 0)
return (-1);
return (1);
Modified: projects/mesh11s/lib/libarchive/archive_read_support_format_iso9660.c
==============================================================================
--- projects/mesh11s/lib/libarchive/archive_read_support_format_iso9660.c Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/lib/libarchive/archive_read_support_format_iso9660.c Tue Apr 28 23:36:29 2009 (r191642)
@@ -683,7 +683,7 @@ archive_read_format_iso9660_read_data(st
if (bytes_read == 0)
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
"Truncated input file");
- if (buff == NULL)
+ if (*buff == NULL)
return (ARCHIVE_FATAL);
if (bytes_read > iso9660->entry_bytes_remaining)
bytes_read = iso9660->entry_bytes_remaining;
Modified: projects/mesh11s/lib/libarchive/archive_read_support_format_mtree.c
==============================================================================
--- projects/mesh11s/lib/libarchive/archive_read_support_format_mtree.c Tue Apr 28 22:27:22 2009 (r191641)
+++ projects/mesh11s/lib/libarchive/archive_read_support_format_mtree.c Tue Apr 28 23:36:29 2009 (r191642)
@@ -990,8 +990,8 @@ read_data(struct archive_read *a, const
if (mtree->buff == NULL) {
archive_set_error(&a->archive, ENOMEM,
"Can't allocate memory");
+ return (ARCHIVE_FATAL);
}
- return (ARCHIVE_FATAL);
}
*buff = mtree->buff;
Copied: projects/mesh11s/lib/libarchive/archive_read_support_format_raw.c (from r191639, head/lib/libarchive/archive_read_support_format_raw.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/mesh11s/lib/libarchive/archive_read_support_format_raw.c Tue Apr 28 23:36:29 2009 (r191642, copy of r191639, head/lib/libarchive/archive_read_support_format_raw.c)
@@ -0,0 +1,187 @@
+/*-
+ * Copyright (c) 2003-2009 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 "archive_platform.h"
+__FBSDID("$FreeBSD$");
+
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+#include <stdio.h>
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "archive.h"
+#include "archive_entry.h"
+#include "archive_private.h"
+#include "archive_read_private.h"
+
+struct raw_info {
+ int64_t offset; /* Current position in the file. */
+ int end_of_file;
+};
+
+static int archive_read_format_raw_bid(struct archive_read *);
+static int archive_read_format_raw_cleanup(struct archive_read *);
+static int archive_read_format_raw_read_data(struct archive_read *,
+ const void **, size_t *, off_t *);
+static int archive_read_format_raw_read_data_skip(struct archive_read *);
+static int archive_read_format_raw_read_header(struct archive_read *,
+ struct archive_entry *);
+
+int
+archive_read_support_format_raw(struct archive *_a)
+{
+ struct raw_info *info;
+ struct archive_read *a = (struct archive_read *)_a;
+ int r;
+
+ info = (struct raw_info *)calloc(1, sizeof(*info));
+ if (info == NULL) {
+ archive_set_error(&a->archive, ENOMEM,
+ "Can't allocate raw_info data");
+ return (ARCHIVE_FATAL);
+ }
+
+ r = __archive_read_register_format(a,
+ info,
+ "raw",
+ archive_read_format_raw_bid,
+ NULL,
+ archive_read_format_raw_read_header,
+ archive_read_format_raw_read_data,
+ archive_read_format_raw_read_data_skip,
+ archive_read_format_raw_cleanup);
+ if (r != ARCHIVE_OK)
+ free(info);
+ return (r);
+}
+
+/*
+ * Bid 1 if this is a non-empty file. Anyone who can really support
+ * this should outbid us, so it should generally be safe to use "raw"
+ * in conjunction with other formats. But, this could really confuse
+ * folks if there are bid errors or minor file damage, so we don't
+ * include "raw" as part of support_format_all().
+ */
+static int
+archive_read_format_raw_bid(struct archive_read *a)
+{
+ const char *p;
+
+ if ((p = __archive_read_ahead(a, 1, NULL)) == NULL)
+ return (-1);
+ return (1);
+}
+
+/*
+ * Mock up a fake header.
+ */
+static int
+archive_read_format_raw_read_header(struct archive_read *a,
+ struct archive_entry *entry)
+{
+ struct raw_info *info;
+
+ info = (struct raw_info *)(a->format->data);
+ if (info->end_of_file)
+ return (ARCHIVE_EOF);
+
+ a->archive.archive_format = ARCHIVE_FORMAT_RAW;
+ a->archive.archive_format_name = "Raw data";
+ archive_entry_set_pathname(entry, "data");
+ /* XXX should we set mode to mimic a regular file? XXX */
+ /* I'm deliberately leaving most fields unset here. */
+ return (ARCHIVE_OK);
+}
+
+static int
+archive_read_format_raw_read_data(struct archive_read *a,
+ const void **buff, size_t *size, off_t *offset)
+{
+ struct raw_info *info;
+ ssize_t avail;
+
+ info = (struct raw_info *)(a->format->data);
+ if (info->end_of_file)
+ return (ARCHIVE_EOF);
+
+ /* Get whatever bytes are immediately available. */
+ *buff = __archive_read_ahead(a, 1, &avail);
+ if (avail > 0) {
+ /* Consume and return the bytes we just read */
+ __archive_read_consume(a, avail);
+ *size = avail;
+ *offset = info->offset;
+ info->offset += *size;
+ return (ARCHIVE_OK);
+ } else if (0 == avail) {
+ /* Record and return end-of-file. */
+ info->end_of_file = 1;
+ *size = 0;
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list