From owner-svn-src-vendor@FreeBSD.ORG Sun Aug 11 08:38:12 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 990595AD; Sun, 11 Aug 2013 08:38:12 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 828CF29C8; Sun, 11 Aug 2013 08:38:12 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B8cCVG044328; Sun, 11 Aug 2013 08:38:12 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B8cB1l044320; Sun, 11 Aug 2013 08:38:11 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308110838.r7B8cB1l044320@svn.freebsd.org> From: Peter Wemm Date: Sun, 11 Aug 2013 08:38:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254210 - in vendor/nvi: 1.79 1.79/build 1.79/catalog 1.79/cl 1.79/clib 1.79/common 1.79/contrib/nvi 1.79/contrib/nvi/build 1.79/contrib/nvi/catalog 1.79/contrib/nvi/cl 1.79/contrib/nvi... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 08:38:12 -0000 Author: peter Date: Sun Aug 11 08:38:10 2013 New Revision: 254210 URL: http://svnweb.freebsd.org/changeset/base/254210 Log: Post-cvs2svn flatten pass. Added: vendor/nvi/1.79/FAQ - copied unchanged from r254209, vendor/nvi/1.79/contrib/nvi/FAQ vendor/nvi/1.79/LAYOUT - copied unchanged from r254209, vendor/nvi/1.79/contrib/nvi/LAYOUT vendor/nvi/1.79/LICENSE - copied unchanged from r254209, vendor/nvi/1.79/contrib/nvi/LICENSE vendor/nvi/1.79/README - copied unchanged from r254209, vendor/nvi/1.79/contrib/nvi/README vendor/nvi/1.79/build/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/build/ vendor/nvi/1.79/catalog/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/catalog/ vendor/nvi/1.79/cl/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/cl/ vendor/nvi/1.79/clib/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/clib/ vendor/nvi/1.79/common/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/common/ vendor/nvi/1.79/docs/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/docs/ vendor/nvi/1.79/ex/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/ex/ vendor/nvi/1.79/include/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/include/ vendor/nvi/1.79/ip/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/ip/ vendor/nvi/1.79/ip_cl/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/ip_cl/ vendor/nvi/1.79/perl_api/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/perl_api/ vendor/nvi/1.79/perl_scripts/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/perl_scripts/ vendor/nvi/1.79/tcl_api/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/tcl_api/ vendor/nvi/1.79/tcl_scripts/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/tcl_scripts/ vendor/nvi/1.79/tk/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/tk/ vendor/nvi/1.79/vi/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/vi/ vendor/nvi/dist/FAQ - copied unchanged from r254209, vendor/nvi/dist/contrib/nvi/FAQ vendor/nvi/dist/LAYOUT - copied unchanged from r254209, vendor/nvi/dist/contrib/nvi/LAYOUT vendor/nvi/dist/LICENSE - copied unchanged from r254209, vendor/nvi/dist/contrib/nvi/LICENSE vendor/nvi/dist/README - copied unchanged from r254209, vendor/nvi/dist/contrib/nvi/README vendor/nvi/dist/build/ - copied from r254209, vendor/nvi/dist/contrib/nvi/build/ vendor/nvi/dist/catalog/ - copied from r254209, vendor/nvi/dist/contrib/nvi/catalog/ vendor/nvi/dist/cl/ - copied from r254209, vendor/nvi/dist/contrib/nvi/cl/ vendor/nvi/dist/clib/ - copied from r254209, vendor/nvi/dist/contrib/nvi/clib/ vendor/nvi/dist/common/ - copied from r254209, vendor/nvi/dist/contrib/nvi/common/ vendor/nvi/dist/docs/ - copied from r254209, vendor/nvi/dist/contrib/nvi/docs/ vendor/nvi/dist/ex/ - copied from r254209, vendor/nvi/dist/contrib/nvi/ex/ vendor/nvi/dist/include/ - copied from r254209, vendor/nvi/dist/contrib/nvi/include/ vendor/nvi/dist/ip/ - copied from r254209, vendor/nvi/dist/contrib/nvi/ip/ vendor/nvi/dist/ip_cl/ - copied from r254209, vendor/nvi/dist/contrib/nvi/ip_cl/ vendor/nvi/dist/perl_api/ - copied from r254209, vendor/nvi/dist/contrib/nvi/perl_api/ vendor/nvi/dist/perl_scripts/ - copied from r254209, vendor/nvi/dist/contrib/nvi/perl_scripts/ vendor/nvi/dist/tcl_api/ - copied from r254209, vendor/nvi/dist/contrib/nvi/tcl_api/ vendor/nvi/dist/tcl_scripts/ - copied from r254209, vendor/nvi/dist/contrib/nvi/tcl_scripts/ vendor/nvi/dist/tk/ - copied from r254209, vendor/nvi/dist/contrib/nvi/tk/ vendor/nvi/dist/vi/ - copied from r254209, vendor/nvi/dist/contrib/nvi/vi/ Deleted: vendor/nvi/1.79/contrib/nvi/FAQ vendor/nvi/1.79/contrib/nvi/LAYOUT vendor/nvi/1.79/contrib/nvi/LICENSE vendor/nvi/1.79/contrib/nvi/README vendor/nvi/1.79/contrib/nvi/build/ vendor/nvi/1.79/contrib/nvi/catalog/ vendor/nvi/1.79/contrib/nvi/cl/ vendor/nvi/1.79/contrib/nvi/clib/ vendor/nvi/1.79/contrib/nvi/common/ vendor/nvi/1.79/contrib/nvi/docs/ vendor/nvi/1.79/contrib/nvi/ex/ vendor/nvi/1.79/contrib/nvi/include/ vendor/nvi/1.79/contrib/nvi/ip/ vendor/nvi/1.79/contrib/nvi/ip_cl/ vendor/nvi/1.79/contrib/nvi/perl_api/ vendor/nvi/1.79/contrib/nvi/perl_scripts/ vendor/nvi/1.79/contrib/nvi/tcl_api/ vendor/nvi/1.79/contrib/nvi/tcl_scripts/ vendor/nvi/1.79/contrib/nvi/tk/ vendor/nvi/1.79/contrib/nvi/vi/ vendor/nvi/dist/contrib/nvi/FAQ vendor/nvi/dist/contrib/nvi/LAYOUT vendor/nvi/dist/contrib/nvi/LICENSE vendor/nvi/dist/contrib/nvi/README vendor/nvi/dist/contrib/nvi/build/ vendor/nvi/dist/contrib/nvi/catalog/ vendor/nvi/dist/contrib/nvi/cl/ vendor/nvi/dist/contrib/nvi/clib/ vendor/nvi/dist/contrib/nvi/common/ vendor/nvi/dist/contrib/nvi/docs/ vendor/nvi/dist/contrib/nvi/ex/ vendor/nvi/dist/contrib/nvi/include/ vendor/nvi/dist/contrib/nvi/ip/ vendor/nvi/dist/contrib/nvi/ip_cl/ vendor/nvi/dist/contrib/nvi/perl_api/ vendor/nvi/dist/contrib/nvi/perl_scripts/ vendor/nvi/dist/contrib/nvi/tcl_api/ vendor/nvi/dist/contrib/nvi/tcl_scripts/ vendor/nvi/dist/contrib/nvi/tk/ vendor/nvi/dist/contrib/nvi/vi/ Copied: vendor/nvi/1.79/FAQ (from r254209, vendor/nvi/1.79/contrib/nvi/FAQ) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/1.79/FAQ Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/1.79/contrib/nvi/FAQ) @@ -0,0 +1,160 @@ +@(#)FAQ 8.13 (Berkeley) 10/14/96 + +Q: How can I get vi to display my character set? +A: Vi uses the C library routine isprint(3) to determine if a character + is printable, or should be displayed as an octal or hexadecimal value + on the screen. Generally, if vi is displaying printable characters + in octal/hexadecimal forms, your environment is not configured correctly. + Try looking at the man pages that allow you to configure your locale. + For example, to configure an ISO 8859-1 locale under Solaris using csh, + you would do: + + setenv LANG C + setenv LC_CTYPE iso_8859_1 + + Other LC_CTYPE systems/values that I'm told work: + + System Value + ====== ===== + FreeBSD lt_LN.ISO_8859-1 + HP-UX 9.X american.iso88591 + HP-UX 10.X en_US.iso88591 + SunOS 4.X iso_8859_1 + SunOS 5.X iso_8859_1 + + If there's no other solution, you can use the print and noprint edit + options of vi to specify that a specific character is printable or not + printable. + +Q: My map won't work! +A: One thing that you should immediately check if a vi map doesn't work + is if depends on the final cursor position after a P or p command. + Historic vi's were inconsistent as to the final position of the cursor, + and, to make matter worse, the final cursor position also depended on + whether the put text came from a named or unnamed buffer! Vi follows + the POSIX 1003.2 standard on this one, and makes this consistent, always + placing the cursor on the first character. + +Q: I'm using ksh or csh as my vi edit option shell value, and file + expansions don't work right! +A: The problem may be in your ksh or csh startup files, e.g., .cshrc. Vi + executes the shell to do name expansion, and the shell generally reads + its startup files. If the startup files are not correctly configured + for non-interactive use, e.g., they always echo a prompt to the screen, + vi will be unable to parse the output and things will not work + correctly. + +Q: How does the iclower edit option differ from the ignorecase (i.e. ic) + edit option? +A: The difference is that the ignorecase edit option always ignores the + case of letters in the Regular Expression (RE), and the iclower edit + option only ignores the case if there are no upper-case letters in the + RE. If any upper-case letters appear in the Regular Expression, then + it will be treated case-sensitively, as if the ignorecase edit option + was not set. + +Q: When I edit binary files, vi appends a to the last line! +A: This is historic practice for vi, and further, it's required by the + POSIX 1003.2 standard. My intent is to provide a command line and/or + edit option to turn this behavior off when I switch to version 2.0 of + the Berkeley DB package. + +Q: My cursor keys don't work when I'm in text input mode! +A: A common problem over slow links is that the set of characters sent by + the cursor keys don't arrive close enough together for vi to understand + that they are a single keystroke, and not separate keystrokes. Try + increasing the value of the escapetime edit option, which will cause + vi to wait longer before deciding that the character that + starts cursor key sequences doesn't have any characters following it. + +Q: When I edit some files, vi seems to hang forever, and I have to kill it. +A: Vi uses flock(2) and fcntl(2) to do file locking. When it attempts to + acquired a lock for a file on an NFS mounted filesystem, it can hang + for a very long (perhaps infinite) period of time. Turning off the + "lock" edit option will keep vi from attempting to acquire any locks + on the files you edit. + +Q: When I compile vi I get lots of warnings about pointer assignments + being incompatible! +A: Vi is partially written to support wide characters. When this code + interfaces with the code that doesn't yet support wide characters, + the pointer types clash. This will hopefully be fixed in the near + future, but I've been saying that for awhile, now. + +Q: I get jumpy scrolling behavior in the screen! +A: This is almost certainly a problem with the system's terminfo or + termcap information for your terminal. If the terminfo/termcap entry + doesn't have the settable scrolling region capabilities, or the more + powerful scrolling commands, these behaviors can result. Historic + implementations of vi, and some of the vi clones, don't suffer from + this problem because they wrote their own screen support instead of + using the curses library. + + The solution is to find a good terminfo or termcap entry for your + terminal, which will fix the problem for all of the applications on + your system, not just vi. Eric Raymond maintains the freely + redistributable termcap/terminfo entries. They can be downloaded + from http://www.ccil.org/~esr/ncurses.html, or you can contact him + at esr@snark.thyrsus.com. + +Q: The entire screen repaints on every keystroke! +A: Your system's curses implementation is broken. You should use the + curses implementation provided with vi or a curses replacement such + as ncurses. Eric Raymond is one of the maintainers of the freely + redistributable ncurses package. You can download ncurses from + http://www.ccil.org/~esr/ncurses.html, or you can contact him at + esr@snark.thyrsus.com. + +Q: When I use vi on a Sun console (terminal type sun-34) the screen + is occasionally trashed, usually when exiting vi! +A: The Sun console can't handle the 'al' capability of the termcap + entry (the il1 capability of terminfo entries). If you delete that + entry from your terminfo/termcap information everything should work + correctly. + +Q: I don't have a version of ctags (or I have ctags, but it doesn't tag + nearly enough things)! +A: There's a version of ctags available on the 4.4BSD-Lite distributions, + as well as the FreeBSD, NetBSD, Linux and GNU distributions. Or, you + might want to try Exuberant Ctags: + + Title: Exuberant Ctags + Version: 1.3 + Entered-date: 16JUN96 + Description: + A better ctags which generates tags for all possible tag types: + macro definitions, enumerated values (values inside enum{...}), + function and method definitions, enum/struct/union tags, external + function prototypes (optional), typedefs, and variable + declarations. It is far less easily fooled by code containing #if + preprocessor conditional constructs, using a conditional path + selection algorithm to resolve complicated choices, and a + fall-back algorithm when this one fails. Can also be used to print + out a list of selected objects found in source files. + Keywords: ctags, tags, exuberant + Author: darren@sirsi.com (Darren Hiebert) + darren@hiwaay.net (Darren Hiebert) + Maintained-by: darren@sirsi.com (Darren Hiebert) + darren@hiwaay.net (Darren Hiebert) + Primary-site: sunsite.unc.edu /pub/Linux/devel/lang/c + 27kB ctags-1.3.tar.gz + Alternate-site: ftp.halcyon.com /local/gvr + 27kB ctags-1.3.tar.gz + Original-site: + Platforms: UNIX, MSDOS, WindowsNT, Windows95, OS/2, Amiga + Copying-policy: Public domain + +Q: When I update a file I already have open, and use :e to reread it, I + get nul's for the rest of the file! +A: Your system's implementation of mmap(2) has a bug; you will have to + exit vi and re-execute it. + +Q: Where can I get cscope? +A: Cscope is available on UNIXWare System V Release 4.0 variants such as + Sun Solaris 2.x (/opt/SUNWspro/bin) and UNIXWare System V Release 4.1. + + You can buy version 13.3 source with an unrestricted license for $400 + from AT&T Software Solutions by calling +1-800-462-8146. Binary + redistribution of cscope is an additional $1500, one-time flat fee. + + For more information, see http://www.unipress.com/att/new/cscope.html. Copied: vendor/nvi/1.79/LAYOUT (from r254209, vendor/nvi/1.79/contrib/nvi/LAYOUT) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/1.79/LAYOUT Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/1.79/contrib/nvi/LAYOUT) @@ -0,0 +1,128 @@ +# @(#)LAYOUT 8.12 (Berkeley) 10/10/96 + +LAYOUT + This file: the layout of the nvi sources. + +LICENSE + Nvi's copyright notice and conditions for redistribution. + +README + Welcome message and basic information. + +build/ + The build/configuration directory for nvi. See build/README for + more information. + +catalog/ + Support for message catalogs for nvi. See catalog/README for more + information. + +cl/ + Source files for nvi's curses screen support. + +clib/ + Replacement source files for C library functions. + +common/ + Source files for pieces of code that are shared by ex and vi, + e.g., searching and logging code or code translating line numbers + into requests to the dbopen(3) database code. It also has the + interface code for modifying "records" in the underlying database. + +curses/ + A stripped-down replacement curses library. Do not try and use + this library outside of nvi, many standard curses functions have + been removed because nvi doesn't use them. See build/README for + more information. + +db/ + A stripped-down replacement DB library. Do not try and use this + library outside of nvi, many standard DB functions have been + removed because nvi doesn't use them. See db/README for more + information. + +docs/ + Ex/vi documentation, both current and historic. + + USD.doc/ + [USD stands for "User's Supplementary Documents".] + + edit/ Roff source for "Edit: A tutorial". This document + was USD:14 in the 4.3BSD manuals, but was not + distributed with 4.4BSD. + + exref/ Roff source for "Ex Reference Manual -- Version + 3.7". This document was USD:16 in the 4.3BSD + manuals, and USD tabbed 12 in the 4.4BSD manuals. + + vi.man/ Roff source for a UNIX manual page for nex/nvi. + An updated version of the 4.4BSD manual page. + + vi.ref/ Roff source for the nex/nvi reference document. + An updated version of the 4.4BSD document, USD + tabbed 13. + + vitut/ Roff source for "An Introduction to Display + Editing with Vi". This document was USD:15 in + the 4.3BSD manuals, but was not distributed with + 4.4BSD. It includes the historic "Vi Quick + Reference" card. + + + PostScript preformatted versions of the nex/nvi reference + manual and manual page are in the files named with a ".ps" + suffix, in their respective source directories. Flat text + preformatted versions of the nex/nvi reference manual and + manual page are in the files named with a ".txt" suffix, + in their respective source directories. + + changelog -- Log of changes from version to version. + features -- Todo list, suggested features list. + internals/ + autowrite -- Vi autowrite option discussion. + context -- Previous context marks discussion. + gdb.script -- GDB debugging scripts. + input -- Vi maps, executable buffers, and input discussion. + openmode -- Open mode behaviors. + quoting -- Vi quoting discussion. + structures -- Out-of-date nvi internal structure description. + tutorial/ -- Historic vi tutorial(s), of unknown quality. + +ex/ + The ex source code. Because vi has the colon command, lots of + this code is used by vi. Generally, if functionality is shared + by both ex and vi, it's in the ex directory. If it's vi only, + it's in the vi directory. Files are generally named by the + command(s) they support, but occasionally with a name that + describes their functionality. + + version.h -- Version information. + +include/ + Replacement include files: + + bitstring.h -- The 4.4BSD bitstring operations. + sys/queue.h -- The 4.4BSD queue operations. + +perl_api/ + Source code supporting the Perl scripting language for nvi. + +perl_scripts/ + Scripts for Perl included with nvi. + +regex/ + Henry Spencer's POSIX 1003.2 regular expression (RE) library. + +tcl_api/ + Source code supporting the Tcl scripting language for nvi. + +tcl_scripts/ + Scripts for Tcl included with nvi. + +tk/ + Source files for nvi's Tk screen support. + + init.tcl -- Vi startup tcl script. + +vi/ + The vi source code. Copied: vendor/nvi/1.79/LICENSE (from r254209, vendor/nvi/1.79/contrib/nvi/LICENSE) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/1.79/LICENSE Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/1.79/contrib/nvi/LICENSE) @@ -0,0 +1,40 @@ +The vi program is freely redistributable. You are welcome to copy, modify +and share it with others under the conditions listed in this file. If any +company (not any individual!) finds vi sufficiently useful that you would +have purchased it, or if any company wishes to redistribute it, contributions +to the authors would be appreciated. + +/*- + * Copyright (c) 1991, 1992, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996 + * Keith Bostic. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ Copied: vendor/nvi/1.79/README (from r254209, vendor/nvi/1.79/contrib/nvi/README) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/1.79/README Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/1.79/contrib/nvi/README) @@ -0,0 +1,113 @@ +# @(#)README 8.147 (Berkeley) 10/19/96 + +This is the README for nex/nvi, a freely redistributable implementation +of the ex/vi text editors originally distributed as part of the Fourth +Berkeley Software Distribution (4BSD), by the University of California, +Berkeley. + +The source code for nex/nvi can be retrieved by using anonymous ftp to +ftp.cs.berkeley.edu. The file ucb/4bsd/nvi.tar.gz is the gzip'd archive, +of version 1.71 of nex/nvi. This version is believed to be stable and +problem free. The file ucb/4bsd/nvi-###.ALPHA.tar.gz is a gzip'd archive +of the current alpha-test release of nex/nvi. This version reflects the +current development tree, and will be more likely to have problems. + +See the file: + build/README for information on building nvi. + LAYOUT for a description of where everything is. + LICENSE for the copyright and redistribution terms. + +If you have any questions about nex/nvi, problems with it, or concerns +about the conditions for redistribution, please contact me: + + Keith Bostic +1-508-287-4781 + 394 E. Riding Dr. bostic@bostic.com + Carlisle, MA 01741 + USA + +Keith Bostic + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +o This software is several years old and is the product of many folks' work. + + This software was originally derived from software contributed to + the University of California, Berkeley by Steve Kirkendall, the + author of the vi clone elvis. Without his work, this work would + have been far more difficult. + + IEEE POSIX 1003.2 style regular expression support is courtesy of + Henry Spencer, for which I am *very* grateful. + + Elan Amir did the original 4BSD curses work that made it possible + to support a full-screen editor using curses. + + George Neville-Neil added the Tcl interpreter, and the initial + interpreter design was his. + + Sven Verdoolaege added the Perl interpreter. + + Rob Mayoff provided the original Cscope support. + +o Many, many people suggested enhancements, and provided bug reports and + testing, far too many to individually thank. + +o From the original vi acknowledgements, by William Joy and Mark Horton: + + Bruce Englar encouraged the early development of this display + editor. Peter Kessler helped bring sanity to version 2's + command layout. Bill Joy wrote versions 1 and 2.0 through 2.7, + and created the framework that users see in the present editor. + Mark Horton added macros and other features and made the editor + work on a large number of terminals and Unix systems. + +o And... + The financial support of UUNET Communications Services is gratefully + acknowledged. + +=-=-=-=-=-=-=-=-=-=-= +o Status: + +This software is in beta test, and it's pretty stable. Almost all of the +historic functionality in ex/vi is there, the only major missing pieces +are open mode and the lisp edit option. + +Nvi is largely 8-bit clean. This isn't difficult to fix, and was left in +during initial development to keep things simple. Wide character support +will be integrated at the same time that it is made fully 8-bit clean. + +There aren't a lot of new features in nex/nvi, but there are a few things +you might like. The "Additional Features" section of the reference work +(docs/USD.doc/vi.ref/vi.ref.txt, docs/USD.doc/vi.ref/vi.ref.ps) has more +information. + +=-=-=-=-=-=-=-=-=-=-= +o Debugging: + +Code fixes are greatly appreciated, of course, but if you can't provide +them, please email me as much information as you can as to how I might +reproduce the bug, and I'll try to fix it locally. Stack traces of core +dumps are only rarely helpful -- an example file with a set of keystrokes +that causes the problem is almost invariably necessary. I know it's +annoying, but simply playing with the bug until you can reproduce it at +will, with minimal keystrokes, is immensely helpful to me. + +Please include the following in the bug report; + + o The version of nvi you're running (use :version to get it). + o The row/column dimensions of the screen (80 x 32). + o Unless you're confident that they're not part of the problem, + your startup files (.exrc, .nexrc) and the environment variable + (EXINIT, NEXINIT) values. (Cutting and pasting the output + of ":set all" is usually sufficient.) + +If you want to do your own debugging, recompile the program with DEBUG +defined. (Configuring with --enable-debug will do this for you.) This +turns on the additional command-line option -D, that takes either s or w +as an argument. The option -Ds causes nvi to ignore the EXINIT and +.exrc files on startup, and -Dw causes nvi to print out the process id +and wait for you to enter a to continue. + +If you're running a memory checker (e.g. Purify) on nvi, you will first +want to recompile everything with "-DPURIFY" set in the CFLAGS. This +initializes allocated pages in the DB code, and free's allocated memory +at the end of the nvi execution. Copied: vendor/nvi/dist/FAQ (from r254209, vendor/nvi/dist/contrib/nvi/FAQ) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/dist/FAQ Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/dist/contrib/nvi/FAQ) @@ -0,0 +1,160 @@ +@(#)FAQ 8.13 (Berkeley) 10/14/96 + +Q: How can I get vi to display my character set? +A: Vi uses the C library routine isprint(3) to determine if a character + is printable, or should be displayed as an octal or hexadecimal value + on the screen. Generally, if vi is displaying printable characters + in octal/hexadecimal forms, your environment is not configured correctly. + Try looking at the man pages that allow you to configure your locale. + For example, to configure an ISO 8859-1 locale under Solaris using csh, + you would do: + + setenv LANG C + setenv LC_CTYPE iso_8859_1 + + Other LC_CTYPE systems/values that I'm told work: + + System Value + ====== ===== + FreeBSD lt_LN.ISO_8859-1 + HP-UX 9.X american.iso88591 + HP-UX 10.X en_US.iso88591 + SunOS 4.X iso_8859_1 + SunOS 5.X iso_8859_1 + + If there's no other solution, you can use the print and noprint edit + options of vi to specify that a specific character is printable or not + printable. + +Q: My map won't work! +A: One thing that you should immediately check if a vi map doesn't work + is if depends on the final cursor position after a P or p command. + Historic vi's were inconsistent as to the final position of the cursor, + and, to make matter worse, the final cursor position also depended on + whether the put text came from a named or unnamed buffer! Vi follows + the POSIX 1003.2 standard on this one, and makes this consistent, always + placing the cursor on the first character. + +Q: I'm using ksh or csh as my vi edit option shell value, and file + expansions don't work right! +A: The problem may be in your ksh or csh startup files, e.g., .cshrc. Vi + executes the shell to do name expansion, and the shell generally reads + its startup files. If the startup files are not correctly configured + for non-interactive use, e.g., they always echo a prompt to the screen, + vi will be unable to parse the output and things will not work + correctly. + +Q: How does the iclower edit option differ from the ignorecase (i.e. ic) + edit option? +A: The difference is that the ignorecase edit option always ignores the + case of letters in the Regular Expression (RE), and the iclower edit + option only ignores the case if there are no upper-case letters in the + RE. If any upper-case letters appear in the Regular Expression, then + it will be treated case-sensitively, as if the ignorecase edit option + was not set. + +Q: When I edit binary files, vi appends a to the last line! +A: This is historic practice for vi, and further, it's required by the + POSIX 1003.2 standard. My intent is to provide a command line and/or + edit option to turn this behavior off when I switch to version 2.0 of + the Berkeley DB package. + +Q: My cursor keys don't work when I'm in text input mode! +A: A common problem over slow links is that the set of characters sent by + the cursor keys don't arrive close enough together for vi to understand + that they are a single keystroke, and not separate keystrokes. Try + increasing the value of the escapetime edit option, which will cause + vi to wait longer before deciding that the character that + starts cursor key sequences doesn't have any characters following it. + +Q: When I edit some files, vi seems to hang forever, and I have to kill it. +A: Vi uses flock(2) and fcntl(2) to do file locking. When it attempts to + acquired a lock for a file on an NFS mounted filesystem, it can hang + for a very long (perhaps infinite) period of time. Turning off the + "lock" edit option will keep vi from attempting to acquire any locks + on the files you edit. + +Q: When I compile vi I get lots of warnings about pointer assignments + being incompatible! +A: Vi is partially written to support wide characters. When this code + interfaces with the code that doesn't yet support wide characters, + the pointer types clash. This will hopefully be fixed in the near + future, but I've been saying that for awhile, now. + +Q: I get jumpy scrolling behavior in the screen! +A: This is almost certainly a problem with the system's terminfo or + termcap information for your terminal. If the terminfo/termcap entry + doesn't have the settable scrolling region capabilities, or the more + powerful scrolling commands, these behaviors can result. Historic + implementations of vi, and some of the vi clones, don't suffer from + this problem because they wrote their own screen support instead of + using the curses library. + + The solution is to find a good terminfo or termcap entry for your + terminal, which will fix the problem for all of the applications on + your system, not just vi. Eric Raymond maintains the freely + redistributable termcap/terminfo entries. They can be downloaded + from http://www.ccil.org/~esr/ncurses.html, or you can contact him + at esr@snark.thyrsus.com. + +Q: The entire screen repaints on every keystroke! +A: Your system's curses implementation is broken. You should use the + curses implementation provided with vi or a curses replacement such + as ncurses. Eric Raymond is one of the maintainers of the freely + redistributable ncurses package. You can download ncurses from + http://www.ccil.org/~esr/ncurses.html, or you can contact him at + esr@snark.thyrsus.com. + +Q: When I use vi on a Sun console (terminal type sun-34) the screen + is occasionally trashed, usually when exiting vi! +A: The Sun console can't handle the 'al' capability of the termcap + entry (the il1 capability of terminfo entries). If you delete that + entry from your terminfo/termcap information everything should work + correctly. + +Q: I don't have a version of ctags (or I have ctags, but it doesn't tag + nearly enough things)! +A: There's a version of ctags available on the 4.4BSD-Lite distributions, + as well as the FreeBSD, NetBSD, Linux and GNU distributions. Or, you + might want to try Exuberant Ctags: + + Title: Exuberant Ctags + Version: 1.3 + Entered-date: 16JUN96 + Description: + A better ctags which generates tags for all possible tag types: + macro definitions, enumerated values (values inside enum{...}), + function and method definitions, enum/struct/union tags, external + function prototypes (optional), typedefs, and variable + declarations. It is far less easily fooled by code containing #if + preprocessor conditional constructs, using a conditional path + selection algorithm to resolve complicated choices, and a + fall-back algorithm when this one fails. Can also be used to print + out a list of selected objects found in source files. + Keywords: ctags, tags, exuberant + Author: darren@sirsi.com (Darren Hiebert) + darren@hiwaay.net (Darren Hiebert) + Maintained-by: darren@sirsi.com (Darren Hiebert) + darren@hiwaay.net (Darren Hiebert) + Primary-site: sunsite.unc.edu /pub/Linux/devel/lang/c + 27kB ctags-1.3.tar.gz + Alternate-site: ftp.halcyon.com /local/gvr + 27kB ctags-1.3.tar.gz + Original-site: + Platforms: UNIX, MSDOS, WindowsNT, Windows95, OS/2, Amiga + Copying-policy: Public domain + +Q: When I update a file I already have open, and use :e to reread it, I + get nul's for the rest of the file! +A: Your system's implementation of mmap(2) has a bug; you will have to + exit vi and re-execute it. + +Q: Where can I get cscope? +A: Cscope is available on UNIXWare System V Release 4.0 variants such as + Sun Solaris 2.x (/opt/SUNWspro/bin) and UNIXWare System V Release 4.1. + + You can buy version 13.3 source with an unrestricted license for $400 + from AT&T Software Solutions by calling +1-800-462-8146. Binary + redistribution of cscope is an additional $1500, one-time flat fee. + + For more information, see http://www.unipress.com/att/new/cscope.html. Copied: vendor/nvi/dist/LAYOUT (from r254209, vendor/nvi/dist/contrib/nvi/LAYOUT) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/dist/LAYOUT Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/dist/contrib/nvi/LAYOUT) @@ -0,0 +1,128 @@ +# @(#)LAYOUT 8.12 (Berkeley) 10/10/96 + +LAYOUT + This file: the layout of the nvi sources. + +LICENSE + Nvi's copyright notice and conditions for redistribution. + +README + Welcome message and basic information. + +build/ + The build/configuration directory for nvi. See build/README for + more information. + +catalog/ + Support for message catalogs for nvi. See catalog/README for more + information. + +cl/ + Source files for nvi's curses screen support. + +clib/ + Replacement source files for C library functions. + +common/ + Source files for pieces of code that are shared by ex and vi, + e.g., searching and logging code or code translating line numbers + into requests to the dbopen(3) database code. It also has the + interface code for modifying "records" in the underlying database. + +curses/ + A stripped-down replacement curses library. Do not try and use + this library outside of nvi, many standard curses functions have + been removed because nvi doesn't use them. See build/README for + more information. + +db/ + A stripped-down replacement DB library. Do not try and use this + library outside of nvi, many standard DB functions have been + removed because nvi doesn't use them. See db/README for more + information. + +docs/ + Ex/vi documentation, both current and historic. + + USD.doc/ + [USD stands for "User's Supplementary Documents".] + + edit/ Roff source for "Edit: A tutorial". This document + was USD:14 in the 4.3BSD manuals, but was not + distributed with 4.4BSD. + + exref/ Roff source for "Ex Reference Manual -- Version + 3.7". This document was USD:16 in the 4.3BSD + manuals, and USD tabbed 12 in the 4.4BSD manuals. + + vi.man/ Roff source for a UNIX manual page for nex/nvi. + An updated version of the 4.4BSD manual page. + + vi.ref/ Roff source for the nex/nvi reference document. + An updated version of the 4.4BSD document, USD + tabbed 13. + + vitut/ Roff source for "An Introduction to Display + Editing with Vi". This document was USD:15 in + the 4.3BSD manuals, but was not distributed with + 4.4BSD. It includes the historic "Vi Quick + Reference" card. + + + PostScript preformatted versions of the nex/nvi reference + manual and manual page are in the files named with a ".ps" + suffix, in their respective source directories. Flat text + preformatted versions of the nex/nvi reference manual and + manual page are in the files named with a ".txt" suffix, + in their respective source directories. + + changelog -- Log of changes from version to version. + features -- Todo list, suggested features list. + internals/ + autowrite -- Vi autowrite option discussion. + context -- Previous context marks discussion. + gdb.script -- GDB debugging scripts. + input -- Vi maps, executable buffers, and input discussion. + openmode -- Open mode behaviors. + quoting -- Vi quoting discussion. + structures -- Out-of-date nvi internal structure description. + tutorial/ -- Historic vi tutorial(s), of unknown quality. + +ex/ + The ex source code. Because vi has the colon command, lots of + this code is used by vi. Generally, if functionality is shared + by both ex and vi, it's in the ex directory. If it's vi only, + it's in the vi directory. Files are generally named by the + command(s) they support, but occasionally with a name that + describes their functionality. + + version.h -- Version information. + +include/ + Replacement include files: + + bitstring.h -- The 4.4BSD bitstring operations. + sys/queue.h -- The 4.4BSD queue operations. + +perl_api/ + Source code supporting the Perl scripting language for nvi. + +perl_scripts/ + Scripts for Perl included with nvi. + +regex/ + Henry Spencer's POSIX 1003.2 regular expression (RE) library. + +tcl_api/ + Source code supporting the Tcl scripting language for nvi. + +tcl_scripts/ + Scripts for Tcl included with nvi. + +tk/ + Source files for nvi's Tk screen support. + + init.tcl -- Vi startup tcl script. + +vi/ + The vi source code. Copied: vendor/nvi/dist/LICENSE (from r254209, vendor/nvi/dist/contrib/nvi/LICENSE) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/dist/LICENSE Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/dist/contrib/nvi/LICENSE) @@ -0,0 +1,40 @@ +The vi program is freely redistributable. You are welcome to copy, modify +and share it with others under the conditions listed in this file. If any +company (not any individual!) finds vi sufficiently useful that you would +have purchased it, or if any company wishes to redistribute it, contributions +to the authors would be appreciated. + +/*- + * Copyright (c) 1991, 1992, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996 + * Keith Bostic. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ Copied: vendor/nvi/dist/README (from r254209, vendor/nvi/dist/contrib/nvi/README) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/dist/README Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/dist/contrib/nvi/README) @@ -0,0 +1,113 @@ +# @(#)README 8.147 (Berkeley) 10/19/96 + +This is the README for nex/nvi, a freely redistributable implementation +of the ex/vi text editors originally distributed as part of the Fourth +Berkeley Software Distribution (4BSD), by the University of California, +Berkeley. + +The source code for nex/nvi can be retrieved by using anonymous ftp to +ftp.cs.berkeley.edu. The file ucb/4bsd/nvi.tar.gz is the gzip'd archive, +of version 1.71 of nex/nvi. This version is believed to be stable and +problem free. The file ucb/4bsd/nvi-###.ALPHA.tar.gz is a gzip'd archive +of the current alpha-test release of nex/nvi. This version reflects the +current development tree, and will be more likely to have problems. + +See the file: + build/README for information on building nvi. + LAYOUT for a description of where everything is. + LICENSE for the copyright and redistribution terms. + +If you have any questions about nex/nvi, problems with it, or concerns +about the conditions for redistribution, please contact me: + + Keith Bostic +1-508-287-4781 + 394 E. Riding Dr. bostic@bostic.com + Carlisle, MA 01741 + USA + +Keith Bostic + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +o This software is several years old and is the product of many folks' work. + + This software was originally derived from software contributed to + the University of California, Berkeley by Steve Kirkendall, the + author of the vi clone elvis. Without his work, this work would + have been far more difficult. + + IEEE POSIX 1003.2 style regular expression support is courtesy of + Henry Spencer, for which I am *very* grateful. + + Elan Amir did the original 4BSD curses work that made it possible + to support a full-screen editor using curses. + + George Neville-Neil added the Tcl interpreter, and the initial + interpreter design was his. + + Sven Verdoolaege added the Perl interpreter. + + Rob Mayoff provided the original Cscope support. + +o Many, many people suggested enhancements, and provided bug reports and + testing, far too many to individually thank. + +o From the original vi acknowledgements, by William Joy and Mark Horton: + + Bruce Englar encouraged the early development of this display + editor. Peter Kessler helped bring sanity to version 2's + command layout. Bill Joy wrote versions 1 and 2.0 through 2.7, + and created the framework that users see in the present editor. + Mark Horton added macros and other features and made the editor + work on a large number of terminals and Unix systems. + +o And... + The financial support of UUNET Communications Services is gratefully + acknowledged. + +=-=-=-=-=-=-=-=-=-=-= +o Status: + +This software is in beta test, and it's pretty stable. Almost all of the +historic functionality in ex/vi is there, the only major missing pieces +are open mode and the lisp edit option. + +Nvi is largely 8-bit clean. This isn't difficult to fix, and was left in +during initial development to keep things simple. Wide character support +will be integrated at the same time that it is made fully 8-bit clean. + +There aren't a lot of new features in nex/nvi, but there are a few things +you might like. The "Additional Features" section of the reference work +(docs/USD.doc/vi.ref/vi.ref.txt, docs/USD.doc/vi.ref/vi.ref.ps) has more +information. + +=-=-=-=-=-=-=-=-=-=-= +o Debugging: + +Code fixes are greatly appreciated, of course, but if you can't provide +them, please email me as much information as you can as to how I might +reproduce the bug, and I'll try to fix it locally. Stack traces of core +dumps are only rarely helpful -- an example file with a set of keystrokes +that causes the problem is almost invariably necessary. I know it's +annoying, but simply playing with the bug until you can reproduce it at +will, with minimal keystrokes, is immensely helpful to me. + +Please include the following in the bug report; + + o The version of nvi you're running (use :version to get it). + o The row/column dimensions of the screen (80 x 32). + o Unless you're confident that they're not part of the problem, + your startup files (.exrc, .nexrc) and the environment variable + (EXINIT, NEXINIT) values. (Cutting and pasting the output + of ":set all" is usually sufficient.) + +If you want to do your own debugging, recompile the program with DEBUG +defined. (Configuring with --enable-debug will do this for you.) This +turns on the additional command-line option -D, that takes either s or w +as an argument. The option -Ds causes nvi to ignore the EXINIT and +.exrc files on startup, and -Dw causes nvi to print out the process id +and wait for you to enter a to continue. + +If you're running a memory checker (e.g. Purify) on nvi, you will first +want to recompile everything with "-DPURIFY" set in the CFLAGS. This +initializes allocated pages in the DB code, and free's allocated memory +at the end of the nvi execution. From owner-svn-src-vendor@FreeBSD.ORG Sun Aug 11 09:45:00 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0786FE6; Sun, 11 Aug 2013 09:45:00 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E51712C88; Sun, 11 Aug 2013 09:44:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B9ixue070082; Sun, 11 Aug 2013 09:44:59 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B9iwxR070074; Sun, 11 Aug 2013 09:44:58 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308110944.r7B9iwxR070074@svn.freebsd.org> From: Peter Wemm Date: Sun, 11 Aug 2013 09:44:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254211 - in vendor/nvi/dist: . build catalog cl clib common contrib docs docs/USD.doc/vi.man docs/USD.doc/vi.ref ex include ip ip_cl perl_api perl_scripts regex tcl_api tcl_scripts tk vi X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 09:45:00 -0000 Author: peter Date: Sun Aug 11 09:44:58 2013 New Revision: 254211 URL: http://svnweb.freebsd.org/changeset/base/254211 Log: Import nvi-2.1.1-4334a8297f into the work area. This is the gsoc-2011 project to clean up and backport multibyte support from other nvi forks in a form we can use. GSoC info: http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/zy/1 Repo at: https://github.com/lichray/nvi2 Obtained from: Zhihao Yuan Added: vendor/nvi/dist/catalog/polish.base (contents, props changed) vendor/nvi/dist/catalog/polish.owner vendor/nvi/dist/catalog/uk_UA.KOI8-U.base (contents, props changed) vendor/nvi/dist/catalog/uk_UA.KOI8-U.owner vendor/nvi/dist/catalog/zh_CN.GB2312.base (contents, props changed) vendor/nvi/dist/catalog/zh_CN.GB2312.owner vendor/nvi/dist/cl/extern.h (contents, props changed) vendor/nvi/dist/common/conv.c (contents, props changed) vendor/nvi/dist/common/conv.h (contents, props changed) vendor/nvi/dist/common/encoding.c (contents, props changed) vendor/nvi/dist/common/extern.h (contents, props changed) vendor/nvi/dist/common/multibyte.h (contents, props changed) vendor/nvi/dist/common/options_def.h (contents, props changed) vendor/nvi/dist/ex/ex_def.h (contents, props changed) vendor/nvi/dist/ex/extern.h (contents, props changed) vendor/nvi/dist/regex/ vendor/nvi/dist/regex/COPYRIGHT vendor/nvi/dist/regex/WHATSNEW vendor/nvi/dist/regex/cclass.h (contents, props changed) vendor/nvi/dist/regex/cname.h (contents, props changed) vendor/nvi/dist/regex/engine.c (contents, props changed) vendor/nvi/dist/regex/re_format.7 (contents, props changed) vendor/nvi/dist/regex/regcomp.c (contents, props changed) vendor/nvi/dist/regex/regerror.c (contents, props changed) vendor/nvi/dist/regex/regex.3 (contents, props changed) vendor/nvi/dist/regex/regex.h (contents, props changed) vendor/nvi/dist/regex/regex2.h (contents, props changed) vendor/nvi/dist/regex/regexec.c (contents, props changed) vendor/nvi/dist/regex/regfree.c (contents, props changed) vendor/nvi/dist/regex/utils.h (contents, props changed) vendor/nvi/dist/vi/extern.h (contents, props changed) Deleted: vendor/nvi/dist/FAQ vendor/nvi/dist/LAYOUT vendor/nvi/dist/build/ vendor/nvi/dist/catalog/dutch vendor/nvi/dist/catalog/dutch.check vendor/nvi/dist/catalog/english vendor/nvi/dist/catalog/english.base vendor/nvi/dist/catalog/english.check vendor/nvi/dist/catalog/french vendor/nvi/dist/catalog/french.check vendor/nvi/dist/catalog/german vendor/nvi/dist/catalog/german.check vendor/nvi/dist/catalog/ru_RU.KOI8-R vendor/nvi/dist/catalog/ru_RU.KOI8-R.check vendor/nvi/dist/catalog/ru_SU.KOI8-R vendor/nvi/dist/catalog/ru_SU.KOI8-R.base vendor/nvi/dist/catalog/ru_SU.KOI8-R.check vendor/nvi/dist/catalog/ru_SU.KOI8-R.owner vendor/nvi/dist/catalog/spanish vendor/nvi/dist/catalog/spanish.check vendor/nvi/dist/catalog/swedish vendor/nvi/dist/catalog/swedish.check vendor/nvi/dist/cl/cl_bsd.c vendor/nvi/dist/clib/ vendor/nvi/dist/common/api.c vendor/nvi/dist/contrib/ vendor/nvi/dist/ex/ex_perl.c vendor/nvi/dist/ex/ex_tcl.c vendor/nvi/dist/include/ vendor/nvi/dist/ip/ vendor/nvi/dist/ip_cl/ vendor/nvi/dist/perl_api/ vendor/nvi/dist/perl_scripts/ vendor/nvi/dist/tcl_api/ vendor/nvi/dist/tcl_scripts/ vendor/nvi/dist/tk/ Modified: vendor/nvi/dist/LICENSE vendor/nvi/dist/README vendor/nvi/dist/catalog/Makefile vendor/nvi/dist/catalog/README vendor/nvi/dist/catalog/dump.c vendor/nvi/dist/catalog/dutch.base (contents, props changed) vendor/nvi/dist/catalog/french.base (contents, props changed) vendor/nvi/dist/catalog/german.base (contents, props changed) vendor/nvi/dist/catalog/german.owner vendor/nvi/dist/catalog/ru_RU.KOI8-R.base (contents, props changed) vendor/nvi/dist/catalog/ru_RU.KOI8-R.owner vendor/nvi/dist/catalog/spanish.base (contents, props changed) vendor/nvi/dist/catalog/swedish.base (contents, props changed) vendor/nvi/dist/cl/README.signal vendor/nvi/dist/cl/cl.h vendor/nvi/dist/cl/cl_funcs.c vendor/nvi/dist/cl/cl_main.c vendor/nvi/dist/cl/cl_read.c vendor/nvi/dist/cl/cl_screen.c vendor/nvi/dist/cl/cl_term.c vendor/nvi/dist/common/args.h vendor/nvi/dist/common/common.h vendor/nvi/dist/common/cut.c vendor/nvi/dist/common/cut.h vendor/nvi/dist/common/delete.c vendor/nvi/dist/common/exf.c vendor/nvi/dist/common/exf.h vendor/nvi/dist/common/gs.h vendor/nvi/dist/common/key.c vendor/nvi/dist/common/key.h vendor/nvi/dist/common/line.c vendor/nvi/dist/common/log.c vendor/nvi/dist/common/main.c vendor/nvi/dist/common/mark.c vendor/nvi/dist/common/mark.h vendor/nvi/dist/common/mem.h vendor/nvi/dist/common/msg.c vendor/nvi/dist/common/msg.h vendor/nvi/dist/common/options.c vendor/nvi/dist/common/options.h vendor/nvi/dist/common/options_f.c vendor/nvi/dist/common/put.c vendor/nvi/dist/common/recover.c vendor/nvi/dist/common/screen.c vendor/nvi/dist/common/screen.h vendor/nvi/dist/common/search.c vendor/nvi/dist/common/seq.c vendor/nvi/dist/common/seq.h vendor/nvi/dist/common/util.c vendor/nvi/dist/common/util.h vendor/nvi/dist/docs/USD.doc/vi.man/vi.1 vendor/nvi/dist/docs/USD.doc/vi.ref/vi.ref vendor/nvi/dist/docs/help vendor/nvi/dist/ex/ex.c vendor/nvi/dist/ex/ex.h vendor/nvi/dist/ex/ex_abbrev.c vendor/nvi/dist/ex/ex_append.c vendor/nvi/dist/ex/ex_args.c vendor/nvi/dist/ex/ex_argv.c vendor/nvi/dist/ex/ex_at.c vendor/nvi/dist/ex/ex_bang.c vendor/nvi/dist/ex/ex_cd.c vendor/nvi/dist/ex/ex_cmd.c vendor/nvi/dist/ex/ex_cscope.c vendor/nvi/dist/ex/ex_delete.c vendor/nvi/dist/ex/ex_display.c vendor/nvi/dist/ex/ex_edit.c vendor/nvi/dist/ex/ex_equal.c vendor/nvi/dist/ex/ex_file.c vendor/nvi/dist/ex/ex_filter.c vendor/nvi/dist/ex/ex_global.c vendor/nvi/dist/ex/ex_init.c vendor/nvi/dist/ex/ex_join.c vendor/nvi/dist/ex/ex_map.c vendor/nvi/dist/ex/ex_mark.c vendor/nvi/dist/ex/ex_mkexrc.c vendor/nvi/dist/ex/ex_move.c vendor/nvi/dist/ex/ex_open.c vendor/nvi/dist/ex/ex_preserve.c vendor/nvi/dist/ex/ex_print.c vendor/nvi/dist/ex/ex_put.c vendor/nvi/dist/ex/ex_quit.c vendor/nvi/dist/ex/ex_read.c vendor/nvi/dist/ex/ex_screen.c vendor/nvi/dist/ex/ex_script.c vendor/nvi/dist/ex/ex_set.c vendor/nvi/dist/ex/ex_shell.c vendor/nvi/dist/ex/ex_shift.c vendor/nvi/dist/ex/ex_source.c vendor/nvi/dist/ex/ex_stop.c vendor/nvi/dist/ex/ex_subst.c vendor/nvi/dist/ex/ex_tag.c vendor/nvi/dist/ex/ex_txt.c vendor/nvi/dist/ex/ex_undo.c vendor/nvi/dist/ex/ex_usage.c vendor/nvi/dist/ex/ex_util.c vendor/nvi/dist/ex/ex_version.c vendor/nvi/dist/ex/ex_visual.c vendor/nvi/dist/ex/ex_write.c vendor/nvi/dist/ex/ex_yank.c vendor/nvi/dist/ex/ex_z.c vendor/nvi/dist/ex/script.h vendor/nvi/dist/ex/tag.h vendor/nvi/dist/ex/version.h vendor/nvi/dist/vi/getc.c vendor/nvi/dist/vi/v_at.c vendor/nvi/dist/vi/v_ch.c vendor/nvi/dist/vi/v_cmd.c vendor/nvi/dist/vi/v_delete.c vendor/nvi/dist/vi/v_ex.c vendor/nvi/dist/vi/v_increment.c vendor/nvi/dist/vi/v_init.c vendor/nvi/dist/vi/v_itxt.c vendor/nvi/dist/vi/v_left.c vendor/nvi/dist/vi/v_mark.c vendor/nvi/dist/vi/v_match.c vendor/nvi/dist/vi/v_paragraph.c vendor/nvi/dist/vi/v_put.c vendor/nvi/dist/vi/v_redraw.c vendor/nvi/dist/vi/v_replace.c vendor/nvi/dist/vi/v_right.c vendor/nvi/dist/vi/v_screen.c vendor/nvi/dist/vi/v_scroll.c vendor/nvi/dist/vi/v_search.c vendor/nvi/dist/vi/v_section.c vendor/nvi/dist/vi/v_sentence.c vendor/nvi/dist/vi/v_status.c vendor/nvi/dist/vi/v_txt.c vendor/nvi/dist/vi/v_ulcase.c vendor/nvi/dist/vi/v_undo.c vendor/nvi/dist/vi/v_util.c vendor/nvi/dist/vi/v_word.c vendor/nvi/dist/vi/v_xchar.c vendor/nvi/dist/vi/v_yank.c vendor/nvi/dist/vi/v_z.c vendor/nvi/dist/vi/v_zexit.c vendor/nvi/dist/vi/vi.c vendor/nvi/dist/vi/vi.h vendor/nvi/dist/vi/vs_line.c vendor/nvi/dist/vi/vs_msg.c vendor/nvi/dist/vi/vs_refresh.c vendor/nvi/dist/vi/vs_relative.c vendor/nvi/dist/vi/vs_smap.c vendor/nvi/dist/vi/vs_split.c Modified: vendor/nvi/dist/LICENSE ============================================================================== --- vendor/nvi/dist/LICENSE Sun Aug 11 08:38:10 2013 (r254210) +++ vendor/nvi/dist/LICENSE Sun Aug 11 09:44:58 2013 (r254211) @@ -1,14 +1,19 @@ -The vi program is freely redistributable. You are welcome to copy, modify -and share it with others under the conditions listed in this file. If any -company (not any individual!) finds vi sufficiently useful that you would -have purchased it, or if any company wishes to redistribute it, contributions -to the authors would be appreciated. - /*- + * $Id: LICENSE,v 8.18 2011/07/10 11:58:35 zy Exp $ + */ + +The following are the copyrights and redistribution conditions that apply +to this copy of the Vi software. + +/* * Copyright (c) 1991, 1992, 1993, 1994 * The Regents of the University of California. All rights reserved. - * Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996 + * Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 * Keith Bostic. All rights reserved. + * Copyright (c) 1999, 2000 + * Sven Verdoolaege. All rights reserved. + * Copyright (c) 2011 + * Zhihao Yuan. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -18,11 +23,7 @@ to the authors would be appreciated. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * Modified: vendor/nvi/dist/README ============================================================================== --- vendor/nvi/dist/README Sun Aug 11 08:38:10 2013 (r254210) +++ vendor/nvi/dist/README Sun Aug 11 09:44:58 2013 (r254211) @@ -1,31 +1,32 @@ -# @(#)README 8.147 (Berkeley) 10/19/96 +# $Id: README,v 9.0 2012/10/07 09:13:54 zy Exp $ -This is the README for nex/nvi, a freely redistributable implementation -of the ex/vi text editors originally distributed as part of the Fourth -Berkeley Software Distribution (4BSD), by the University of California, -Berkeley. - -The source code for nex/nvi can be retrieved by using anonymous ftp to -ftp.cs.berkeley.edu. The file ucb/4bsd/nvi.tar.gz is the gzip'd archive, -of version 1.71 of nex/nvi. This version is believed to be stable and -problem free. The file ucb/4bsd/nvi-###.ALPHA.tar.gz is a gzip'd archive -of the current alpha-test release of nex/nvi. This version reflects the -current development tree, and will be more likely to have problems. - -See the file: - build/README for information on building nvi. - LAYOUT for a description of where everything is. - LICENSE for the copyright and redistribution terms. - -If you have any questions about nex/nvi, problems with it, or concerns -about the conditions for redistribution, please contact me: - - Keith Bostic +1-508-287-4781 - 394 E. Riding Dr. bostic@bostic.com - Carlisle, MA 01741 - USA +This is version 2.1.1 (2012-10-07) of nex/nvi, a reimplementation of the ex/vi +text editors originally distributed as part of the Fourth Berkeley +Software Distribution (4BSD), by the University of California, Berkeley. + +The directory layout is as follows: + + LICENSE ....... Copyright, use and redistribution information. + README ........ This file. + build ......... Build directory. + catalog ....... Message catalogs; see catalog/README. + cl ............ Vi interface to the curses(3) library. + common ........ Code shared by ex and vi. + docs .......... Ex/vi documentation, both current and historic. + ex ............ Ex source code. + regex ......... Modified regex library with wide character support. + vi ............ Vi source code. -Keith Bostic +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + +o Nvi was written by Keith Bostic, and the last version is 1.79. After that, + + Sven Verdoolaege added the iconv support and the DB3 locking. + + Jun-ichiro itojun Hagino developed the file encoding detection + techniques in his nvi-m17n. + +The following acknowledgments were written by Keith Bostic: =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= o This software is several years old and is the product of many folks' work. @@ -63,51 +64,3 @@ o From the original vi acknowledgements, o And... The financial support of UUNET Communications Services is gratefully acknowledged. - -=-=-=-=-=-=-=-=-=-=-= -o Status: - -This software is in beta test, and it's pretty stable. Almost all of the -historic functionality in ex/vi is there, the only major missing pieces -are open mode and the lisp edit option. - -Nvi is largely 8-bit clean. This isn't difficult to fix, and was left in -during initial development to keep things simple. Wide character support -will be integrated at the same time that it is made fully 8-bit clean. - -There aren't a lot of new features in nex/nvi, but there are a few things -you might like. The "Additional Features" section of the reference work -(docs/USD.doc/vi.ref/vi.ref.txt, docs/USD.doc/vi.ref/vi.ref.ps) has more -information. - -=-=-=-=-=-=-=-=-=-=-= -o Debugging: - -Code fixes are greatly appreciated, of course, but if you can't provide -them, please email me as much information as you can as to how I might -reproduce the bug, and I'll try to fix it locally. Stack traces of core -dumps are only rarely helpful -- an example file with a set of keystrokes -that causes the problem is almost invariably necessary. I know it's -annoying, but simply playing with the bug until you can reproduce it at -will, with minimal keystrokes, is immensely helpful to me. - -Please include the following in the bug report; - - o The version of nvi you're running (use :version to get it). - o The row/column dimensions of the screen (80 x 32). - o Unless you're confident that they're not part of the problem, - your startup files (.exrc, .nexrc) and the environment variable - (EXINIT, NEXINIT) values. (Cutting and pasting the output - of ":set all" is usually sufficient.) - -If you want to do your own debugging, recompile the program with DEBUG -defined. (Configuring with --enable-debug will do this for you.) This -turns on the additional command-line option -D, that takes either s or w -as an argument. The option -Ds causes nvi to ignore the EXINIT and -.exrc files on startup, and -Dw causes nvi to print out the process id -and wait for you to enter a to continue. - -If you're running a memory checker (e.g. Purify) on nvi, you will first -want to recompile everything with "-DPURIFY" set in the CFLAGS. This -initializes allocated pages in the DB code, and free's allocated memory -at the end of the nvi execution. Modified: vendor/nvi/dist/catalog/Makefile ============================================================================== --- vendor/nvi/dist/catalog/Makefile Sun Aug 11 08:38:10 2013 (r254210) +++ vendor/nvi/dist/catalog/Makefile Sun Aug 11 09:44:58 2013 (r254211) @@ -1,7 +1,8 @@ -# @(#)Makefile 8.29 (Berkeley) 10/19/96 +# $Id: Makefile,v 9.0 2012/10/19 15:13:11 zy Exp $ -CAT= dutch english french german ru_SU.KOI8-R spanish swedish -FILES= ../cl/*.c ../common/*.c ../ex/*.c ../tk/*.c ../vi/*.c +CAT= dutch english french german polish ru_RU.KOI8-R spanish swedish \ + uk_UA.KOI8-U zh_CN.GB2312 +FILES= ../cl/*.c ../common/*.c ../ex/*.c ../vi/*.c all: dump ${CAT} @@ -18,13 +19,10 @@ ${CAT}: english.base print "DUPLICATE MESSAGE NUMBER " $$1; \ exit 1; \ } \ - for (; nline < $$1; ++nline) \ - print ""; \ print $0; \ }' | \ - sed -e '1s/^/VI_MESSAGE_CATALOG/' \ - -e '/"/s/^[^"]*"//' \ - -e '1!s/"$$/X/' > $@; \ + sed -e '1s/^/$$set 1~$$quote "~/; 1y/~/\n/' | \ + gencat $@ /dev/stdin; \ chmod 444 $@; \ if grep DUPLICATE $@ > /dev/null; then \ grep DUPLICATE $@; \ @@ -34,7 +32,8 @@ ${CAT}: english.base fi CHK= dutch.check english.check french.check german.check \ - ru_SU.KOI8-R.check spanish.check swedish.check + polish.check ru_RU.KOI8-R.check spanish.check swedish.check \ + uk_UA.KOI8-U.check zh_CN.GB2312.check check: ${CHK} ${CHK}: ${CAT} @echo "... $@"; \ @@ -63,19 +62,14 @@ ${CHK}: ${CAT} echo "Duplicate messages, both id and message (this is okay):"; \ sed '/^$$/d' < $$f.base | sort | uniq -c | \ awk '$$1 != 1 { print $$0 }' | sort -n; \ - echo =========================; \ - echo "Duplicate messages, just message (this is okay):"; \ - sed '/^$$/d' < $$f | sort | uniq -c | \ - awk '$$1 != 1 { print $$0 }' | sort -n; \ echo =========================) > $@ english.base: dump ${FILES} #Makefile ./dump ${FILES} |\ sed -e '/|/!d' \ -e 's/|/ "/' \ - -e 's/^"//' \ - -e 's/\\"/"/g' |\ - sort -n > $@ + -e 's/^"//' |\ + sort -nu > $@ dump: dump.c ${CC} -O -o dump dump.c Modified: vendor/nvi/dist/catalog/README ============================================================================== --- vendor/nvi/dist/catalog/README Sun Aug 11 08:38:10 2013 (r254210) +++ vendor/nvi/dist/catalog/README Sun Aug 11 09:44:58 2013 (r254211) @@ -1,15 +1,9 @@ -# @(#)README 8.4 (Berkeley) 11/22/94 +# $Id: README,v 9.0 2012/10/19 17:06:15 zy Exp $ Generally, all non-system error and informational messages in nvi are catalog messages, i.e. they can be tailored to a specific langauge. -Command strings, usage strings, system errors and other "known text" -are not. It would certainly be possible to internationalize all the -text strings in nvi, but it's unclear that it's the right thing to do. - -First, there's no portable way to do message catalogs. The System V -scheme is a reasonable choice, but none of the 4BSD derived systems -support it. So, catalogs are completely implemented within nvi, and -don't require any library support. +Command strings, usage strings, system errors and other 'known text' +are not. Message catalogs in nvi are fairly simple. Every catalog message consists of two parts -- an initial number followed by a pipe (`|') @@ -33,19 +27,7 @@ For example: msgq(sp, M_ERR, "002|Error: %d %x", arg1, arg2); -is a format string that displays two arguments. It is possible, however, -to reorder the arguments or to not display all of them. The convention -nvi uses is the System V printf(3) convention, i.e. "%[0-9]*$" is the name -of a specific, numbered argument. For example: - - msgq(sp, M_ERR, "002|Error: %2$d %1$x", arg1, arg2); - -displays the arguments in reverse order. - -If the system supports this convention in its library printf routines -(as specified by the test #define NL_ARGMAX), nvi uses those routines. -Otherwise, there is some serious magic going on in common/msg.c to make -this all work. +is a format string that displays two arguments. Arguments to the msgq function are required to contain ONLY printable characters. No further translation is done by the msgq routine before @@ -54,14 +36,16 @@ displaying the message on the screen. F msgq(sp, M_ERR, "003|File: %s", file_name); "file_name" must contain only printable characters. The routine -msg_print() returns a printable version of a string in allocated -memory. For example: +msg_print() returns a printable version of a string; the third argument +indicates whether the string needs to be freed. For example: char *p; + int nf; - p = msg_print(sp, file_name); - msgq(sp, M_ERR, M("003", "File: %s"), p); - FREE_SPACE(sp, p, 0); + p = msg_print(sp, file_name, &nf); + msgq(sp, M_ERR, "003|File: %s", p); + if (nf) + FREE_SPACE(sp, p, 0); makes sure that "file_name" is printable before calling the msgq routine. @@ -71,63 +55,40 @@ routine. The message catalogs themselves are maintained in two files. The first is the "base file" which contains two fields, a record number and the message itself. All base files are named using the convention -"vi_.base", e.g. the English one is "vi_english.base". For +".base", e.g. the English one is "english.base". For example: - 002 "Unable to create temporary file" - 003 "Warning: %s is not a regular file" - 004 "%s already locked, session is read-only" - 005 "%s: remove" - 006 "%s: close" - 007 "%s: remove" - 008 "%s: remove" - 009 "Read-only file, not written; use ! to override" - 010 "Read-only file, not written" - -are the first few lines of the current vi_english.base file. Note that -message #1 is missing -- the first message of each catalog is a special -one, so that nvi can recognize message catalog files. It's added by the -Makefile script that creates the second version of the message catalog. - -The second file is the file used by nvi to access messages, and is a list -of the messages, one per line: - - VI_MESSAGE_CATALOG - Unable to create temporary fileX - Warning: %s is not a regular fileX - %s already locked, session is read-onlyX - %s: removeX - %s: closeX - %s: removeX - %s: removeX - Read-only file, not written; use ! to overrideX - Read-only file, not writtenX - -Note that all messages have had a trailing 'X' character appended. This -is to provide nvi a place to store a trailing nul for the message so that -C library routines that expect one won't be disappointed. + 002 "Line length overflow" + 003 "unable to delete line %lu" + 004 "unable to append to line %lu" + 005 "unable to insert at line %lu" + 006 "unable to store line %lu" + 007 "unable to get last line" + +are the first few lines of the current english.base file. + +Before this file being converted to the second file, the POSIX formatted +message catalog file, by gencat(1), two lines: + + $set 1 + $quote " + +will be inserted before the base text to setup the set_id and the quote +character. So the double-quote needs to be escaped by a backslash to be +included in a message; same as the backslash itself. -These files are named for their language, e.g. "vi_english". The second -files are automatically created from the first files. +These files are named for their language, e.g. "english". However, a +locale(1) name is also recommended. To create a new catalog for nvi: -Copy the file vi_english.base to a file that you can modify , e.g. "cp -vi_english.base vi_german.base". For each of the messages in the file, -replace the message with the string that you want to use. To find out -what the arguments to a message are, I'm afraid you'll have to search -the source code for the message number. You can find them fairly quickly -by doing: - - cd ..; egrep '123\|' */*.[chys] - -I'm sorry that there's not an easier way, but I couldn't think of -anything that wasn't a lot of work. - -If, for some reason, you don't have the file vi_english.base, or you -have new sources for which you want to create a new base catalog, you -can create it by running the command "make english" in the catalog -directory. +Copy the file english.base to a file that you can modify , e.g. "cp +english.base german.base". For each of the messages in the file, +replace the message with the string that you want to use. If you have +doubts about the meaning of a message, just email me. + +A latest english.base can be created from source by running the command +"make english" in the catalog/ directory. Once you've translated all of the strings, then add your catalog to the "CAT=" line of the Makefile, and run the command "make catalog". This @@ -156,11 +117,11 @@ a single place. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= To select a catalog when running nvi, set the "msgcat" option. If the value of this option ends with a '/', it is treated as the name of a -directory that contains a message catalog "vi_XXXX", where XXXX is the -value of the LANG environmental variable, if it's set, or the value of -the LC_MESSAGES environmental variable if it's not. If neither of those -environmental variables are set, or if the option doesn't end in a '/', -the option is treated as the full path name of the message catalog to use. +directory that contains a message catalog "$LC_MESSAGES", which is set +through the LC_MESSAGES environment variable but returned by setlocale(3). +Check the output of locale(1) to validate such a value. If the option +doesn't end in a '/', the option is treated as the full path name of the +message catalog to use. If any messages are missing from the catalog, the backup text (English) is used instead. Modified: vendor/nvi/dist/catalog/dump.c ============================================================================== --- vendor/nvi/dist/catalog/dump.c Sun Aug 11 08:38:10 2013 (r254210) +++ vendor/nvi/dist/catalog/dump.c Sun Aug 11 09:44:58 2013 (r254211) @@ -2,43 +2,17 @@ * Copyright (c) 1992, 1993, 1994 * The Regents of the University of California. All rights reserved. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. + * %sccs.include.redist.c% */ #ifndef lint static char copyright[] = -"@(#) Copyright (c) 1992, 1993, 1994\n\ +"%Z% Copyright (c) 1992, 1993, 1994\n\ The Regents of the University of California. All rights reserved.\n"; #endif /* not lint */ #ifndef lint -static char sccsid[] = "@(#)dump.c 8.1 (Berkeley) 8/31/94"; +static char sccsid[] = "$Id: dump.c,v 8.2 2011/07/14 00:05:25 zy Exp $"; #endif /* not lint */ #include @@ -105,10 +79,10 @@ main(argc, argv) for (; *argv != NULL; ++argv) { if ((fp = fopen(*argv, "r")) == NULL) { perror(*argv); - exit (1); + return (1); } parse(fp); (void)fclose(fp); } - exit (0); + return (0); } Modified: vendor/nvi/dist/catalog/dutch.base ============================================================================== --- vendor/nvi/dist/catalog/dutch.base Sun Aug 11 08:38:10 2013 (r254210) +++ vendor/nvi/dist/catalog/dutch.base Sun Aug 11 09:44:58 2013 (r254211) @@ -43,8 +43,7 @@ 044 "De lisp optie is niet ondersteund" 045 "messages niet uitgeschakeld: %s" 046 "messages niet geactiveerd: %s" -048 "De paragraph optie moet karakter paren bevatten" -049 "De section optie moet karakter paren bevatten" +047 "De %s optie moet karakter paren bevatten" 053 "De standaard buffer is leeg" 054 "Buffer %s is leeg" 055 "Bestanden met newlines in de naam kunnen niet hersteld worden" @@ -97,16 +96,16 @@ 103 "Ongeldig adres: het bestand is leeg" 104 "Het %s commando staat het adres 0 niet toe" 105 "Geen afkortingen om weer te geven" -106 "Afkortingen moeten eindigen met een "woord" letter" +106 "Afkortingen moeten eindigen met een \"woord\" letter" 107 "Afkortingen mogen geen tabulaties of spaties bevatten" 108 "Afkortingen mogen geen woord/niet-woord karakters mengen, behalve aan het einde" -109 ""%s" is geen afkorting" +109 "\"%s\" is geen afkorting" 110 "Vi commando mislukt: gemappede toetsen genegeerd" 111 "Dit is het laatste bestand" 112 "Dit is het eerste bestand" 113 "Dit is het eerste bestand" 114 "lijst met bestanden is leeg" -115 "Geen voorgaand commando om "!" te vervangen" +115 "Geen voorgaand commando om \"!\" te vervangen" 116 "Geen bestandsnaam voor %%" 117 "Geen bestandsnaam voor #" 118 "Fout: execl: %s" @@ -119,14 +118,14 @@ 125 "%s/%s: niet gelezen: noch U noch root is de eigenaar" 126 "%s/%s: niet gelezen: U bent niet de eigenaar" 127 "%s/%s: niet gelezen: kan gewijzigd worden door andere gebruikers" -128 "%s: niet gelezen: noch U noch root is de eigenaar"" +128 "%s: niet gelezen: noch U noch root is de eigenaar" 129 "%s: niet gelezen: U bent niet de eigenaar" 130 "%s: niet gelezen: kan gewijzigd worden door andere gebruikers" 131 "Geen volgende regel om samen te voegen" 132 "Geen input map entries" 133 "Geen command map entries" 134 "Het %s karakter kan niet ge-remapped worden" -135 ""%s" is niet gemapped" +135 "\"%s\" is niet gemapped" 136 "Merk naam moet een enkel karakter zijn" 137 "%s bestaat al, niet weggeschreven; gebruik ! om het te forceren" 138 "Nieuw .exrc bestand: %s. " @@ -296,7 +295,7 @@ 306 "Vi was niet geladen met een Perl interpreter" 307 "Geen ex commando om uit te voeren" 308 "Kies om commando uit te voeren, :q om te stoppen" -309 "Gebruik "cscope help" voor uitleg" +309 "Gebruik \"cscope help\" voor uitleg" 310 "Nog geen cscope connectie aanwezig" 311 "%s: onbekend zoek type: gebruik een van %s" 312 "%d: onbekende cscope sessie" Modified: vendor/nvi/dist/catalog/french.base ============================================================================== --- vendor/nvi/dist/catalog/french.base Sun Aug 11 08:38:10 2013 (r254210) +++ vendor/nvi/dist/catalog/french.base Sun Aug 11 09:44:58 2013 (r254211) @@ -1,309 +1,306 @@ -002 "D‚passement de longueur de ligne" +002 "Dépassement de longueur de ligne" 003 "impossible de supprimer la ligne %lu" -004 "impossible d'ajouter … la ligne %lu" -005 "impossible d'ins‚rer devant la ligne %lu" +004 "impossible d'ajouter à la ligne %lu" +005 "impossible d'insérer devant la ligne %lu" 006 "impossible de stocker la ligne %lu" -007 "impossible d'obtenir la derniŠre ligne" -008 "Erreur : impossible de r‚cup‚rer la ligne %lu" +007 "impossible d'obtenir la dernière ligne" +008 "Erreur : impossible de récupérer la ligne %lu" 009 "Fichier journal" -010 "Aucune connexion n'‚tant effectu‚e, impossible d'annuler" -011 "Aucune action … annuler" -012 "Aucune connexion n'‚tant effectu‚e, impossible d'annuler" -013 "Aucune connexion n'‚tant effectu‚e, reprise actualis‚e impossible" -014 "Aucune action … refaire" -015 "%s/%d : Erreur d'‚criture de journal" -016 "L'entr‚e et la sortie Vi standards doivent ˆtre un terminal" -017 "Marque %s : non d‚finie" -018 "Marque %s : la ligne a ‚t‚ supprim‚e" +010 "Aucune journalisation n'étant effectuée, impossible d'annuler" +011 "Aucune action à annuler" +012 "Aucune journalisation n'étant effectuée, impossible d'annuler" +013 "Aucune journalisation n'étant effectuée, reprise actualisée impossible" +014 "Aucune action à refaire" +015 "%s/%d : Erreur d'écriture de journal" +016 "L'entrée et la sortie Vi standards doivent être un terminal" +017 "Marque %s : non définie" +018 "Marque %s : la ligne a été supprimée" 019 "Marque %s : la position du curseur n'existe plus" 020 "Erreur : " 021 "nouveau fichier" -022 "le nom a chang‚" -023 "modifi‚" -024 "non modifi‚" -025 "DEVERROUILLE" +022 "le nom a changé" +023 "modifié" +024 "non modifié" +025 "DÉVERROUILLÉ" 026 "lecture seule" 027 "ligne %lu de %lu [%ld%%]" 028 "fichier vide" 029 "ligne %lu" 030 "Ce fichier %s n'est pas un catalogue de messages" -031 "Impossible de configurer option %s par d‚faut" +031 "Impossible de configurer option %s par défaut" 032 "Utilisation : %s" -033 "D‚finition : pas d'option %s : 'tout d‚finir' donne toutes les valeurs optionnelles" -034 "D‚finition : option [no]%s ne prend pas de valeur" -035 "D‚finition : l'option %s n'est pas bool‚enne" -036 "D‚finition : option %s : %s" -037 "D‚finition : option %s : %s : D‚passement de valeur" -038 "D‚finition : option %s : %s n'est pas un nombre valide" -039 "D‚finition : l'option %s n'est pas bool‚enne" -040 "Les colonnes de l'‚cran sont trop petites, inf‚rieures … %d" -041 "Les colonnes de l'‚cran sont trop grandes, sup‚rieures … %d" -042 "Les lignes de l'‚cran sont trop courtes, inf‚rieures … %d" -043 "Les lignes de l'‚cran sont trop longues, sup‚rieures … %d" -044 "L'option lisp n'est pas impl‚ment‚e" -045 "Les messages ne sont pas d‚sactiv‚s : %s" -046 "Les messages ne sont pas activ‚s : %s" -048 "L'option de paragraphe doit ˆtre en groupe de deux caractŠres" -049 "L'option de section doit ˆtre en groupe de deux caractŠres" -053 "Le tampon par d‚faut est vide" +033 "Définition : pas d'option %s : 'set all' donne toutes les valeurs optionnelles" +034 "Définition : option [no]%s ne prend pas de valeur" +035 "Définition : l'option %s n'est pas booléenne" +036 "Définition : option %s : %s" +037 "Définition : option %s : %s : Dépassement de valeur" +038 "Définition : option %s : %s n'est pas un nombre valide" +039 "Définition : l'option %s n'est pas booléenne" +040 "Les colonnes de l'écran sont trop petites, inférieures à %d" +041 "Les colonnes de l'écran sont trop grandes, supérieures à %d" +042 "Les lignes de l'écran sont trop courtes, inférieures à %d" +043 "Les lignes de l'écran sont trop longues, supérieures à %d" +044 "L'option lisp n'est pas implémentée" +045 "Les messages ne sont pas désactivés : %s" +046 "Les messages ne sont pas activés : %s" +047 "L'option de %s doit être en groupe de deux caractères" +053 "Le tampon par défaut est vide" 054 "Le tampon %s est vide" -055 "Les fichiers dont le nom contient des caractŠres de saut de ligne sont irr‚cup‚rables" -056 "Impossible de r‚cup‚rer les modifications si la session ‚choue" -057 "Copie en cours du fichier pour r‚cup‚ration..." -058 "La pr‚servation a ‚chou‚ : %s" -059 "Impossible de r‚cup‚rer les modifications si la session ‚choue" -060 "La sauvegarde du fichier a ‚chou‚ : %s" -061 "Copie en cours du fichier pour r‚cup‚ration..." -062 "Les renseignements sur l'identit‚ %u de l'utilisateur sont introuvables" -063 "Impossible de verrouiller le fichier de r‚cup‚ration" -064 "D‚bordement de tampon du fichier de r‚cup‚ration" -065 "Fichier de r‚cup‚ration" -066 "%s : Fichier de r‚cup‚ration malform‚" -067 "%s : Fichier de r‚cup‚ration malform‚" -068 "Aucun fichier nomm‚ %s … r‚cup‚rer, que vous puissiez lire" -069 "Il existe des versions r‚cup‚rables ant‚rieures … ce fichier" -070 "Vous avez d'autres fichiers … r‚cup‚rer" +055 "Les fichiers dont le nom contient des caractères de saut de ligne sont irrécupérables" +056 "Impossible de récupérer les modifications si la session échoue" +057 "Copie en cours du fichier pour récupération..." +058 "La préservation a échoué : %s" +059 "Impossible de récupérer les modifications si la session échoue" +060 "La sauvegarde du fichier a échoué : %s" +061 "Copie en cours du fichier pour récupération..." +062 "Les renseignements sur l'identité %u de l'utilisateur sont introuvables" +063 "Impossible de verrouiller le fichier de récupération" +064 "Débordement de tampon du fichier de récupération" +065 "Fichier de récupération" +066 "%s : Fichier de récupération malformé" +067 "%s : Fichier de récupération malformé" +068 "Aucun fichier nommé %s à récupérer, que vous puissiez lire" +069 "Il existe des versions récupérables antérieures à ce fichier" +070 "Vous avez d'autres fichiers à récupérer" 071 "pas d'envoi d'email : %s" -072 "Fichier vide, rien … rechercher" +072 "Fichier vide, rien à rechercher" 073 "Fin de fichier atteinte sans trouver le motif" -074 "Pas de motif de recherche pr‚c‚dent" +074 "Pas de motif de recherche précédent" 075 "Motif introuvable" -076 "D‚but du fichier atteint sans trouver le motif" -077 "La recherche est revenue … son point de d‚part" +076 "Début du fichier atteint sans trouver le motif" +077 "La recherche est revenue à son point de départ" 078 "Recherche en cours..." -079 "CaractŠre non-imprimable introuvable" +079 "Caractère non-imprimable introuvable" 080 "Nom de commande inconnu" 082 "%s : Commande non disponible en ex mode" -083 "Le compte ne peut ˆtre z‚ro" -084 "%s : mauvaise sp‚cification de ligne" +083 "Le compteur ne peut être zéro" +084 "%s : mauvaise spécification de ligne" 085 "Erreur de tableau de syntaxe interne (%s: %s)" 086 "Utilisation : %s" -087 "%s : tampon temporaire non lib‚r‚" -088 "D‚calage de drapeau hors de la ligne 1" -089 "D‚calage de drapeau hors de la fin du fichier" -090 "@ avec plage, en cours d'ex‚cution quand le fichier/l'‚cran a chang‚" -091 "Commande Global/v en cours d'ex‚cution quand le fichier/l'‚cran a chang‚" -092 "La commande ex a ‚chou‚ : commandes en attente abandonn‚es" -093 "La commande ex a ‚chou‚ : les touches affect‚es sont abandonn‚es" -094 "La deuxiŠme adresse est plus petite que la premiŠre" +087 "%s : tampon temporaire non libéré" +088 "Décalage de drapeau hors de la ligne 1" +089 "Décalage de drapeau hors de la fin du fichier" +090 "@ avec plage, en cours d'exécution quand le fichier/l'écran a changé" +091 "Commande Global/v en cours d'exécution quand le fichier/l'écran a changé" +092 "La commande ex a échoué : commandes en attente abandonnées" +093 "La commande ex a échoué : les touches affectées sont abandonnées" +094 "La deuxième adresse est plus petite que la première" 095 "Aucun nom de marque fourni" -096 "\\ pas suivi par / ou ?" -097 "R‚f‚rence … un num‚ro de ligne inf‚rieure … 0" +096 "\\ non suivi par / ou ?" +097 "Référence à un numéro de ligne inférieure à 0" 098 "La commande %s est inconnue" -099 "D‚passement de la valeur adresse" -100 "D‚passement n‚gatif de la valeur adresse" +099 "Dépassement de la valeur adresse" +100 "Dépassement négatif de la valeur adresse" 101 "Combinaison d'adresse non valide" -102 "Adresse non valide : il n'y a que des lignes %lu dans le fichier" +102 "Adresse non valide : il n'y a que %lu lignes dans ce fichier" 103 "Adresse non valide : le fichier est vide" 104 "La commande %s ne permet pas une adresse de 0" -105 "Pas d'abr‚viations … afficher" -106 "Les abr‚viations doivent finir par un caractŠre"mot" -107 "Les abr‚viations ne peuvent pas contenir de tabulations ni d'espaces" -108 "Les abr‚viations ne peuvent pas contenir un m‚lange de caractŠres mot/non-mot, sauf … la fin" -109 ""%s" n'est pas une abr‚viation" -110 "La commande Vi a ‚chou‚ : Les touches affect‚es ont ‚t‚ abandonn‚es" -111 "Plus de fichiers … ‚diter" -112 "Pas de fichiers pr‚c‚dents … ‚diter" -113 "Pas de fichiers pr‚c‚dents … rembobiner" -114 "Pas de liste de fichiers … afficher" -115 "Pas de commande pr‚c‚dente … remplacer"!"" -116 "Pas de nom de fichier … substituer … %%" -117 "Pas de nom de fichier … substituer … #" +105 "Pas d'abréviations à afficher" +106 "Les abréviations doivent finir par un caractère \"mot\"" +107 "Les abréviations ne peuvent pas contenir de tabulations ni d'espaces" +108 "Les abréviations ne peuvent pas contenir un mélange de caractères mot/non-mot, sauf à la fin" +109 "\"%s\" n'est pas une abréviation" +110 "La commande Vi a échoué : Les touches affectées ont été abandonnées" +111 "Plus de fichiers à éditer" +112 "Pas de fichiers précédents à éditer" +113 "Pas de fichiers précédents à rembobiner" +114 "Pas de liste de fichiers à afficher" +115 "Pas de commande précédente à remplacer \"!\"" +116 "Pas de nom de fichier à substituer à %%" +117 "Pas de nom de fichier à substituer à #" 118 "Erreur : execl : %s" 119 "Erreur E/S : %s" -120 "Fichier modifi‚ depuis la derniŠre ‚criture complŠte ; ‚crire ou utiliser ! pour outrepasser" -121 "Impossible de trouver l'emplacement du r‚pertoire d'origine" -122 "Nouveau r‚pertoire en cours : %s" -123 "Pas de tampon de coupure … afficher" -124 "La commande %s ne peut pas ˆtre utilis‚e … l'int‚rieur d'une commande globale ou commande v" -125 "%s/%s : ‚chec de source : ni vous ni le super-utilisateur n'ˆtes les propri‚taires " -126 "%s/%s : ‚chec de source : vous n'ˆtes pas le propri‚taire" -127 "%s/%s : ‚chec de source : peut ˆtre ‚crit par un utilisateur autre que le propri‚taire" -128 "%s : ‚chec de source : ni vous ni le super-utilisateur n'ˆtes les propri‚taires" -129 "%s : ‚chec de source : vous n'ˆtes pas le propri‚taire" -130 "%s : ‚chec de source : peut ˆtre ‚crit par un utilisateur autre que le propri‚taire" -131 "Pas de lignes suivantes … joindre" -132 "Pas d'entr‚es de mappage d'entr‚e" -133 "Pas d'entr‚es de mappage de commandes" -134 "Le caractŠre %s ne peut pas ˆtre remapp‚" -135 ""%s" n'est pas actuellement mapp‚" -136 "Les noms de marque ne doivent avoir qu'un caractŠre" -137 "%s existe, non enregistr‚; utiliser ! pour outrepasser" +120 "Fichier modifié depuis la dernière écriture complète ; écrire ou utiliser ! pour outrepasser" +121 "Impossible de trouver l'emplacement du répertoire d'origine" +122 "Nouveau répertoire en cours : %s" +123 "Pas de tampon de coupure à afficher" +124 "La commande %s ne peut pas être utilisée à l'intérieur d'une commande globale ou commande v" +125 "%s/%s : échec de source : ni vous ni le super-utilisateur n'êtes les propriétaires " +126 "%s/%s : échec de source : vous n'êtes pas le propriétaire" +127 "%s/%s : échec de source : peut être écrit par un utilisateur autre que le propriétaire" +128 "%s : échec de source : ni vous ni le super-utilisateur n'êtes les propriétaires" +129 "%s : échec de source : vous n'êtes pas le propriétaire" +130 "%s : échec de source : peut être écrit par un utilisateur autre que le propriétaire" +131 "Pas de lignes suivantes à joindre" +132 "Pas d'entrées de mappage d'entrée" +133 "Pas d'entrées de mappage de commandes" +134 "Le caractère %s ne peut pas être remappé" +135 "\"%s\" n'est pas actuellement mappé" +136 "Les noms de marque ne doivent avoir qu'un caractère" +137 "%s existe, non enregistré; utiliser ! pour outrepasser" 138 "Nouveau fichier exrc : %s" -139 "La ligne de destination est … l'int‚rieur de la plage … d‚placer" -140 "La commande ouverte n‚cessite que l'option ouverte soit d‚finie" -141 "La commande ouverte n'est pas encore impl‚ment‚e" -142 "La pr‚servation de ce fichier est impossible" -143 "Fichier pr‚serv‚" -144 "%s: ‚tendu dans trop de noms de fichiers" -145 "Vous ne pouvez lire que les fichiers standards et les canaux de transmission nomm‚s" +139 "La ligne de destination est à l'intérieur de la plage à déplacer" +140 "La commande ouverte nécessite que l'option ouverte soit définie" +141 "La commande ouverte n'est pas encore implémentée" +142 "La préservation de ce fichier est impossible" +143 "Fichier préservé" +144 "%s: étendu dans trop de noms de fichiers" +145 "Vous ne pouvez lire que les fichiers standards et les canaux de transmission nommés" 146 "%s: Interdiction de lecture non disponible" 147 "Lecture en cours..." -148 "%s: %lu lignes, %lu caractŠres" -149 "Pas d'‚crans d'arriŠre-plan … afficher" +148 "%s: %lu lignes, %lu caractères" +149 "Pas d'écrans d'arrière-plan à afficher" 150 "La commande script n'est disponible qu'en mode vi" -151 "Pas de commande … ex‚cuter" -152 "Option de largeur de d‚calage d‚finie sur 0" -153 "Compter d‚passement" -154 "Compter d‚passement n‚gatif" -155 "Expression standard sp‚cifi‚e; drapeau r superflu" +151 "Pas de commande à exécuter" +152 "Option de largeur de décalage définie sur 0" +153 "Compter dépassement" +154 "Compter dépassement négatif" +155 "Expression standard spécifiée; drapeau r superflu" 156 "Vous ne pouvez pas en mode vi, combiner les drapeaux #, l et p avec le drapeau c" -157 "Aucune correspondance trouv‚e" -158 "Aucune marque pr‚c‚dente entr‚e" -159 "Moins de %s entr‚es dans la pile de marques ; utilisez t[ags]" +157 "Aucune correspondance trouvée" +158 "Aucune marque précédente entrée" +159 "Moins de %s entrées dans la pile de marques ; utilisez t[ags]" 160 "Pas de fichier %s vers lequel retourner dans la pile de marques ; utiliser : affichage t[ags]" -161 "Appuyez sur Entr‚e pour continuer :" +161 "Appuyez sur Entrée pour continuer :" 162 "%s : marque introuvable" 163 "%s : marque corrompue en %s" -164 "%s : le num‚ro de ligne de la marque d‚passe la fin du fichier" +164 "%s : le numéro de ligne de la marque dépasse la fin du fichier" 165 "La pile de marques est vide" 166 "%s : motif de recherche introuvable" -167 "%d fichiers suppl‚mentaires … ‚diter" +167 "%d fichiers supplémentaires à éditer" 168 "Le tampon %s est vide 169 "Confirmer les changements ? [n]" 170 "Interrompu" -171 "Pas de tampon pr‚c‚dent … ex‚cuter" -172 "Pas d'expression standard pr‚c‚dente" -173 "La commande %s n‚cessite qu'un fichier ait d‚j… ‚t‚ lu en m‚moire" +171 "Pas de tampon précédent à exécuter" +172 "Pas d'expression standard précédente" +173 "La commande %s nécessite qu'un fichier ait déjà été lu en mémoire" 174 "Utilisation : %s" -175 "La commande visuelle n‚cessite que l'option ouverte soit d‚finie" +175 "La commande visual nécessite que l'option open soit définie" 177 "Fichier vide" -178 "Pas de recherche pr‚c‚dente F, f, T ou t" +178 "Pas de recherche précédente F, f, T ou t" 179 "%s introuvable" -180 "Pas de fichier pr‚c‚dent … ‚diter" +180 "Pas de fichier précédent à éditer" 181 "Le curseur n'est pas dans un nombre" 182 "Le nombre obtenu est trop grand" 183 "Le nombre obtenu est trop petit" -184 "Pas de correspondance de caractŠre sur cette ligne" -185 "CaractŠre correspondant introuvable" -186 "Pas de caractŠres … remplacer" -187 "Pas d'autre ‚cran vers lequel basculer" -188 "CaractŠres aprŠs la chaŒne de recherche, d‚calage de ligne et/ou commande z" -189 "Pas de motif de recherche pr‚c‚dent" -190 "La recherche est revenue … son point de d‚part" -191 "L'abr‚viation a d‚pass‚ la limite de l'expansion : caractŠres abandonn‚s" -192 "CaractŠre non valide ; guillemet pour saisir" -193 "D‚j… au d‚but de l'insertion" -194 "Plus de caractŠres … effacer" -195 "D‚placement hors de fin de fichier" -196 "D‚placement hors de fin de ligne" -197 "Aucun mouvement de curseur n'a ‚t‚ effectu‚" -198 "D‚j… au d‚but du fichier" -199 "D‚placement hors du d‚but du fichier" -200 "D‚j… dans la premiŠre colonne" -201 "Les tampons doivent ˆtre sp‚cifi‚s avant la commande" -202 "D‚j… … la fin du fichier" -203 "D‚j… … la fin de la ligne" +184 "Pas de correspondance de caractère sur cette ligne" +185 "Caractère correspondant introuvable" +186 "Pas de caractères à remplacer" +187 "Pas d'autre écran vers lequel basculer" +188 "Caractères après la chaîne de recherche, décalage de ligne et/ou commande z" +189 "Pas de motif de recherche précédent" +190 "La recherche est revenue à son point de départ" +191 "L'abréviation a dépassé la limite de l'expansion : caractères abandonnés" +192 "Caractère non valide ; guillemet pour saisir" +193 "Déjà au début de l'insertion" +194 "Plus de caractères à effacer" +195 "Déplacement hors de fin de fichier" +196 "Déplacement hors de fin de ligne" +197 "Aucun mouvement de curseur n'a été effectué" +198 "Déjà au début du fichier" +199 "Déplacement hors du début du fichier" +200 "Déjà dans la première colonne" +201 "Les tampons doivent être spécifiés avant la commande" +202 "Déjà à la fin du fichier" +203 "Déjà à la fin de la ligne" 204 "%s n'est pas une commande vi" 205 "Utilisation : %s" -206 "Pas de caractŠres … supprimer" -207 "La commande Q n‚cessite une interface terminal ex" -208 "Pas de commande … r‚p‚ter" +206 "Pas de caractères à supprimer" +207 "La commande Q nécessite une interface terminal ex" +208 "Pas de commande à répéter" 209 "Le fichier est vide" -209 "Le fichier est vide" -210 "Vous ne pouvez pas utiliser %s comme commande de d‚placement" -211 "D‚j… en mode commande" +210 "Vous ne pouvez pas utiliser %s comme commande de déplacement" +211 "Déjà en mode commande" 212 "Le curseur n'est pas dans un mot" -214 "Valeur optionnelle de fenˆtre trop grande, maximum est %u" +214 "Valeur optionnelle de fenêtre trop grande, maximum est %u" 215 "Ajouter" 216 "Changer" 217 "Commande" -218 "Ins‚rer" +218 "Insérer" 219 "Remplacer" -220 "D‚placement hors de la fin d'‚cran" -221 "D‚placement hors du d‚but d'‚cran" -222 "L'‚cran doit ˆtre sup‚rieur … %d lignes pour se fractionner" -223 "Il n'y a pas d'‚cran d'arriŠre-plan" -224 "Il n'y a pas d'‚cran d'arriŠre-plan qui ‚dite un fichier nomm‚ %s" -225 "Vous ne pouvez pas mettre … l'arriŠre-plan votre seul ‚cran affich‚" -226 "L'‚cran ne peut ˆtre r‚duit qu'… %d rangs" -227 "L'‚cran n'est pas auto-r‚ductible" -228 "L'‚cran n'est pas auto-extensible" -230 "Vous ne pouvez pas mettre cet ‚cran en attente" -231 "Interrompu : les touches affect‚es ont ‚t‚ abandonn‚es" -232 "vi : le tampon temporaire n' a pas ‚t‚ lib‚r‚" +220 "Déplacement hors de la fin d'écran" +221 "Déplacement hors du début d'écran" +222 "L'écran doit être supérieur à %d lignes pour se fractionner" +223 "Il n'y a pas d'écran d'arrière-plan" +224 "Il n'y a pas d'écran d'arrière-plan qui édite un fichier nommé %s" +225 "Vous ne pouvez pas mettre à l'arrière-plan votre seul écran affiché" +226 "L'écran ne peut être réduit qu'à %d rangs" +227 "L'écran n'est pas auto-réductible" +228 "L'écran n'est pas auto-extensible" +230 "Vous ne pouvez pas mettre cet écran en attente" +231 "Interrompu : les touches affectées ont été abandonnées" +232 "vi : le tampon temporaire n' a pas été libéré" 233 "Ce terminal n'a pas de touche %s" -234 "Vous ne pouvez sp‚cifier qu'un seul tampon" -235 "Nombre sup‚rieur … %lu" +234 "Vous ne pouvez spécifier qu'un seul tampon" +235 "Nombre supérieur à %lu" 236 "Interrompu" -237 "Impossible de cr‚er un fichier temporaire" +237 "Impossible de créer un fichier temporaire" 238 "Avertissement : %s n'est pas un fichier standard" -239 "%s d‚j… verrouill‚, session en lecture seule" +239 "%s déjà verrouillé, session en lecture seule" 240 "%s: supprimer" 241 "%s: fermer" 242 "%s: supprimer" 243 "%s: supprimer" -244 "Fichier en lecture seule, pas ‚crit, utiliser ! pour outrepasser" -245 "Fichier en lecture seule, pas ‚crit" -246 "%s existe, pas ‚crit; utiliser ! pour outrepasser" -247 "%s existe, pas ‚crit" -248 "Fichier partiel, pas ‚crit; utiliser ! pour outrepasser" -249 "Fichier partiel, pas ‚crit" -250 "%s: fichier modifi‚ plus r‚cemment que cet exemplaire; utiliser ! pour outrepasser" -251 "%s: fichier modifi‚ plus r‚cemment que cet exemplaire" -252 "%s: interdiction d'‚criture non disponible" +244 "Fichier en lecture seule, non écrit, utiliser ! pour outrepasser" +245 "Fichier en lecture seule, non écrit" +246 "%s existe, non écrit; utiliser ! pour outrepasser" +247 "%s existe, non écrit" +248 "Fichier partiel, non écrit; utiliser ! pour outrepasser" +249 "Fichier partiel, non écrit" +250 "%s: fichier modifié plus récemment que cet exemplaire; utiliser ! pour outrepasser" +251 "%s: fichier modifié plus récemment que cet exemplaire" +252 "%s: interdiction d'écriture non disponible" 253 "Ecriture en cours..." -254 "%s: AVERTISSEMENT : FICHIER TRONQUE" -255 "PremiŠre marque de ce groupe d‚j… atteinte" -256 "%s: nouveau fichier : %lu lignes, %lu caractŠres" -257 "%s: %lu lignes, %lu caractŠres" -258 "%s ‚tendue … trop de noms de fichiers" +254 "%s: AVERTISSEMENT : FICHIER TRONQUÉ" +255 "Première marque de ce groupe déjà atteinte" +256 "%s: nouveau fichier : %lu lignes, %lu caractères" +257 "%s: %lu lignes, %lu caractères" +258 "%s étendue à trop de noms de fichiers" 259 "%s: pas un fichier standard" 260 "%s: ne vous appartient pas" -261 "%s: accessible par un utilisateur autre que son propri‚taire" -262 "Fichier modif‚ depuis la derniŠre ‚criture complŠte ; ‚crire ou utiliser ! pour outrepasser " -263 "Fichier modif‚ depuis la derniŠre ‚criture complŠte ; ‚crire ou utiliser :edit! pour outrepasser" -264 "Fichier modif‚ depuis la derniŠre ‚criture complŠte ; ‚crire ou utiliser ! pour outrepasser" +261 "%s: accessible par un utilisateur autre que son propriétaire" +262 "Fichier modifé depuis la dernière écriture complète ; écrire ou utiliser ! pour outrepasser " +263 "Fichier modifé depuis la dernière écriture complète ; écrire ou utiliser :edit! pour outrepasser" +264 "Fichier modifé depuis la dernière écriture complète ; écrire ou utiliser ! pour outrepasser" 265 "Fichier temporaire ; quitter annulera les modifications" -266 "Fichier en lecture seule ; les modifications ne sont pas ‚crites automatiquement" -267 "Journal red‚marr‚" +266 "Fichier en lecture seule ; les modifications ne sont pas écrites automatiquement" +267 "Journal redémarré" 268 "confirmer ? [ynq]" 269 "Appuyez sur n'importe quelle touche pour continuer : " 270 "Appuyez sur n'importe quelle touche pour continuer [: pour entrer plus de commandes ex] : " 271 "Appuyez sur n'importe quelle touche pour continuer [q pour Quitter]: " -272 "Cette forme de %s n‚cessite l'interface de terminal ex" -273 "Entr‚e de mode entr‚e ex." -274 "La commande a ‚chou‚, aucun fichier n'a encore ‚t‚ lu." +272 "Cette forme de %s nécessite l'interface de terminal ex" +273 "Entrée de mode entrée ex." +274 "La commande a échoué, aucun fichier n'a encore été lu." 275 "cont?" -276 "Ev‚nement impr‚vu de caractŠre" -277 "Ev‚nement impr‚vu de fin-de-fichier" -278 "Pas de correspondances pour cette requˆte" -279 "Ev‚nement impr‚vu d'interruption" -280 "Ev‚nement quitter impr‚vu" -281 "Ev‚nement impr‚vu de rafraŒchissement" -282 "La derniŠre marque de ce groupe a d‚j… ‚t‚ atteinte" -283 "La commande %s n‚cessite l'interface de terminal ex" -284 "Cette forme de %s n'est pas reconnue quand l'option d'‚dition prot‚g‚e est activ‚e" -285 "Ev‚nement impr‚vu de chaŒne" -286 "Ev‚nement impr‚vu de d‚lai imparti" -287 "Ev‚nement d'‚criture impr‚vu" -289 "Les expansions du shell ne sont pas reconnues quand l'option d'‚dition prot‚g‚e est activ‚e" -290 "La commande %s n'est pas reconnue quand l'option d'‚dition prot‚g‚e est activ‚e" -291 "D‚finition : l'option %s ne peut pas ˆtre d‚sactiv‚e" +276 "Evénement imprévu de caractère" +277 "Evénement imprévu de fin-de-fichier" +278 "Pas de correspondances pour cette requête" +279 "Evénement imprévu d'interruption" +280 "Evénement quitter imprévu" +281 "Evénement imprévu de rafraîchissement" +282 "La dernière marque de ce groupe a déjà été atteinte" +283 "La commande %s nécessite l'interface de terminal ex" +284 "Cette forme de %s n'est pas reconnue quand l'option d'édition protégée est activée" +285 "Evénement imprévu de chaîne" +286 "Evénement imprévu de délai imparti" *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Sun Aug 11 09:55:09 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4CCCB27D; Sun, 11 Aug 2013 09:55:09 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 200BF2CEC; Sun, 11 Aug 2013 09:55:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B9t80T073849; Sun, 11 Aug 2013 09:55:08 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B9t8kY073848; Sun, 11 Aug 2013 09:55:08 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308110955.r7B9t8kY073848@svn.freebsd.org> From: Peter Wemm Date: Sun, 11 Aug 2013 09:55:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254212 - vendor/nvi/2.1.1-4334a8297f X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 09:55:09 -0000 Author: peter Date: Sun Aug 11 09:55:08 2013 New Revision: 254212 URL: http://svnweb.freebsd.org/changeset/base/254212 Log: Tag import Added: vendor/nvi/2.1.1-4334a8297f/ - copied from r254211, vendor/nvi/dist/ From owner-svn-src-vendor@FreeBSD.ORG Sun Aug 11 14:28:46 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E91E78AD; Sun, 11 Aug 2013 14:28:46 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D2C82278C; Sun, 11 Aug 2013 14:28:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BESknR077358; Sun, 11 Aug 2013 14:28:46 GMT (envelope-from cy@svn.freebsd.org) Received: (from cy@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BESk7k077355; Sun, 11 Aug 2013 14:28:46 GMT (envelope-from cy@svn.freebsd.org) Message-Id: <201308111428.r7BESk7k077355@svn.freebsd.org> From: Cy Schubert Date: Sun, 11 Aug 2013 14:28:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254219 - vendor-sys/ipfilter/dist/netinet vendor/ipfilter/dist vendor/ipfilter/dist/4bsd vendor/ipfilter/dist/AIX vendor/ipfilter/dist/BSD vendor/ipfilter/dist/BSDOS vendor/ipfilter/di... X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 14:28:47 -0000 Author: cy Date: Sun Aug 11 14:28:45 2013 New Revision: 254219 URL: http://svnweb.freebsd.org/changeset/base/254219 Log: Import IP-Filter 5.1.2 into vendor branches using the existing license that the current version of IP-Filter in FreeBSD is under as per email received from Darren Reed on Mon, 08 Jul 2013 23:54:16 +1000. Approved by: glebius (Mentor), Darren Reed Deleted: vendor-sys/ipfilter/dist/netinet/QNX_OCL.txt vendor-sys/ipfilter/dist/netinet/ip_h323_pxy.c vendor-sys/ipfilter/dist/netinet/y vendor-sys/ipfilter/dist/netinet/y.pub Modified: vendor-sys/ipfilter/dist/netinet/IPFILTER.LICENCE vendor-sys/ipfilter/dist/netinet/fil.c vendor-sys/ipfilter/dist/netinet/ip_auth.c vendor-sys/ipfilter/dist/netinet/ip_auth.h vendor-sys/ipfilter/dist/netinet/ip_compat.h vendor-sys/ipfilter/dist/netinet/ip_fil.c vendor-sys/ipfilter/dist/netinet/ip_fil.h vendor-sys/ipfilter/dist/netinet/ip_fil_freebsd.c vendor-sys/ipfilter/dist/netinet/ip_frag.c vendor-sys/ipfilter/dist/netinet/ip_frag.h vendor-sys/ipfilter/dist/netinet/ip_ftp_pxy.c vendor-sys/ipfilter/dist/netinet/ip_htable.c vendor-sys/ipfilter/dist/netinet/ip_htable.h vendor-sys/ipfilter/dist/netinet/ip_ipsec_pxy.c vendor-sys/ipfilter/dist/netinet/ip_irc_pxy.c vendor-sys/ipfilter/dist/netinet/ip_log.c vendor-sys/ipfilter/dist/netinet/ip_lookup.c vendor-sys/ipfilter/dist/netinet/ip_lookup.h vendor-sys/ipfilter/dist/netinet/ip_nat.c vendor-sys/ipfilter/dist/netinet/ip_nat.h vendor-sys/ipfilter/dist/netinet/ip_netbios_pxy.c vendor-sys/ipfilter/dist/netinet/ip_pool.c vendor-sys/ipfilter/dist/netinet/ip_pool.h vendor-sys/ipfilter/dist/netinet/ip_pptp_pxy.c vendor-sys/ipfilter/dist/netinet/ip_proxy.c vendor-sys/ipfilter/dist/netinet/ip_proxy.h vendor-sys/ipfilter/dist/netinet/ip_raudio_pxy.c vendor-sys/ipfilter/dist/netinet/ip_rcmd_pxy.c vendor-sys/ipfilter/dist/netinet/ip_rpcb_pxy.c vendor-sys/ipfilter/dist/netinet/ip_rules.c vendor-sys/ipfilter/dist/netinet/ip_rules.h vendor-sys/ipfilter/dist/netinet/ip_scan.c vendor-sys/ipfilter/dist/netinet/ip_scan.h vendor-sys/ipfilter/dist/netinet/ip_state.c vendor-sys/ipfilter/dist/netinet/ip_state.h vendor-sys/ipfilter/dist/netinet/ip_sync.c vendor-sys/ipfilter/dist/netinet/ip_sync.h vendor-sys/ipfilter/dist/netinet/ipl.h vendor-sys/ipfilter/dist/netinet/mlfk_ipl.c Changes in other areas also in this revision: Added: vendor/ipfilter/dist/4bsd/ vendor/ipfilter/dist/4bsd/conf.c.diffs vendor/ipfilter/dist/4bsd/files.diffs vendor/ipfilter/dist/4bsd/files.newconf.diffs vendor/ipfilter/dist/4bsd/files.oldconf.diffs vendor/ipfilter/dist/4bsd/filez.diffs vendor/ipfilter/dist/4bsd/ip_input.c.diffs vendor/ipfilter/dist/4bsd/ip_output.c.diffs vendor/ipfilter/dist/4bsd/kinstall (contents, props changed) vendor/ipfilter/dist/AIX/ vendor/ipfilter/dist/AIX/Makefile (contents, props changed) vendor/ipfilter/dist/AIX/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/AIX/aix_cfg_ipf.c vendor/ipfilter/dist/AIX/bootbits.sh (contents, props changed) vendor/ipfilter/dist/AIX/cpurev (contents, props changed) vendor/ipfilter/dist/AIX/ipfkext.exp vendor/ipfilter/dist/AIX/ipfkext.map vendor/ipfilter/dist/BSD/upgrade (contents, props changed) vendor/ipfilter/dist/BSDOS/ vendor/ipfilter/dist/BSDOS/files.diffs vendor/ipfilter/dist/BSDOS/ioconf.c.i386.diffs vendor/ipfilter/dist/BSDOS/ip_input.c.diffs vendor/ipfilter/dist/BSDOS/ip_output.c.diffs vendor/ipfilter/dist/BSDOS/kinstall (contents, props changed) vendor/ipfilter/dist/BSDOS3/ vendor/ipfilter/dist/BSDOS3/OBJS/ vendor/ipfilter/dist/BSDOS3/OBJS/README vendor/ipfilter/dist/BSDOS3/OBJS/files vendor/ipfilter/dist/BSDOS3/OBJS/ioconf.c vendor/ipfilter/dist/BSDOS3/files.diffs vendor/ipfilter/dist/BSDOS3/in_proto.c.diffs vendor/ipfilter/dist/BSDOS3/ioconf.c.i386.diffs vendor/ipfilter/dist/BSDOS3/ip_input.c.diffs vendor/ipfilter/dist/BSDOS3/ip_output.c.diffs vendor/ipfilter/dist/BSDOS3/kinstall vendor/ipfilter/dist/BSDOS3/unkinstall vendor/ipfilter/dist/BSDOS4/ vendor/ipfilter/dist/BSDOS4/files.diffs vendor/ipfilter/dist/BSDOS4/in_proto.c.diffs vendor/ipfilter/dist/BSDOS4/ioconf.c.i386.diffs vendor/ipfilter/dist/BSDOS4/ip_input.c.diffs vendor/ipfilter/dist/BSDOS4/ip_output.c.diffs vendor/ipfilter/dist/BSDOS4/kinstall vendor/ipfilter/dist/BSDOS4/unkinstall vendor/ipfilter/dist/HPUX/ vendor/ipfilter/dist/HPUX/INSTALL.TXT vendor/ipfilter/dist/HPUX/IPF-ALL/ vendor/ipfilter/dist/HPUX/IPF-ALL/checkinstall (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/checkremove (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/description (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/postinstall (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/postremove (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/preinstall (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/preremove (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/verify (contents, props changed) vendor/ipfilter/dist/HPUX/Makefile (contents, props changed) vendor/ipfilter/dist/HPUX/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/HPUX/cpurev (contents, props changed) vendor/ipfilter/dist/HPUX/ethers.c vendor/ipfilter/dist/HPUX/installmod (contents, props changed) vendor/ipfilter/dist/HPUX/ipf.psf.dist vendor/ipfilter/dist/HPUX/ipfboot vendor/ipfilter/dist/HPUX/ipfconf vendor/ipfilter/dist/HPUX/makeargs (contents, props changed) vendor/ipfilter/dist/HPUX/master vendor/ipfilter/dist/HPUX/space.h vendor/ipfilter/dist/HPUX/system vendor/ipfilter/dist/INSTALL.Tru64 vendor/ipfilter/dist/IRIX/ vendor/ipfilter/dist/IRIX/Makefile (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.common (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.ipsend.std (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.std (contents, props changed) vendor/ipfilter/dist/IRIX/cpurev (contents, props changed) vendor/ipfilter/dist/IRIX/getkflags (contents, props changed) vendor/ipfilter/dist/IRIX/getrev (contents, props changed) vendor/ipfilter/dist/IRIX/ipfboot vendor/ipfilter/dist/IRIX/ipl vendor/ipfilter/dist/Linux/ vendor/ipfilter/dist/Linux/Makefile (contents, props changed) vendor/ipfilter/dist/Linux/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/Linux/Makefile.kbuild (contents, props changed) vendor/ipfilter/dist/Linux/Tips_SuSE91.txt vendor/ipfilter/dist/Linux/howchkconfig (contents, props changed) vendor/ipfilter/dist/Linux/initscript vendor/ipfilter/dist/Linux/ipf-linux.h vendor/ipfilter/dist/Linux/ipfilter (contents, props changed) vendor/ipfilter/dist/Linux/ipfilter-redhat (contents, props changed) vendor/ipfilter/dist/Linux/ipfilter-suse (contents, props changed) vendor/ipfilter/dist/Linux/ipfilter.spec.dist vendor/ipfilter/dist/Linux/linuxversion (contents, props changed) vendor/ipfilter/dist/Linux/minstall (contents, props changed) vendor/ipfilter/dist/Linux/mkinit (contents, props changed) vendor/ipfilter/dist/NetBSD/ vendor/ipfilter/dist/NetBSD-1.2/ vendor/ipfilter/dist/NetBSD-1.2/conf.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/files-PATCH vendor/ipfilter/dist/NetBSD-1.2/files.oldconf-PATCH vendor/ipfilter/dist/NetBSD-1.2/in_proto.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/ip_input.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/ip_output.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/kinstall (contents, props changed) vendor/ipfilter/dist/NetBSD-1.2/minstall (contents, props changed) vendor/ipfilter/dist/NetBSD/conf.c.diffs vendor/ipfilter/dist/NetBSD/conf.c.old.diffs vendor/ipfilter/dist/NetBSD/files.diffs vendor/ipfilter/dist/NetBSD/files.newconf.diffs vendor/ipfilter/dist/NetBSD/files.oldconf.diffs vendor/ipfilter/dist/NetBSD/filez.diffs vendor/ipfilter/dist/NetBSD/in_proto.c.diffs vendor/ipfilter/dist/NetBSD/in_proto.c.old.diffs vendor/ipfilter/dist/NetBSD/ip_input.c.diffs vendor/ipfilter/dist/NetBSD/ip_output.c.diffs vendor/ipfilter/dist/NetBSD/kinstall (contents, props changed) vendor/ipfilter/dist/NetBSD/minstall (contents, props changed) vendor/ipfilter/dist/NetBSD/unkinstall (contents, props changed) vendor/ipfilter/dist/NetBSD/unminstall (contents, props changed) vendor/ipfilter/dist/OSF/ vendor/ipfilter/dist/OSF/Makefile (contents, props changed) vendor/ipfilter/dist/OSF/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/OSF/cpurev (contents, props changed) vendor/ipfilter/dist/OSF/ipfboot vendor/ipfilter/dist/OSF/sysconfigtab vendor/ipfilter/dist/OpenBSD/ vendor/ipfilter/dist/OpenBSD-2/ vendor/ipfilter/dist/OpenBSD-2/2.9-IPv6.diffs vendor/ipfilter/dist/OpenBSD-2/files.diffs vendor/ipfilter/dist/OpenBSD-2/ipf-fastroute.patch-2.7 vendor/ipfilter/dist/OpenBSD-2/kinstall (contents, props changed) vendor/ipfilter/dist/OpenBSD-2/mknewipf.sh vendor/ipfilter/dist/OpenBSD-2/patch.1 vendor/ipfilter/dist/OpenBSD-2/unkinstall vendor/ipfilter/dist/OpenBSD-3/ vendor/ipfilter/dist/OpenBSD-3/3.0-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.0-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.0-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.1-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.1-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.1-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.2-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.2-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.2-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.3-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.3-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.3-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.4-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.4-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.4-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.5-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.5-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.5-sys-diffs vendor/ipfilter/dist/OpenBSD-3/README.3_0 vendor/ipfilter/dist/OpenBSD-3/README.3_1 vendor/ipfilter/dist/OpenBSD-3/README.3_2 vendor/ipfilter/dist/OpenBSD-3/README.3_3 vendor/ipfilter/dist/OpenBSD-3/README.3_4 vendor/ipfilter/dist/OpenBSD-3/README.3_5 vendor/ipfilter/dist/OpenBSD-3/fixdist-3.0 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.2 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.3 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.4 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.5 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.0 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.1 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.2 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.3 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.4 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.5 (contents, props changed) vendor/ipfilter/dist/OpenBSD/files.diffs vendor/ipfilter/dist/OpenBSD/kinstall (contents, props changed) vendor/ipfilter/dist/OpenBSD/mknewipf.sh vendor/ipfilter/dist/OpenBSD/patch.1 vendor/ipfilter/dist/OpenBSD/unkinstall vendor/ipfilter/dist/SunOS4/ vendor/ipfilter/dist/SunOS4/Makefile (contents, props changed) vendor/ipfilter/dist/SunOS4/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/SunOS4/conf.c.diff vendor/ipfilter/dist/SunOS4/files.cmn.diff vendor/ipfilter/dist/SunOS4/in_proto.c.diffs vendor/ipfilter/dist/SunOS4/kinstall (contents, props changed) vendor/ipfilter/dist/SunOS4/minstall (contents, props changed) vendor/ipfilter/dist/SunOS4/mkroutes (contents, props changed) vendor/ipfilter/dist/SunOS4/rc.ipf (contents, props changed) vendor/ipfilter/dist/SunOS4/reload (contents, props changed) vendor/ipfilter/dist/SunOS4/unkinstall (contents, props changed) vendor/ipfilter/dist/SunOS4/unminstall (contents, props changed) vendor/ipfilter/dist/SunOS5/ vendor/ipfilter/dist/SunOS5/Makefile (contents, props changed) vendor/ipfilter/dist/SunOS5/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/SunOS5/copyright vendor/ipfilter/dist/SunOS5/depend vendor/ipfilter/dist/SunOS5/ipf.conf vendor/ipfilter/dist/SunOS5/ipfboot vendor/ipfilter/dist/SunOS5/makeargs (contents, props changed) vendor/ipfilter/dist/SunOS5/mblk_misc.c vendor/ipfilter/dist/SunOS5/pkginfo vendor/ipfilter/dist/SunOS5/postinstall (contents, props changed) vendor/ipfilter/dist/SunOS5/postremove (contents, props changed) vendor/ipfilter/dist/SunOS5/preremove (contents, props changed) vendor/ipfilter/dist/SunOS5/prototype vendor/ipfilter/dist/SunOS5/prototype32 vendor/ipfilter/dist/SunOS5/prototype64 vendor/ipfilter/dist/SunOS5/prototype_amd64 vendor/ipfilter/dist/SunOS5/prototype_ia32 vendor/ipfilter/dist/SunOS5/replace (contents, props changed) vendor/ipfilter/dist/SunOS5/solinstall (contents, props changed) vendor/ipfilter/dist/SunOS5/uninstall (contents, props changed) vendor/ipfilter/dist/WhatsNew50.txt vendor/ipfilter/dist/arc4random.c vendor/ipfilter/dist/hpux.c vendor/ipfilter/dist/ip_dns_pxy.c vendor/ipfilter/dist/ip_dstlist.c vendor/ipfilter/dist/ip_dstlist.h vendor/ipfilter/dist/ip_fil_aix.c vendor/ipfilter/dist/ip_fil_compat.c vendor/ipfilter/dist/ip_fil_hpux.c vendor/ipfilter/dist/ip_fil_irix.c vendor/ipfilter/dist/ip_fil_linux.c vendor/ipfilter/dist/ip_fil_netbsd.c vendor/ipfilter/dist/ip_fil_openbsd.c vendor/ipfilter/dist/ip_fil_osf.c vendor/ipfilter/dist/ip_fil_solaris.c vendor/ipfilter/dist/ip_fil_sunos4.c vendor/ipfilter/dist/ip_nat6.c vendor/ipfilter/dist/ip_tftp_pxy.c vendor/ipfilter/dist/ipf_rb.h vendor/ipfilter/dist/lib/allocmbt.c vendor/ipfilter/dist/lib/assigndefined.c vendor/ipfilter/dist/lib/connecttcp.c vendor/ipfilter/dist/lib/dupmbt.c vendor/ipfilter/dist/lib/familyname.c vendor/ipfilter/dist/lib/findword.c vendor/ipfilter/dist/lib/freembt.c vendor/ipfilter/dist/lib/ftov.c vendor/ipfilter/dist/lib/geticmptype.c vendor/ipfilter/dist/lib/icmptypename.c vendor/ipfilter/dist/lib/icmptypes.c vendor/ipfilter/dist/lib/interror.c vendor/ipfilter/dist/lib/ipf_perror.c vendor/ipfilter/dist/lib/load_dstlist.c vendor/ipfilter/dist/lib/load_dstlistnode.c vendor/ipfilter/dist/lib/mb_hexdump.c vendor/ipfilter/dist/lib/msgdsize.c vendor/ipfilter/dist/lib/parsefields.c vendor/ipfilter/dist/lib/parseipfexpr.c vendor/ipfilter/dist/lib/parsewhoisline.c vendor/ipfilter/dist/lib/poolio.c vendor/ipfilter/dist/lib/prependmbt.c vendor/ipfilter/dist/lib/printactiveaddr.c vendor/ipfilter/dist/lib/printaddr.c vendor/ipfilter/dist/lib/printdstl_live.c vendor/ipfilter/dist/lib/printdstlist.c vendor/ipfilter/dist/lib/printdstlistdata.c vendor/ipfilter/dist/lib/printdstlistnode.c vendor/ipfilter/dist/lib/printdstlistpolicy.c vendor/ipfilter/dist/lib/printfieldhdr.c vendor/ipfilter/dist/lib/printhost.c vendor/ipfilter/dist/lib/printipfexpr.c vendor/ipfilter/dist/lib/printiphdr.c vendor/ipfilter/dist/lib/printlookup.c vendor/ipfilter/dist/lib/printnataddr.c vendor/ipfilter/dist/lib/printnatfield.c vendor/ipfilter/dist/lib/printnatside.c vendor/ipfilter/dist/lib/printpoolfield.c vendor/ipfilter/dist/lib/printstatefields.c vendor/ipfilter/dist/lib/printtcpflags.c vendor/ipfilter/dist/lib/printunit.c vendor/ipfilter/dist/lib/save_execute.c vendor/ipfilter/dist/lib/save_file.c vendor/ipfilter/dist/lib/save_nothing.c vendor/ipfilter/dist/lib/save_syslog.c vendor/ipfilter/dist/lib/save_v1trap.c vendor/ipfilter/dist/lib/save_v2trap.c vendor/ipfilter/dist/lib/vtof.c vendor/ipfilter/dist/linux.c vendor/ipfilter/dist/mln_rule.c vendor/ipfilter/dist/mlo_ipl.c vendor/ipfilter/dist/mlo_rule.c vendor/ipfilter/dist/mls_rule.c vendor/ipfilter/dist/mlso_rule.c vendor/ipfilter/dist/radix_ipf.c vendor/ipfilter/dist/sys/ vendor/ipfilter/dist/sys/tree.h vendor/ipfilter/dist/test/e4to6 vendor/ipfilter/dist/test/expected/.cvsignore vendor/ipfilter/dist/test/expected/f21 vendor/ipfilter/dist/test/expected/f22 vendor/ipfilter/dist/test/expected/f25 vendor/ipfilter/dist/test/expected/f26 vendor/ipfilter/dist/test/expected/f27 vendor/ipfilter/dist/test/expected/f28 vendor/ipfilter/dist/test/expected/f29 vendor/ipfilter/dist/test/expected/f30 vendor/ipfilter/dist/test/expected/i22 vendor/ipfilter/dist/test/expected/i23 vendor/ipfilter/dist/test/expected/in100 vendor/ipfilter/dist/test/expected/in101 vendor/ipfilter/dist/test/expected/in102 vendor/ipfilter/dist/test/expected/in7 vendor/ipfilter/dist/test/expected/ip3 vendor/ipfilter/dist/test/expected/ipv6.4 vendor/ipfilter/dist/test/expected/n100 vendor/ipfilter/dist/test/expected/n101 vendor/ipfilter/dist/test/expected/n102 vendor/ipfilter/dist/test/expected/n103 vendor/ipfilter/dist/test/expected/n104 vendor/ipfilter/dist/test/expected/n105 vendor/ipfilter/dist/test/expected/n106 vendor/ipfilter/dist/test/expected/n11_6 vendor/ipfilter/dist/test/expected/n12_6 vendor/ipfilter/dist/test/expected/n13_6 vendor/ipfilter/dist/test/expected/n14_6 vendor/ipfilter/dist/test/expected/n15 vendor/ipfilter/dist/test/expected/n15_6 vendor/ipfilter/dist/test/expected/n17 vendor/ipfilter/dist/test/expected/n18 vendor/ipfilter/dist/test/expected/n1_6 vendor/ipfilter/dist/test/expected/n200 vendor/ipfilter/dist/test/expected/n2_6 vendor/ipfilter/dist/test/expected/n4_6 vendor/ipfilter/dist/test/expected/n5_6 vendor/ipfilter/dist/test/expected/n6_6 vendor/ipfilter/dist/test/expected/n7_6 vendor/ipfilter/dist/test/expected/n8_6 vendor/ipfilter/dist/test/expected/n9_6 vendor/ipfilter/dist/test/expected/ni17 vendor/ipfilter/dist/test/expected/ni18 vendor/ipfilter/dist/test/expected/p10 vendor/ipfilter/dist/test/expected/p11 vendor/ipfilter/dist/test/expected/p12 vendor/ipfilter/dist/test/expected/p13 vendor/ipfilter/dist/test/expected/p4 vendor/ipfilter/dist/test/expected/p6 vendor/ipfilter/dist/test/expected/p7 vendor/ipfilter/dist/test/expected/p9 vendor/ipfilter/dist/test/h4to6 vendor/ipfilter/dist/test/i4to6 vendor/ipfilter/dist/test/input/f21 vendor/ipfilter/dist/test/input/f22 vendor/ipfilter/dist/test/input/f25 vendor/ipfilter/dist/test/input/f26 vendor/ipfilter/dist/test/input/f27 vendor/ipfilter/dist/test/input/f28 vendor/ipfilter/dist/test/input/f29 vendor/ipfilter/dist/test/input/f30 vendor/ipfilter/dist/test/input/ipv6.4 vendor/ipfilter/dist/test/input/n100 vendor/ipfilter/dist/test/input/n101 vendor/ipfilter/dist/test/input/n102 vendor/ipfilter/dist/test/input/n103 vendor/ipfilter/dist/test/input/n104 vendor/ipfilter/dist/test/input/n105 vendor/ipfilter/dist/test/input/n106 vendor/ipfilter/dist/test/input/n10_6 vendor/ipfilter/dist/test/input/n11_6 vendor/ipfilter/dist/test/input/n12_6 vendor/ipfilter/dist/test/input/n13_6 vendor/ipfilter/dist/test/input/n14_6 vendor/ipfilter/dist/test/input/n15 vendor/ipfilter/dist/test/input/n15_6 vendor/ipfilter/dist/test/input/n17 vendor/ipfilter/dist/test/input/n17_6 vendor/ipfilter/dist/test/input/n18 vendor/ipfilter/dist/test/input/n1_6 vendor/ipfilter/dist/test/input/n200 vendor/ipfilter/dist/test/input/n2_6 vendor/ipfilter/dist/test/input/n4_6 vendor/ipfilter/dist/test/input/n5_6 vendor/ipfilter/dist/test/input/n6_6 vendor/ipfilter/dist/test/input/n7_6 vendor/ipfilter/dist/test/input/n8_6 vendor/ipfilter/dist/test/input/n9_6 vendor/ipfilter/dist/test/input/ni18 vendor/ipfilter/dist/test/input/p10 vendor/ipfilter/dist/test/input/p11 vendor/ipfilter/dist/test/input/p12 vendor/ipfilter/dist/test/input/p13 vendor/ipfilter/dist/test/input/p4 vendor/ipfilter/dist/test/input/p6 vendor/ipfilter/dist/test/input/p7 vendor/ipfilter/dist/test/input/p9 vendor/ipfilter/dist/test/ipflib.sh vendor/ipfilter/dist/test/regress/f21 vendor/ipfilter/dist/test/regress/f22 vendor/ipfilter/dist/test/regress/f25 vendor/ipfilter/dist/test/regress/f26 vendor/ipfilter/dist/test/regress/f27 vendor/ipfilter/dist/test/regress/f28.ipf vendor/ipfilter/dist/test/regress/f28.pool vendor/ipfilter/dist/test/regress/f29.ipf vendor/ipfilter/dist/test/regress/f29.pool vendor/ipfilter/dist/test/regress/f30 vendor/ipfilter/dist/test/regress/i22 vendor/ipfilter/dist/test/regress/i23 vendor/ipfilter/dist/test/regress/in100 vendor/ipfilter/dist/test/regress/in101 vendor/ipfilter/dist/test/regress/in102 vendor/ipfilter/dist/test/regress/in7 vendor/ipfilter/dist/test/regress/ip3 vendor/ipfilter/dist/test/regress/ipv6.4 vendor/ipfilter/dist/test/regress/n100 vendor/ipfilter/dist/test/regress/n101 vendor/ipfilter/dist/test/regress/n102 vendor/ipfilter/dist/test/regress/n103 vendor/ipfilter/dist/test/regress/n104 vendor/ipfilter/dist/test/regress/n105 vendor/ipfilter/dist/test/regress/n106 vendor/ipfilter/dist/test/regress/n10_6 vendor/ipfilter/dist/test/regress/n11_6 vendor/ipfilter/dist/test/regress/n12_6 vendor/ipfilter/dist/test/regress/n13_6 vendor/ipfilter/dist/test/regress/n14_6 vendor/ipfilter/dist/test/regress/n15 vendor/ipfilter/dist/test/regress/n15_6 vendor/ipfilter/dist/test/regress/n16_6 vendor/ipfilter/dist/test/regress/n17 vendor/ipfilter/dist/test/regress/n17_6 vendor/ipfilter/dist/test/regress/n18 vendor/ipfilter/dist/test/regress/n1_6 vendor/ipfilter/dist/test/regress/n200 vendor/ipfilter/dist/test/regress/n2_6 vendor/ipfilter/dist/test/regress/n4_6 vendor/ipfilter/dist/test/regress/n5_6 vendor/ipfilter/dist/test/regress/n6_6 vendor/ipfilter/dist/test/regress/n7_6 vendor/ipfilter/dist/test/regress/n8_6 vendor/ipfilter/dist/test/regress/n9_6 vendor/ipfilter/dist/test/regress/ni17.ipf vendor/ipfilter/dist/test/regress/ni18.ipf vendor/ipfilter/dist/test/regress/ni18.nat vendor/ipfilter/dist/test/regress/p10.nat vendor/ipfilter/dist/test/regress/p10.pool vendor/ipfilter/dist/test/regress/p11.nat vendor/ipfilter/dist/test/regress/p11.pool vendor/ipfilter/dist/test/regress/p12.nat vendor/ipfilter/dist/test/regress/p12.pool vendor/ipfilter/dist/test/regress/p13.ipf vendor/ipfilter/dist/test/regress/p13.pool vendor/ipfilter/dist/test/regress/p4.nat vendor/ipfilter/dist/test/regress/p4.pool vendor/ipfilter/dist/test/regress/p6.ipf vendor/ipfilter/dist/test/regress/p6.pool vendor/ipfilter/dist/test/regress/p6.whois vendor/ipfilter/dist/test/regress/p7.nat vendor/ipfilter/dist/test/regress/p7.pool vendor/ipfilter/dist/test/regress/p9.nat vendor/ipfilter/dist/test/regress/p9.pool vendor/ipfilter/dist/tools/ipfsyncd.c vendor/ipfilter/dist/tru64.c Deleted: vendor/ipfilter/dist/BSD/.cvsignore vendor/ipfilter/dist/FWTK/FWTK.sed vendor/ipfilter/dist/FWTK/fwtk-2.1-transparency.txt vendor/ipfilter/dist/FWTK/tproxy.diff vendor/ipfilter/dist/FreeBSD-4.0/ipv6-patch vendor/ipfilter/dist/QNX_OCL.txt vendor/ipfilter/dist/UPGRADE_NOTICE vendor/ipfilter/dist/bpf-ipf.h vendor/ipfilter/dist/bpf.h vendor/ipfilter/dist/bpf_filter.c vendor/ipfilter/dist/buildlinux vendor/ipfilter/dist/common.c vendor/ipfilter/dist/etc/etc.sed vendor/ipfilter/dist/facpri.c vendor/ipfilter/dist/facpri.h vendor/ipfilter/dist/fils.c vendor/ipfilter/dist/inet_addr.c vendor/ipfilter/dist/ip_h323_pxy.c vendor/ipfilter/dist/ip_lfil.c vendor/ipfilter/dist/ip_msnrpc_pxy.c vendor/ipfilter/dist/ip_sfil.c vendor/ipfilter/dist/ipf.c vendor/ipfilter/dist/ipfs.c vendor/ipfilter/dist/ipft_ef.c vendor/ipfilter/dist/ipft_hx.c vendor/ipfilter/dist/ipft_pc.c vendor/ipfilter/dist/ipft_sn.c vendor/ipfilter/dist/ipft_td.c vendor/ipfilter/dist/ipft_tx.c vendor/ipfilter/dist/ipl_ldev.c vendor/ipfilter/dist/iplang/.cvsignore vendor/ipfilter/dist/ipmon.c vendor/ipfilter/dist/ipnat.c vendor/ipfilter/dist/ipsd/ip_compat.h vendor/ipfilter/dist/ipsd/ipsd.sed vendor/ipfilter/dist/ipsend/.cvsignore vendor/ipfilter/dist/ipsend/README vendor/ipfilter/dist/ipsend/hpux.c vendor/ipfilter/dist/ipsend/in_var.h vendor/ipfilter/dist/ipsend/ip_compat.h vendor/ipfilter/dist/ipsend/ip_var.h vendor/ipfilter/dist/ipsend/ipsend.sed vendor/ipfilter/dist/ipsend/tcpip.h vendor/ipfilter/dist/ipsend/ultrix.c vendor/ipfilter/dist/ipt.c vendor/ipfilter/dist/kmem.c vendor/ipfilter/dist/lib/addkeep.c vendor/ipfilter/dist/lib/extras.c vendor/ipfilter/dist/lib/getline.c vendor/ipfilter/dist/lib/hexdump.c vendor/ipfilter/dist/lib/hostmask.c vendor/ipfilter/dist/lib/hostnum.c vendor/ipfilter/dist/lib/inet_addr.c vendor/ipfilter/dist/lib/ipft_ef.c vendor/ipfilter/dist/lib/ipft_sn.c vendor/ipfilter/dist/lib/ipft_td.c vendor/ipfilter/dist/lib/loglevel.c vendor/ipfilter/dist/lib/make_range.c vendor/ipfilter/dist/lib/natparse.c vendor/ipfilter/dist/lib/parse.c vendor/ipfilter/dist/lib/portnum.c vendor/ipfilter/dist/lib/ports.c vendor/ipfilter/dist/lib/ratoi.c vendor/ipfilter/dist/lib/ratoui.c vendor/ipfilter/dist/lib/tcp_flags.c vendor/ipfilter/dist/lib/to_interface.c vendor/ipfilter/dist/man/ipf.1 vendor/ipfilter/dist/man/ipnat.1 vendor/ipfilter/dist/man/man.sed vendor/ipfilter/dist/misc.c vendor/ipfilter/dist/natparse.c vendor/ipfilter/dist/net/.cvsignore vendor/ipfilter/dist/opt.c vendor/ipfilter/dist/opt_inet6.h vendor/ipfilter/dist/parse.c vendor/ipfilter/dist/pcap.h vendor/ipfilter/dist/printnat.c vendor/ipfilter/dist/printstate.c vendor/ipfilter/dist/radix.c vendor/ipfilter/dist/relay.c vendor/ipfilter/dist/rules/.cvsignore vendor/ipfilter/dist/rules/rules.sed vendor/ipfilter/dist/samples/.cvsignore vendor/ipfilter/dist/test/expected/1 vendor/ipfilter/dist/test/expected/10 vendor/ipfilter/dist/test/expected/11 vendor/ipfilter/dist/test/expected/12 vendor/ipfilter/dist/test/expected/14 vendor/ipfilter/dist/test/expected/2 vendor/ipfilter/dist/test/expected/3 vendor/ipfilter/dist/test/expected/4 vendor/ipfilter/dist/test/expected/5 vendor/ipfilter/dist/test/expected/6 vendor/ipfilter/dist/test/expected/7 vendor/ipfilter/dist/test/expected/8 vendor/ipfilter/dist/test/expected/9 vendor/ipfilter/dist/test/expected/expected.sed vendor/ipfilter/dist/test/expected/i19 vendor/ipfilter/dist/test/hextest vendor/ipfilter/dist/test/input/1 vendor/ipfilter/dist/test/input/10 vendor/ipfilter/dist/test/input/11 vendor/ipfilter/dist/test/input/12 vendor/ipfilter/dist/test/input/13 vendor/ipfilter/dist/test/input/14 vendor/ipfilter/dist/test/input/2 vendor/ipfilter/dist/test/input/3 vendor/ipfilter/dist/test/input/4 vendor/ipfilter/dist/test/input/5 vendor/ipfilter/dist/test/input/6 vendor/ipfilter/dist/test/input/7 vendor/ipfilter/dist/test/input/8 vendor/ipfilter/dist/test/input/9 vendor/ipfilter/dist/test/input/input.sed vendor/ipfilter/dist/test/input/ipf6-1 vendor/ipfilter/dist/test/mhtest vendor/ipfilter/dist/test/regress/1 vendor/ipfilter/dist/test/regress/10 vendor/ipfilter/dist/test/regress/11 vendor/ipfilter/dist/test/regress/12 vendor/ipfilter/dist/test/regress/13 vendor/ipfilter/dist/test/regress/14 vendor/ipfilter/dist/test/regress/2 vendor/ipfilter/dist/test/regress/3 vendor/ipfilter/dist/test/regress/4 vendor/ipfilter/dist/test/regress/5 vendor/ipfilter/dist/test/regress/6 vendor/ipfilter/dist/test/regress/7 vendor/ipfilter/dist/test/regress/8 vendor/ipfilter/dist/test/regress/9 vendor/ipfilter/dist/test/regress/ipf6-1 vendor/ipfilter/dist/test/regress/regress.sed vendor/ipfilter/dist/test/test.sed Modified: vendor/ipfilter/dist/.cvsignore vendor/ipfilter/dist/BNF vendor/ipfilter/dist/BSD/Makefile vendor/ipfilter/dist/BSD/Makefile.ipsend vendor/ipfilter/dist/BSD/ipfadm-rcd vendor/ipfilter/dist/BSD/kupgrade vendor/ipfilter/dist/FAQ.FreeBSD vendor/ipfilter/dist/FWTK/ftp-gw.diff vendor/ipfilter/dist/FWTK/fwtk_transparent.diff vendor/ipfilter/dist/FreeBSD-2.2/kinstall vendor/ipfilter/dist/FreeBSD-3/INST.FreeBSD-3 vendor/ipfilter/dist/FreeBSD-3/kinstall vendor/ipfilter/dist/FreeBSD-4.0/INST.FreeBSD-4 vendor/ipfilter/dist/FreeBSD-4.0/kinstall vendor/ipfilter/dist/FreeBSD/kinstall vendor/ipfilter/dist/HISTORY vendor/ipfilter/dist/INSTALL.FreeBSD vendor/ipfilter/dist/INSTALL.IRIX vendor/ipfilter/dist/INSTALL.Linux vendor/ipfilter/dist/INSTALL.Sol2 vendor/ipfilter/dist/Makefile vendor/ipfilter/dist/NAT.FreeBSD vendor/ipfilter/dist/buildsunos vendor/ipfilter/dist/etc/protocols vendor/ipfilter/dist/etc/services vendor/ipfilter/dist/fil.c vendor/ipfilter/dist/ip_auth.c vendor/ipfilter/dist/ip_auth.h vendor/ipfilter/dist/ip_compat.h vendor/ipfilter/dist/ip_fil.c vendor/ipfilter/dist/ip_fil.h vendor/ipfilter/dist/ip_fil_freebsd.c vendor/ipfilter/dist/ip_frag.c vendor/ipfilter/dist/ip_frag.h vendor/ipfilter/dist/ip_ftp_pxy.c vendor/ipfilter/dist/ip_htable.c vendor/ipfilter/dist/ip_htable.h vendor/ipfilter/dist/ip_ipsec_pxy.c vendor/ipfilter/dist/ip_irc_pxy.c vendor/ipfilter/dist/ip_log.c vendor/ipfilter/dist/ip_lookup.c vendor/ipfilter/dist/ip_lookup.h vendor/ipfilter/dist/ip_nat.c vendor/ipfilter/dist/ip_nat.h vendor/ipfilter/dist/ip_netbios_pxy.c vendor/ipfilter/dist/ip_pool.c vendor/ipfilter/dist/ip_pool.h vendor/ipfilter/dist/ip_pptp_pxy.c vendor/ipfilter/dist/ip_proxy.c vendor/ipfilter/dist/ip_proxy.h vendor/ipfilter/dist/ip_raudio_pxy.c vendor/ipfilter/dist/ip_rcmd_pxy.c vendor/ipfilter/dist/ip_rpcb_pxy.c vendor/ipfilter/dist/ip_scan.c vendor/ipfilter/dist/ip_scan.h vendor/ipfilter/dist/ip_state.c vendor/ipfilter/dist/ip_state.h vendor/ipfilter/dist/ip_sync.c vendor/ipfilter/dist/ip_sync.h vendor/ipfilter/dist/ipf.h vendor/ipfilter/dist/ipl.h vendor/ipfilter/dist/iplang/Makefile vendor/ipfilter/dist/iplang/iplang.h vendor/ipfilter/dist/iplang/iplang.tst vendor/ipfilter/dist/iplang/iplang_l.l vendor/ipfilter/dist/iplang/iplang_y.y vendor/ipfilter/dist/ipmon.h vendor/ipfilter/dist/ipsd/Makefile vendor/ipfilter/dist/ipsd/ipsd.c vendor/ipfilter/dist/ipsd/ipsdr.c vendor/ipfilter/dist/ipsd/linux.h vendor/ipfilter/dist/ipsd/sbpf.c vendor/ipfilter/dist/ipsd/sdlpi.c vendor/ipfilter/dist/ipsd/slinux.c vendor/ipfilter/dist/ipsd/snit.c vendor/ipfilter/dist/ipsend/44arp.c vendor/ipfilter/dist/ipsend/Makefile vendor/ipfilter/dist/ipsend/arp.c vendor/ipfilter/dist/ipsend/dlcommon.c vendor/ipfilter/dist/ipsend/ip.c vendor/ipfilter/dist/ipsend/ipresend.c vendor/ipfilter/dist/ipsend/ipsend.5 vendor/ipfilter/dist/ipsend/ipsend.c vendor/ipfilter/dist/ipsend/ipsend.h vendor/ipfilter/dist/ipsend/ipsopt.c vendor/ipfilter/dist/ipsend/iptest.c vendor/ipfilter/dist/ipsend/iptests.c vendor/ipfilter/dist/ipsend/larp.c vendor/ipfilter/dist/ipsend/linux.h vendor/ipfilter/dist/ipsend/lsock.c vendor/ipfilter/dist/ipsend/resend.c vendor/ipfilter/dist/ipsend/sbpf.c vendor/ipfilter/dist/ipsend/sdlpi.c vendor/ipfilter/dist/ipsend/sirix.c vendor/ipfilter/dist/ipsend/slinux.c vendor/ipfilter/dist/ipsend/snit.c vendor/ipfilter/dist/ipsend/sock.c vendor/ipfilter/dist/ipt.h vendor/ipfilter/dist/kmem.h vendor/ipfilter/dist/l4check/Makefile vendor/ipfilter/dist/l4check/l4check.c vendor/ipfilter/dist/lib/Makefile vendor/ipfilter/dist/lib/addicmp.c vendor/ipfilter/dist/lib/addipopt.c vendor/ipfilter/dist/lib/alist_free.c vendor/ipfilter/dist/lib/alist_new.c vendor/ipfilter/dist/lib/bcopywrap.c vendor/ipfilter/dist/lib/binprint.c vendor/ipfilter/dist/lib/buildopts.c vendor/ipfilter/dist/lib/checkrev.c vendor/ipfilter/dist/lib/count4bits.c vendor/ipfilter/dist/lib/count6bits.c vendor/ipfilter/dist/lib/debug.c vendor/ipfilter/dist/lib/facpri.c vendor/ipfilter/dist/lib/facpri.h vendor/ipfilter/dist/lib/fill6bits.c vendor/ipfilter/dist/lib/flags.c vendor/ipfilter/dist/lib/genmask.c vendor/ipfilter/dist/lib/gethost.c vendor/ipfilter/dist/lib/getifname.c vendor/ipfilter/dist/lib/getnattype.c vendor/ipfilter/dist/lib/getport.c vendor/ipfilter/dist/lib/getportproto.c vendor/ipfilter/dist/lib/getproto.c vendor/ipfilter/dist/lib/getsumd.c vendor/ipfilter/dist/lib/hostname.c vendor/ipfilter/dist/lib/icmpcode.c vendor/ipfilter/dist/lib/initparse.c vendor/ipfilter/dist/lib/ionames.c vendor/ipfilter/dist/lib/ipf_dotuning.c vendor/ipfilter/dist/lib/ipft_hx.c vendor/ipfilter/dist/lib/ipft_pc.c vendor/ipfilter/dist/lib/ipft_tx.c vendor/ipfilter/dist/lib/ipoptsec.c vendor/ipfilter/dist/lib/kmem.c vendor/ipfilter/dist/lib/kmem.h vendor/ipfilter/dist/lib/kmemcpywrap.c vendor/ipfilter/dist/lib/kvatoname.c vendor/ipfilter/dist/lib/load_file.c vendor/ipfilter/dist/lib/load_hash.c vendor/ipfilter/dist/lib/load_hashnode.c vendor/ipfilter/dist/lib/load_http.c vendor/ipfilter/dist/lib/load_pool.c vendor/ipfilter/dist/lib/load_poolnode.c vendor/ipfilter/dist/lib/load_url.c vendor/ipfilter/dist/lib/mutex_emul.c vendor/ipfilter/dist/lib/nametokva.c vendor/ipfilter/dist/lib/nat_setgroupmap.c vendor/ipfilter/dist/lib/ntomask.c vendor/ipfilter/dist/lib/optname.c vendor/ipfilter/dist/lib/optprint.c vendor/ipfilter/dist/lib/optprintv6.c vendor/ipfilter/dist/lib/optvalue.c vendor/ipfilter/dist/lib/portname.c vendor/ipfilter/dist/lib/print_toif.c vendor/ipfilter/dist/lib/printactivenat.c vendor/ipfilter/dist/lib/printaps.c vendor/ipfilter/dist/lib/printbuf.c vendor/ipfilter/dist/lib/printfr.c vendor/ipfilter/dist/lib/printfraginfo.c vendor/ipfilter/dist/lib/printhash.c vendor/ipfilter/dist/lib/printhash_live.c vendor/ipfilter/dist/lib/printhashdata.c vendor/ipfilter/dist/lib/printhashnode.c vendor/ipfilter/dist/lib/printhostmap.c vendor/ipfilter/dist/lib/printhostmask.c vendor/ipfilter/dist/lib/printifname.c vendor/ipfilter/dist/lib/printip.c vendor/ipfilter/dist/lib/printlog.c vendor/ipfilter/dist/lib/printmask.c vendor/ipfilter/dist/lib/printnat.c vendor/ipfilter/dist/lib/printpacket.c vendor/ipfilter/dist/lib/printpacket6.c vendor/ipfilter/dist/lib/printpool.c vendor/ipfilter/dist/lib/printpool_live.c vendor/ipfilter/dist/lib/printpooldata.c vendor/ipfilter/dist/lib/printpoolnode.c vendor/ipfilter/dist/lib/printportcmp.c vendor/ipfilter/dist/lib/printproto.c vendor/ipfilter/dist/lib/printsbuf.c vendor/ipfilter/dist/lib/printstate.c vendor/ipfilter/dist/lib/printtqtable.c vendor/ipfilter/dist/lib/printtunable.c vendor/ipfilter/dist/lib/remove_hash.c vendor/ipfilter/dist/lib/remove_hashnode.c vendor/ipfilter/dist/lib/remove_pool.c vendor/ipfilter/dist/lib/remove_poolnode.c vendor/ipfilter/dist/lib/resetlexer.c vendor/ipfilter/dist/lib/rwlock_emul.c vendor/ipfilter/dist/lib/tcpflags.c vendor/ipfilter/dist/lib/tcpoptnames.c vendor/ipfilter/dist/lib/v6ionames.c vendor/ipfilter/dist/lib/v6optvalue.c vendor/ipfilter/dist/lib/var.c vendor/ipfilter/dist/lib/verbose.c vendor/ipfilter/dist/linux.h vendor/ipfilter/dist/man/Makefile vendor/ipfilter/dist/man/ipf.4 vendor/ipfilter/dist/man/ipf.5 vendor/ipfilter/dist/man/ipfilter.4 vendor/ipfilter/dist/man/ipfilter.4.mandoc vendor/ipfilter/dist/man/ipfstat.8 vendor/ipfilter/dist/man/ipftest.1 vendor/ipfilter/dist/man/ipmon.5 vendor/ipfilter/dist/man/ipmon.8 vendor/ipfilter/dist/man/ipnat.4 vendor/ipfilter/dist/man/ipnat.5 vendor/ipfilter/dist/man/ipnat.8 vendor/ipfilter/dist/man/ippool.5 vendor/ipfilter/dist/man/ippool.8 vendor/ipfilter/dist/md5.c vendor/ipfilter/dist/mkfilters vendor/ipfilter/dist/ml_ipl.c vendor/ipfilter/dist/mlf_ipl.c vendor/ipfilter/dist/mlf_rule.c vendor/ipfilter/dist/mlfk_ipl.c vendor/ipfilter/dist/mlfk_rule.c vendor/ipfilter/dist/mlh_rule.c vendor/ipfilter/dist/mli_ipl.c vendor/ipfilter/dist/mln_ipl.c vendor/ipfilter/dist/mls_ipl.c vendor/ipfilter/dist/opts.h vendor/ipfilter/dist/pcap-ipf.h vendor/ipfilter/dist/perl/Ipfanaly.pl vendor/ipfilter/dist/perl/Isbgraph vendor/ipfilter/dist/perl/Services vendor/ipfilter/dist/perl/ipfmeta.pl vendor/ipfilter/dist/perl/logfilter.pl vendor/ipfilter/dist/radix_ipf.h vendor/ipfilter/dist/rules/BASIC_1.FW vendor/ipfilter/dist/rules/BASIC_2.FW vendor/ipfilter/dist/rules/firewall vendor/ipfilter/dist/rules/ipmon.conf vendor/ipfilter/dist/rules/server vendor/ipfilter/dist/samples/proxy.c vendor/ipfilter/dist/samples/relay.c vendor/ipfilter/dist/snoop.h vendor/ipfilter/dist/solaris.c vendor/ipfilter/dist/test/.cvsignore vendor/ipfilter/dist/test/Makefile vendor/ipfilter/dist/test/bpftest vendor/ipfilter/dist/test/dotest vendor/ipfilter/dist/test/expected/f11 vendor/ipfilter/dist/test/expected/f13 vendor/ipfilter/dist/test/expected/f18 vendor/ipfilter/dist/test/expected/i1 vendor/ipfilter/dist/test/expected/i10 vendor/ipfilter/dist/test/expected/i11 vendor/ipfilter/dist/test/expected/i12 vendor/ipfilter/dist/test/expected/i14 vendor/ipfilter/dist/test/expected/i17 vendor/ipfilter/dist/test/expected/i18 vendor/ipfilter/dist/test/expected/i2 vendor/ipfilter/dist/test/expected/i20 vendor/ipfilter/dist/test/expected/i3 vendor/ipfilter/dist/test/expected/i4 vendor/ipfilter/dist/test/expected/i5 vendor/ipfilter/dist/test/expected/i6 vendor/ipfilter/dist/test/expected/i7 vendor/ipfilter/dist/test/expected/i8 vendor/ipfilter/dist/test/expected/i9 vendor/ipfilter/dist/test/expected/in1 vendor/ipfilter/dist/test/expected/in2 vendor/ipfilter/dist/test/expected/in3 vendor/ipfilter/dist/test/expected/in5 vendor/ipfilter/dist/test/expected/in6 vendor/ipfilter/dist/test/expected/ip1 vendor/ipfilter/dist/test/expected/ip2 vendor/ipfilter/dist/test/expected/ipv6.6 vendor/ipfilter/dist/test/expected/l1 vendor/ipfilter/dist/test/expected/l1.b vendor/ipfilter/dist/test/expected/n1 vendor/ipfilter/dist/test/expected/n10 vendor/ipfilter/dist/test/expected/n11 vendor/ipfilter/dist/test/expected/n12 vendor/ipfilter/dist/test/expected/n13 vendor/ipfilter/dist/test/expected/n14 vendor/ipfilter/dist/test/expected/n16 vendor/ipfilter/dist/test/expected/n2 vendor/ipfilter/dist/test/expected/n3 vendor/ipfilter/dist/test/expected/n4 vendor/ipfilter/dist/test/expected/n5 vendor/ipfilter/dist/test/expected/n6 vendor/ipfilter/dist/test/expected/n7 vendor/ipfilter/dist/test/expected/n8 vendor/ipfilter/dist/test/expected/n9 vendor/ipfilter/dist/test/expected/ni10 vendor/ipfilter/dist/test/expected/ni11 vendor/ipfilter/dist/test/expected/ni12 vendor/ipfilter/dist/test/expected/ni19 vendor/ipfilter/dist/test/expected/ni2 vendor/ipfilter/dist/test/expected/ni20 vendor/ipfilter/dist/test/expected/ni21 vendor/ipfilter/dist/test/expected/ni23 vendor/ipfilter/dist/test/expected/ni4 vendor/ipfilter/dist/test/expected/ni5 vendor/ipfilter/dist/test/expected/ni6 vendor/ipfilter/dist/test/expected/ni8 vendor/ipfilter/dist/test/expected/p1 vendor/ipfilter/dist/test/expected/p2 vendor/ipfilter/dist/test/expected/p3 vendor/ipfilter/dist/test/expected/p5 vendor/ipfilter/dist/test/input/f13 vendor/ipfilter/dist/test/input/f24 vendor/ipfilter/dist/test/input/ipv6.1 vendor/ipfilter/dist/test/input/ipv6.3 vendor/ipfilter/dist/test/input/ipv6.6 vendor/ipfilter/dist/test/input/n10 vendor/ipfilter/dist/test/input/n12 vendor/ipfilter/dist/test/input/n16 vendor/ipfilter/dist/test/input/n8 vendor/ipfilter/dist/test/input/n9 vendor/ipfilter/dist/test/input/ni1 vendor/ipfilter/dist/test/input/ni10 vendor/ipfilter/dist/test/input/ni11 vendor/ipfilter/dist/test/input/ni12 vendor/ipfilter/dist/test/input/ni13 vendor/ipfilter/dist/test/input/ni14 vendor/ipfilter/dist/test/input/ni15 vendor/ipfilter/dist/test/input/ni16 vendor/ipfilter/dist/test/input/ni19 vendor/ipfilter/dist/test/input/ni2 vendor/ipfilter/dist/test/input/ni20 vendor/ipfilter/dist/test/input/ni3 vendor/ipfilter/dist/test/input/ni4 vendor/ipfilter/dist/test/input/ni5 vendor/ipfilter/dist/test/input/ni7 vendor/ipfilter/dist/test/input/ni8 vendor/ipfilter/dist/test/input/ni9 vendor/ipfilter/dist/test/intest vendor/ipfilter/dist/test/iptest vendor/ipfilter/dist/test/itest vendor/ipfilter/dist/test/logtest vendor/ipfilter/dist/test/mtest vendor/ipfilter/dist/test/natipftest vendor/ipfilter/dist/test/nattest vendor/ipfilter/dist/test/ptest vendor/ipfilter/dist/test/regress/f13 vendor/ipfilter/dist/test/regress/i11 vendor/ipfilter/dist/test/regress/i12 vendor/ipfilter/dist/test/regress/i14 vendor/ipfilter/dist/test/regress/i17 vendor/ipfilter/dist/test/regress/i18 vendor/ipfilter/dist/test/regress/i2 vendor/ipfilter/dist/test/regress/i21 vendor/ipfilter/dist/test/regress/i7 vendor/ipfilter/dist/test/regress/i8 vendor/ipfilter/dist/test/regress/in2 vendor/ipfilter/dist/test/regress/ipv6.5 vendor/ipfilter/dist/test/regress/ipv6.6 vendor/ipfilter/dist/test/regress/n12 vendor/ipfilter/dist/test/regress/n2 vendor/ipfilter/dist/test/regress/n5 vendor/ipfilter/dist/test/regress/ni1.nat vendor/ipfilter/dist/test/regress/ni13.nat vendor/ipfilter/dist/test/regress/ni14.nat vendor/ipfilter/dist/test/regress/ni2.nat vendor/ipfilter/dist/test/regress/ni4.nat vendor/ipfilter/dist/test/regress/p1.pool vendor/ipfilter/dist/test/regress/p3.ipf vendor/ipfilter/dist/test/test.format vendor/ipfilter/dist/test/vfycksum.pl vendor/ipfilter/dist/todo vendor/ipfilter/dist/tools/BNF.ipf vendor/ipfilter/dist/tools/Makefile vendor/ipfilter/dist/tools/ipf.c vendor/ipfilter/dist/tools/ipf_y.y vendor/ipfilter/dist/tools/ipfcomp.c vendor/ipfilter/dist/tools/ipfs.c vendor/ipfilter/dist/tools/ipfstat.c vendor/ipfilter/dist/tools/ipftest.c vendor/ipfilter/dist/tools/ipmon.c vendor/ipfilter/dist/tools/ipmon_y.y vendor/ipfilter/dist/tools/ipnat.c vendor/ipfilter/dist/tools/ipnat_y.y vendor/ipfilter/dist/tools/ippool.c vendor/ipfilter/dist/tools/ippool_y.y vendor/ipfilter/dist/tools/ipscan_y.y vendor/ipfilter/dist/tools/ipsyncm.c vendor/ipfilter/dist/tools/ipsyncs.c vendor/ipfilter/dist/tools/lex_var.h vendor/ipfilter/dist/tools/lexer.c vendor/ipfilter/dist/tools/lexer.h Modified: vendor-sys/ipfilter/dist/netinet/IPFILTER.LICENCE ============================================================================== --- vendor-sys/ipfilter/dist/netinet/IPFILTER.LICENCE Sun Aug 11 14:15:01 2013 (r254218) +++ vendor-sys/ipfilter/dist/netinet/IPFILTER.LICENCE Sun Aug 11 14:28:45 2013 (r254219) @@ -1,29 +1,340 @@ -/* - * Copyright (C) 1993-2001 by Darren Reed. - * - * The author accepts no responsibility for the use of this software and - * provides it on an ``as is'' basis without express or implied warranty. - * - * Redistribution and use, with or without modification, in source and binary - * forms, are permitted provided that this notice is preserved in its entirety - * and due credit is given to the original author and the contributors. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied, in part or in whole, and put under another distribution licence - * [including the GNU Public Licence.] - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * I hate legalese, don't you ? - */ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. Modified: vendor-sys/ipfilter/dist/netinet/fil.c ============================================================================== --- vendor-sys/ipfilter/dist/netinet/fil.c Sun Aug 11 14:15:01 2013 (r254218) +++ vendor-sys/ipfilter/dist/netinet/fil.c Sun Aug 11 14:28:45 2013 (r254219) @@ -1,7 +1,12 @@ /* - * Copyright (C) 1993-2003 by Darren Reed. + * Copyright (C) 2012 by Darren Reed. * * See the IPFILTER.LICENCE file for details on licencing. + * + * Copyright 2008 Sun Microsystems. + * + * $Id$ + * */ #if defined(KERNEL) || defined(_KERNEL) # undef KERNEL @@ -13,15 +18,6 @@ #include #include #include -#if defined(__NetBSD__) -# if (NetBSD >= 199905) && !defined(IPFILTER_LKM) && defined(_KERNEL) -# if (__NetBSD_Version__ < 399001400) -# include "opt_ipfilter_log.h" -# else -# include "opt_ipfilter.h" -# endif -# endif -#endif #if defined(_KERNEL) && defined(__FreeBSD_version) && \ (__FreeBSD_version >= 220000) # if (__FreeBSD_version >= 400000) @@ -80,23 +76,9 @@ struct file; #ifdef sun # include #endif -#if !defined(_KERNEL) && (defined(__FreeBSD__) || defined(SOLARIS2)) -# if (__FreeBSD_version >= 504000) -# undef _RADIX_H_ -# endif -# include "radix_ipf.h" -#endif -#ifdef __osf__ -# include "radix_ipf.h" -#else -# include -#endif #include #include #include -#if !defined(linux) -# include -#endif #if defined(__sgi) && defined(IFF_DRVRLOCK) /* IRIX 6 */ # include # include @@ -119,7 +101,6 @@ struct file; # include # endif #endif -#include #include "netinet/ip_fil.h" #include "netinet/ip_nat.h" #include "netinet/ip_frag.h" @@ -129,9 +110,8 @@ struct file; #ifdef IPFILTER_SCAN # include "netinet/ip_scan.h" #endif -#ifdef IPFILTER_SYNC -# include "netinet/ip_sync.h" -#endif +#include "netinet/ip_sync.h" +#include "netinet/ip_lookup.h" #include "netinet/ip_pool.h" #include "netinet/ip_htable.h" #ifdef IPFILTER_COMPILED @@ -142,116 +122,101 @@ struct file; #endif #if defined(__FreeBSD_version) && (__FreeBSD_version >= 300000) # include -# if defined(_KERNEL) && !defined(IPFILTER_LKM) -# include "opt_ipfilter.h" -# endif #endif #include "netinet/ipl.h" + +#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104230000) +# include +extern struct callout ipf_slowtimer_ch; +#endif +#if defined(__OpenBSD__) +# include +extern struct timeout ipf_slowtimer_ch; +#endif /* END OF INCLUDES */ #if !defined(lint) static const char sccsid[] = "@(#)fil.c 1.36 6/5/96 (C) 1993-2000 Darren Reed"; -static const char rcsid[] = "@(#)$Id: fil.c,v 2.243.2.125 2007/10/10 09:27:20 darrenr Exp $"; +static const char rcsid[] = "@(#)$Id$"; #endif #ifndef _KERNEL # include "ipf.h" # include "ipt.h" -# include "bpf-ipf.h" extern int opts; +extern int blockreason; #endif /* _KERNEL */ +#define LBUMP(x) softc->x++ +#define LBUMPD(x, y) do { softc->x.y++; DT(y); } while (0) -fr_info_t frcache[2][8]; -struct filterstats frstats[2]; -struct frentry *ipfilter[2][2] = { { NULL, NULL }, { NULL, NULL } }, - *ipfilter6[2][2] = { { NULL, NULL }, { NULL, NULL } }, - *ipacct6[2][2] = { { NULL, NULL }, { NULL, NULL } }, - *ipacct[2][2] = { { NULL, NULL }, { NULL, NULL } }, - *ipnatrules[2][2] = { { NULL, NULL }, { NULL, NULL } }; -struct frgroup *ipfgroups[IPL_LOGSIZE][2]; -char ipfilter_version[] = IPL_VERSION; -int fr_refcnt = 0; -/* - * For fr_running: - * 0 == loading, 1 = running, -1 = disabled, -2 = unloading - */ -int fr_running = 0; -int fr_flags = IPF_LOGGING; -int fr_active = 0; -int fr_control_forwarding = 0; -int fr_update_ipid = 0; -u_short fr_ip_id = 0; -int fr_chksrc = 0; /* causes a system crash if enabled */ -int fr_minttl = 4; -int fr_icmpminfragmtu = 68; -u_long fr_frouteok[2] = {0, 0}; -u_long fr_userifqs = 0; -u_long fr_badcoalesces[2] = {0, 0}; -u_char ipf_iss_secret[32]; -#if defined(IPFILTER_DEFAULT_BLOCK) -int fr_pass = FR_BLOCK|FR_NOMATCH; -#else -int fr_pass = (IPF_DEFAULT_PASS)|FR_NOMATCH; -#endif -int fr_features = 0 -#ifdef IPFILTER_LKM - | IPF_FEAT_LKM -#endif -#ifdef IPFILTER_LOG - | IPF_FEAT_LOG -#endif -#ifdef IPFILTER_LOOKUP - | IPF_FEAT_LOOKUP -#endif -#ifdef IPFILTER_BPF - | IPF_FEAT_BPF -#endif -#ifdef IPFILTER_COMPILED - | IPF_FEAT_COMPILED -#endif -#ifdef IPFILTER_CKSUM - | IPF_FEAT_CKSUM -#endif -#ifdef IPFILTER_SYNC - | IPF_FEAT_SYNC -#endif -#ifdef IPFILTER_SCAN - | IPF_FEAT_SCAN +static INLINE int ipf_check_ipf __P((fr_info_t *, frentry_t *, int)); +static u_32_t ipf_checkcipso __P((fr_info_t *, u_char *, int)); +static u_32_t ipf_checkripso __P((u_char *)); +static u_32_t ipf_decaps __P((fr_info_t *, u_32_t, int)); +#ifdef IPFILTER_LOG +static frentry_t *ipf_dolog __P((fr_info_t *, u_32_t *)); #endif -#ifdef USE_INET6 - | IPF_FEAT_IPV6 +static int ipf_flushlist __P((ipf_main_softc_t *, int *, + frentry_t **)); +static int ipf_flush_groups __P((ipf_main_softc_t *, frgroup_t **, + int)); +static ipfunc_t ipf_findfunc __P((ipfunc_t)); +static void *ipf_findlookup __P((ipf_main_softc_t *, int, + frentry_t *, + i6addr_t *, i6addr_t *)); +static frentry_t *ipf_firewall __P((fr_info_t *, u_32_t *)); +static int ipf_fr_matcharray __P((fr_info_t *, int *)); +static int ipf_frruleiter __P((ipf_main_softc_t *, void *, int, + void *)); +static void ipf_funcfini __P((ipf_main_softc_t *, frentry_t *)); +static int ipf_funcinit __P((ipf_main_softc_t *, frentry_t *)); +static int ipf_geniter __P((ipf_main_softc_t *, ipftoken_t *, + ipfgeniter_t *)); +static void ipf_getstat __P((ipf_main_softc_t *, + struct friostat *, int)); +static int ipf_group_flush __P((ipf_main_softc_t *, frgroup_t *)); +static void ipf_group_free __P((frgroup_t *)); +static int ipf_grpmapfini __P((struct ipf_main_softc_s *, + frentry_t *)); +static int ipf_grpmapinit __P((struct ipf_main_softc_s *, + frentry_t *)); +static frentry_t *ipf_nextrule __P((ipf_main_softc_t *, int, int, + frentry_t *, int)); +static int ipf_portcheck __P((frpcmp_t *, u_32_t)); +static INLINE int ipf_pr_ah __P((fr_info_t *)); +static INLINE void ipf_pr_esp __P((fr_info_t *)); +static INLINE void ipf_pr_gre __P((fr_info_t *)); +static INLINE void ipf_pr_udp __P((fr_info_t *)); +static INLINE void ipf_pr_tcp __P((fr_info_t *)); +static INLINE void ipf_pr_icmp __P((fr_info_t *)); +static INLINE void ipf_pr_ipv4hdr __P((fr_info_t *)); +static INLINE void ipf_pr_short __P((fr_info_t *, int)); +static INLINE int ipf_pr_tcpcommon __P((fr_info_t *)); +static INLINE int ipf_pr_udpcommon __P((fr_info_t *)); +static void ipf_rule_delete __P((ipf_main_softc_t *, frentry_t *f, + int, int)); +static void ipf_rule_expire_insert __P((ipf_main_softc_t *, + frentry_t *, int)); +static int ipf_synclist __P((ipf_main_softc_t *, frentry_t *, + void *)); +static void ipf_token_flush __P((ipf_main_softc_t *)); +static void ipf_token_unlink __P((ipf_main_softc_t *, + ipftoken_t *)); +static ipftuneable_t *ipf_tune_findbyname __P((ipftuneable_t *, + const char *)); +static ipftuneable_t *ipf_tune_findbycookie __P((ipftuneable_t **, void *, + void **)); +static int ipf_updateipid __P((fr_info_t *)); +static int ipf_settimeout __P((struct ipf_main_softc_s *, + struct ipftuneable *, + ipftuneval_t *)); +#if !defined(_KERNEL) || (!defined(__NetBSD__) && !defined(__OpenBSD__) && \ + !defined(__FreeBSD__)) || \ + FREEBSD_LT_REV(501000) || NETBSD_LT_REV(105000000) || \ + OPENBSD_LT_REV(200006) +static int ppsratecheck(struct timeval *, int *, int); #endif - ; - -static INLINE int fr_ipfcheck __P((fr_info_t *, frentry_t *, int)); -static int fr_portcheck __P((frpcmp_t *, u_short *)); -static int frflushlist __P((int, minor_t, int *, frentry_t **)); -static ipfunc_t fr_findfunc __P((ipfunc_t)); -static frentry_t *fr_firewall __P((fr_info_t *, u_32_t *)); -static int fr_funcinit __P((frentry_t *fr)); -static INLINE void frpr_ah __P((fr_info_t *)); -static INLINE void frpr_esp __P((fr_info_t *)); -static INLINE void frpr_gre __P((fr_info_t *)); -static INLINE void frpr_udp __P((fr_info_t *)); -static INLINE void frpr_tcp __P((fr_info_t *)); -static INLINE void frpr_icmp __P((fr_info_t *)); -static INLINE void frpr_ipv4hdr __P((fr_info_t *)); -static INLINE int frpr_pullup __P((fr_info_t *, int)); -static INLINE void frpr_short __P((fr_info_t *, int)); -static INLINE int frpr_tcpcommon __P((fr_info_t *)); -static INLINE int frpr_udpcommon __P((fr_info_t *)); -static int fr_updateipid __P((fr_info_t *)); -#ifdef IPFILTER_LOOKUP -static int fr_grpmapinit __P((frentry_t *fr)); -static INLINE void *fr_resolvelookup __P((u_int, u_int, i6addr_t *, lookupfunc_t *)); -#endif -static void frsynclist __P((frentry_t *, void *)); -static ipftuneable_t *fr_findtunebyname __P((const char *)); -static ipftuneable_t *fr_findtunebycookie __P((void *, void **)); -static int ipf_geniter __P((ipftoken_t *, ipfgeniter_t *)); -static int ipf_frruleiter __P((void *, int, void *)); -static void ipf_unlinktoken __P((ipftoken_t *)); /* @@ -260,7 +225,7 @@ static void ipf_unlinktoken __P((ipftok * hand side to allow for binary searching of the array and include a trailer * with a 0 for the bitmask for linear searches to easily find the end with. */ -const struct optlist ipopts[20] = { +static const struct optlist ipopts[20] = { { IPOPT_NOP, 0x000001 }, { IPOPT_RR, 0x000002 }, { IPOPT_ZSU, 0x000004 }, @@ -284,7 +249,7 @@ const struct optlist ipopts[20] = { }; #ifdef USE_INET6 -struct optlist ip6exthdr[] = { +static struct optlist ip6exthdr[] = { { IPPROTO_HOPOPTS, 0x000001 }, { IPPROTO_IPV6, 0x000002 }, { IPPROTO_ROUTING, 0x000004 }, @@ -298,20 +263,10 @@ struct optlist ip6exthdr[] = { }; #endif -struct optlist tcpopts[] = { - { TCPOPT_NOP, 0x000001 }, - { TCPOPT_MAXSEG, 0x000002 }, - { TCPOPT_WINDOW, 0x000004 }, - { TCPOPT_SACK_PERMITTED, 0x000008 }, - { TCPOPT_SACK, 0x000010 }, - { TCPOPT_TIMESTAMP, 0x000020 }, - { 0, 0x000000 } -}; - /* * bit values for identifying presence of individual IP security options */ -const struct optlist secopt[8] = { +static const struct optlist secopt[8] = { { IPSO_CLASS_RES4, 0x01 }, { IPSO_CLASS_TOPS, 0x02 }, { IPSO_CLASS_SECR, 0x04 }, @@ -322,16 +277,143 @@ const struct optlist secopt[8] = { { IPSO_CLASS_RES1, 0x80 } }; +char ipfilter_version[] = IPL_VERSION; + +int ipf_features = 0 +#ifdef IPFILTER_LKM + | IPF_FEAT_LKM +#endif +#ifdef IPFILTER_LOG + | IPF_FEAT_LOG +#endif + | IPF_FEAT_LOOKUP +#ifdef IPFILTER_BPF + | IPF_FEAT_BPF +#endif +#ifdef IPFILTER_COMPILED + | IPF_FEAT_COMPILED +#endif +#ifdef IPFILTER_CKSUM + | IPF_FEAT_CKSUM +#endif + | IPF_FEAT_SYNC +#ifdef IPFILTER_SCAN + | IPF_FEAT_SCAN +#endif +#ifdef USE_INET6 + | IPF_FEAT_IPV6 +#endif + ; + /* * Table of functions available for use with call rules. */ -static ipfunc_resolve_t fr_availfuncs[] = { -#ifdef IPFILTER_LOOKUP - { "fr_srcgrpmap", fr_srcgrpmap, fr_grpmapinit }, - { "fr_dstgrpmap", fr_dstgrpmap, fr_grpmapinit }, -#endif - { "", NULL, NULL } +static ipfunc_resolve_t ipf_availfuncs[] = { + { "srcgrpmap", ipf_srcgrpmap, ipf_grpmapinit, ipf_grpmapfini }, + { "dstgrpmap", ipf_dstgrpmap, ipf_grpmapinit, ipf_grpmapfini }, + { "", NULL, NULL, NULL } +}; + +static ipftuneable_t ipf_main_tuneables[] = { + { { (void *)offsetof(struct ipf_main_softc_s, ipf_flags) }, + "ipf_flags", 0, 0xffffffff, + stsizeof(ipf_main_softc_t, ipf_flags), + 0, NULL, NULL }, + { { (void *)offsetof(struct ipf_main_softc_s, ipf_active) }, + "active", 0, 0, + stsizeof(ipf_main_softc_t, ipf_active), + IPFT_RDONLY, NULL, NULL }, + { { (void *)offsetof(ipf_main_softc_t, ipf_control_forwarding) }, + "control_forwarding", 0, 1, + stsizeof(ipf_main_softc_t, ipf_control_forwarding), + 0, NULL, NULL }, + { { (void *)offsetof(ipf_main_softc_t, ipf_update_ipid) }, + "update_ipid", 0, 1, + stsizeof(ipf_main_softc_t, ipf_update_ipid), + 0, NULL, NULL }, + { { (void *)offsetof(ipf_main_softc_t, ipf_chksrc) }, + "chksrc", 0, 1, + stsizeof(ipf_main_softc_t, ipf_chksrc), + 0, NULL, NULL }, + { { (void *)offsetof(ipf_main_softc_t, ipf_minttl) }, + "min_ttl", 0, 1, + stsizeof(ipf_main_softc_t, ipf_minttl), + 0, NULL, NULL }, + { { (void *)offsetof(ipf_main_softc_t, ipf_icmpminfragmtu) }, + "icmp_minfragmtu", 0, 1, + stsizeof(ipf_main_softc_t, ipf_icmpminfragmtu), + 0, NULL, NULL }, + { { (void *)offsetof(ipf_main_softc_t, ipf_pass) }, + "default_pass", 0, 0xffffffff, + stsizeof(ipf_main_softc_t, ipf_pass), + 0, NULL, NULL }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcpidletimeout) }, + "tcp_idle_timeout", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcpidletimeout), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcpclosewait) }, + "tcp_close_wait", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcpclosewait), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcplastack) }, + "tcp_last_ack", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcplastack), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcptimeout) }, + "tcp_timeout", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcptimeout), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcpsynsent) }, + "tcp_syn_sent", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcpsynsent), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcpsynrecv) }, + "tcp_syn_received", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcpsynrecv), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcpclosed) }, + "tcp_closed", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcpclosed), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcphalfclosed) }, + "tcp_half_closed", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcphalfclosed), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcptimewait) }, + "tcp_time_wait", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcptimewait), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_udptimeout) }, + "udp_timeout", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_udptimeout), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_udpacktimeout) }, + "udp_ack_timeout", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_udpacktimeout), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_icmptimeout) }, + "icmp_timeout", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_icmptimeout), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_icmpacktimeout) }, + "icmp_ack_timeout", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_icmpacktimeout), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_iptimeout) }, + "ip_timeout", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_iptimeout), + 0, NULL, ipf_settimeout }, +#if defined(INSTANCES) && defined(_KERNEL) + { { (void *)offsetof(ipf_main_softc_t, ipf_get_loopback) }, + "intercept_loopback", 0, 1, + stsizeof(ipf_main_softc_t, ipf_get_loopback), + 0, NULL, ipf_set_loopback }, +#endif + { { 0 }, + NULL, 0, 0, + 0, + 0, NULL, NULL } }; @@ -341,39 +423,41 @@ static ipfunc_resolve_t fr_availfuncs[] * current packet. There are different routines for the same protocol * for each of IPv4 and IPv6. Adding a new protocol, for which there * will "special" inspection for setup, is now more easily done by adding - * a new routine and expanding the frpr_ipinit*() function rather than by + * a new routine and expanding the ipf_pr_ipinit*() function rather than by * adding more code to a growing switch statement. */ #ifdef USE_INET6 -static INLINE int frpr_ah6 __P((fr_info_t *)); -static INLINE void frpr_esp6 __P((fr_info_t *)); -static INLINE void frpr_gre6 __P((fr_info_t *)); -static INLINE void frpr_udp6 __P((fr_info_t *)); -static INLINE void frpr_tcp6 __P((fr_info_t *)); -static INLINE void frpr_icmp6 __P((fr_info_t *)); -static INLINE int frpr_ipv6hdr __P((fr_info_t *)); -static INLINE void frpr_short6 __P((fr_info_t *, int)); -static INLINE int frpr_hopopts6 __P((fr_info_t *)); -static INLINE int frpr_mobility6 __P((fr_info_t *)); -static INLINE int frpr_routing6 __P((fr_info_t *)); -static INLINE int frpr_dstopts6 __P((fr_info_t *)); -static INLINE int frpr_fragment6 __P((fr_info_t *)); -static INLINE int frpr_ipv6exthdr __P((fr_info_t *, int, int)); +static INLINE int ipf_pr_ah6 __P((fr_info_t *)); +static INLINE void ipf_pr_esp6 __P((fr_info_t *)); +static INLINE void ipf_pr_gre6 __P((fr_info_t *)); +static INLINE void ipf_pr_udp6 __P((fr_info_t *)); +static INLINE void ipf_pr_tcp6 __P((fr_info_t *)); +static INLINE void ipf_pr_icmp6 __P((fr_info_t *)); +static INLINE void ipf_pr_ipv6hdr __P((fr_info_t *)); +static INLINE void ipf_pr_short6 __P((fr_info_t *, int)); +static INLINE int ipf_pr_hopopts6 __P((fr_info_t *)); +static INLINE int ipf_pr_mobility6 __P((fr_info_t *)); +static INLINE int ipf_pr_routing6 __P((fr_info_t *)); +static INLINE int ipf_pr_dstopts6 __P((fr_info_t *)); +static INLINE int ipf_pr_fragment6 __P((fr_info_t *)); +static INLINE struct ip6_ext *ipf_pr_ipv6exthdr __P((fr_info_t *, int, int)); /* ------------------------------------------------------------------------ */ -/* Function: frpr_short6 */ +/* Function: ipf_pr_short6 */ /* Returns: void */ -/* Parameters: fin(I) - pointer to packet information */ +/* Parameters: fin(I) - pointer to packet information */ +/* xmin(I) - minimum header size */ /* */ /* IPv6 Only */ /* This is function enforces the 'is a packet too short to be legit' rule */ /* for IPv6 and marks the packet with FI_SHORT if so. See function comment */ -/* for frpr_short() for more details. */ +/* for ipf_pr_short() for more details. */ /* ------------------------------------------------------------------------ */ -static INLINE void frpr_short6(fin, xmin) -fr_info_t *fin; -int xmin; +static INLINE void +ipf_pr_short6(fin, xmin) + fr_info_t *fin; + int xmin; { if (fin->fin_dlen < xmin) @@ -382,8 +466,8 @@ int xmin; /* ------------------------------------------------------------------------ */ -/* Function: frpr_ipv6hdr */ -/* Returns: int - 0 = IPv6 packet intact, -1 = packet lost */ +/* Function: ipf_pr_ipv6hdr */ +/* Returns: void */ /* Parameters: fin(I) - pointer to packet information */ /* */ /* IPv6 Only */ @@ -392,8 +476,9 @@ int xmin; /* analyzer may pullup or free the packet itself so we need to be vigiliant */ /* of that possibility arising. */ /* ------------------------------------------------------------------------ */ -static INLINE int frpr_ipv6hdr(fin) -fr_info_t *fin; +static INLINE void +ipf_pr_ipv6hdr(fin) + fr_info_t *fin; { ip6_t *ip6 = (ip6_t *)fin->fin_ip; int p, go = 1, i, hdrcount; @@ -407,57 +492,68 @@ fr_info_t *fin; fi->fi_auth = 0; p = ip6->ip6_nxt; + fin->fin_crc = p; fi->fi_ttl = ip6->ip6_hlim; fi->fi_src.in6 = ip6->ip6_src; + fin->fin_crc += fi->fi_src.i6[0]; + fin->fin_crc += fi->fi_src.i6[1]; + fin->fin_crc += fi->fi_src.i6[2]; + fin->fin_crc += fi->fi_src.i6[3]; fi->fi_dst.in6 = ip6->ip6_dst; - fin->fin_id = (u_short)(ip6->ip6_flow & 0xffff); + fin->fin_crc += fi->fi_dst.i6[0]; + fin->fin_crc += fi->fi_dst.i6[1]; + fin->fin_crc += fi->fi_dst.i6[2]; + fin->fin_crc += fi->fi_dst.i6[3]; + fin->fin_id = 0; + if (IN6_IS_ADDR_MULTICAST(&fi->fi_dst.in6)) + fin->fin_flx |= FI_MULTICAST|FI_MBCAST; hdrcount = 0; - while (go && !(fin->fin_flx & (FI_BAD|FI_SHORT))) { + while (go && !(fin->fin_flx & FI_SHORT)) { switch (p) { case IPPROTO_UDP : - frpr_udp6(fin); + ipf_pr_udp6(fin); go = 0; break; case IPPROTO_TCP : - frpr_tcp6(fin); + ipf_pr_tcp6(fin); go = 0; break; case IPPROTO_ICMPV6 : - frpr_icmp6(fin); + ipf_pr_icmp6(fin); go = 0; break; case IPPROTO_GRE : - frpr_gre6(fin); + ipf_pr_gre6(fin); go = 0; break; case IPPROTO_HOPOPTS : - p = frpr_hopopts6(fin); + p = ipf_pr_hopopts6(fin); break; case IPPROTO_MOBILITY : - p = frpr_mobility6(fin); + p = ipf_pr_mobility6(fin); break; case IPPROTO_DSTOPTS : - p = frpr_dstopts6(fin); + p = ipf_pr_dstopts6(fin); break; case IPPROTO_ROUTING : - p = frpr_routing6(fin); + p = ipf_pr_routing6(fin); break; case IPPROTO_AH : - p = frpr_ah6(fin); + p = ipf_pr_ah6(fin); break; case IPPROTO_ESP : - frpr_esp6(fin); + ipf_pr_esp6(fin); go = 0; break; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Sun Aug 11 14:28:49 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8458A8AE; Sun, 11 Aug 2013 14:28:49 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6EDD0278D; Sun, 11 Aug 2013 14:28:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BESnIA077377; Sun, 11 Aug 2013 14:28:49 GMT (envelope-from cy@svn.freebsd.org) Received: (from cy@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BESl93077363; Sun, 11 Aug 2013 14:28:47 GMT (envelope-from cy@svn.freebsd.org) Message-Id: <201308111428.r7BESl93077363@svn.freebsd.org> From: Cy Schubert Date: Sun, 11 Aug 2013 14:28:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254219 - vendor-sys/ipfilter/dist/netinet vendor/ipfilter/dist vendor/ipfilter/dist/4bsd vendor/ipfilter/dist/AIX vendor/ipfilter/dist/BSD vendor/ipfilter/dist/BSDOS vendor/ipfilter/di... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 14:28:49 -0000 Author: cy Date: Sun Aug 11 14:28:45 2013 New Revision: 254219 URL: http://svnweb.freebsd.org/changeset/base/254219 Log: Import IP-Filter 5.1.2 into vendor branches using the existing license that the current version of IP-Filter in FreeBSD is under as per email received from Darren Reed on Mon, 08 Jul 2013 23:54:16 +1000. Approved by: glebius (Mentor), Darren Reed Added: vendor/ipfilter/dist/4bsd/ vendor/ipfilter/dist/4bsd/conf.c.diffs vendor/ipfilter/dist/4bsd/files.diffs vendor/ipfilter/dist/4bsd/files.newconf.diffs vendor/ipfilter/dist/4bsd/files.oldconf.diffs vendor/ipfilter/dist/4bsd/filez.diffs vendor/ipfilter/dist/4bsd/ip_input.c.diffs vendor/ipfilter/dist/4bsd/ip_output.c.diffs vendor/ipfilter/dist/4bsd/kinstall (contents, props changed) vendor/ipfilter/dist/AIX/ vendor/ipfilter/dist/AIX/Makefile (contents, props changed) vendor/ipfilter/dist/AIX/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/AIX/aix_cfg_ipf.c vendor/ipfilter/dist/AIX/bootbits.sh (contents, props changed) vendor/ipfilter/dist/AIX/cpurev (contents, props changed) vendor/ipfilter/dist/AIX/ipfkext.exp vendor/ipfilter/dist/AIX/ipfkext.map vendor/ipfilter/dist/BSD/upgrade (contents, props changed) vendor/ipfilter/dist/BSDOS/ vendor/ipfilter/dist/BSDOS/files.diffs vendor/ipfilter/dist/BSDOS/ioconf.c.i386.diffs vendor/ipfilter/dist/BSDOS/ip_input.c.diffs vendor/ipfilter/dist/BSDOS/ip_output.c.diffs vendor/ipfilter/dist/BSDOS/kinstall (contents, props changed) vendor/ipfilter/dist/BSDOS3/ vendor/ipfilter/dist/BSDOS3/OBJS/ vendor/ipfilter/dist/BSDOS3/OBJS/README vendor/ipfilter/dist/BSDOS3/OBJS/files vendor/ipfilter/dist/BSDOS3/OBJS/ioconf.c vendor/ipfilter/dist/BSDOS3/files.diffs vendor/ipfilter/dist/BSDOS3/in_proto.c.diffs vendor/ipfilter/dist/BSDOS3/ioconf.c.i386.diffs vendor/ipfilter/dist/BSDOS3/ip_input.c.diffs vendor/ipfilter/dist/BSDOS3/ip_output.c.diffs vendor/ipfilter/dist/BSDOS3/kinstall vendor/ipfilter/dist/BSDOS3/unkinstall vendor/ipfilter/dist/BSDOS4/ vendor/ipfilter/dist/BSDOS4/files.diffs vendor/ipfilter/dist/BSDOS4/in_proto.c.diffs vendor/ipfilter/dist/BSDOS4/ioconf.c.i386.diffs vendor/ipfilter/dist/BSDOS4/ip_input.c.diffs vendor/ipfilter/dist/BSDOS4/ip_output.c.diffs vendor/ipfilter/dist/BSDOS4/kinstall vendor/ipfilter/dist/BSDOS4/unkinstall vendor/ipfilter/dist/HPUX/ vendor/ipfilter/dist/HPUX/INSTALL.TXT vendor/ipfilter/dist/HPUX/IPF-ALL/ vendor/ipfilter/dist/HPUX/IPF-ALL/checkinstall (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/checkremove (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/description (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/postinstall (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/postremove (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/preinstall (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/preremove (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/verify (contents, props changed) vendor/ipfilter/dist/HPUX/Makefile (contents, props changed) vendor/ipfilter/dist/HPUX/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/HPUX/cpurev (contents, props changed) vendor/ipfilter/dist/HPUX/ethers.c vendor/ipfilter/dist/HPUX/installmod (contents, props changed) vendor/ipfilter/dist/HPUX/ipf.psf.dist vendor/ipfilter/dist/HPUX/ipfboot vendor/ipfilter/dist/HPUX/ipfconf vendor/ipfilter/dist/HPUX/makeargs (contents, props changed) vendor/ipfilter/dist/HPUX/master vendor/ipfilter/dist/HPUX/space.h vendor/ipfilter/dist/HPUX/system vendor/ipfilter/dist/INSTALL.Tru64 vendor/ipfilter/dist/IRIX/ vendor/ipfilter/dist/IRIX/Makefile (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.common (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.ipsend.std (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.std (contents, props changed) vendor/ipfilter/dist/IRIX/cpurev (contents, props changed) vendor/ipfilter/dist/IRIX/getkflags (contents, props changed) vendor/ipfilter/dist/IRIX/getrev (contents, props changed) vendor/ipfilter/dist/IRIX/ipfboot vendor/ipfilter/dist/IRIX/ipl vendor/ipfilter/dist/Linux/ vendor/ipfilter/dist/Linux/Makefile (contents, props changed) vendor/ipfilter/dist/Linux/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/Linux/Makefile.kbuild (contents, props changed) vendor/ipfilter/dist/Linux/Tips_SuSE91.txt vendor/ipfilter/dist/Linux/howchkconfig (contents, props changed) vendor/ipfilter/dist/Linux/initscript vendor/ipfilter/dist/Linux/ipf-linux.h vendor/ipfilter/dist/Linux/ipfilter (contents, props changed) vendor/ipfilter/dist/Linux/ipfilter-redhat (contents, props changed) vendor/ipfilter/dist/Linux/ipfilter-suse (contents, props changed) vendor/ipfilter/dist/Linux/ipfilter.spec.dist vendor/ipfilter/dist/Linux/linuxversion (contents, props changed) vendor/ipfilter/dist/Linux/minstall (contents, props changed) vendor/ipfilter/dist/Linux/mkinit (contents, props changed) vendor/ipfilter/dist/NetBSD/ vendor/ipfilter/dist/NetBSD-1.2/ vendor/ipfilter/dist/NetBSD-1.2/conf.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/files-PATCH vendor/ipfilter/dist/NetBSD-1.2/files.oldconf-PATCH vendor/ipfilter/dist/NetBSD-1.2/in_proto.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/ip_input.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/ip_output.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/kinstall (contents, props changed) vendor/ipfilter/dist/NetBSD-1.2/minstall (contents, props changed) vendor/ipfilter/dist/NetBSD/conf.c.diffs vendor/ipfilter/dist/NetBSD/conf.c.old.diffs vendor/ipfilter/dist/NetBSD/files.diffs vendor/ipfilter/dist/NetBSD/files.newconf.diffs vendor/ipfilter/dist/NetBSD/files.oldconf.diffs vendor/ipfilter/dist/NetBSD/filez.diffs vendor/ipfilter/dist/NetBSD/in_proto.c.diffs vendor/ipfilter/dist/NetBSD/in_proto.c.old.diffs vendor/ipfilter/dist/NetBSD/ip_input.c.diffs vendor/ipfilter/dist/NetBSD/ip_output.c.diffs vendor/ipfilter/dist/NetBSD/kinstall (contents, props changed) vendor/ipfilter/dist/NetBSD/minstall (contents, props changed) vendor/ipfilter/dist/NetBSD/unkinstall (contents, props changed) vendor/ipfilter/dist/NetBSD/unminstall (contents, props changed) vendor/ipfilter/dist/OSF/ vendor/ipfilter/dist/OSF/Makefile (contents, props changed) vendor/ipfilter/dist/OSF/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/OSF/cpurev (contents, props changed) vendor/ipfilter/dist/OSF/ipfboot vendor/ipfilter/dist/OSF/sysconfigtab vendor/ipfilter/dist/OpenBSD/ vendor/ipfilter/dist/OpenBSD-2/ vendor/ipfilter/dist/OpenBSD-2/2.9-IPv6.diffs vendor/ipfilter/dist/OpenBSD-2/files.diffs vendor/ipfilter/dist/OpenBSD-2/ipf-fastroute.patch-2.7 vendor/ipfilter/dist/OpenBSD-2/kinstall (contents, props changed) vendor/ipfilter/dist/OpenBSD-2/mknewipf.sh vendor/ipfilter/dist/OpenBSD-2/patch.1 vendor/ipfilter/dist/OpenBSD-2/unkinstall vendor/ipfilter/dist/OpenBSD-3/ vendor/ipfilter/dist/OpenBSD-3/3.0-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.0-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.0-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.1-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.1-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.1-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.2-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.2-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.2-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.3-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.3-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.3-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.4-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.4-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.4-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.5-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.5-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.5-sys-diffs vendor/ipfilter/dist/OpenBSD-3/README.3_0 vendor/ipfilter/dist/OpenBSD-3/README.3_1 vendor/ipfilter/dist/OpenBSD-3/README.3_2 vendor/ipfilter/dist/OpenBSD-3/README.3_3 vendor/ipfilter/dist/OpenBSD-3/README.3_4 vendor/ipfilter/dist/OpenBSD-3/README.3_5 vendor/ipfilter/dist/OpenBSD-3/fixdist-3.0 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.2 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.3 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.4 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.5 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.0 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.1 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.2 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.3 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.4 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.5 (contents, props changed) vendor/ipfilter/dist/OpenBSD/files.diffs vendor/ipfilter/dist/OpenBSD/kinstall (contents, props changed) vendor/ipfilter/dist/OpenBSD/mknewipf.sh vendor/ipfilter/dist/OpenBSD/patch.1 vendor/ipfilter/dist/OpenBSD/unkinstall vendor/ipfilter/dist/SunOS4/ vendor/ipfilter/dist/SunOS4/Makefile (contents, props changed) vendor/ipfilter/dist/SunOS4/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/SunOS4/conf.c.diff vendor/ipfilter/dist/SunOS4/files.cmn.diff vendor/ipfilter/dist/SunOS4/in_proto.c.diffs vendor/ipfilter/dist/SunOS4/kinstall (contents, props changed) vendor/ipfilter/dist/SunOS4/minstall (contents, props changed) vendor/ipfilter/dist/SunOS4/mkroutes (contents, props changed) vendor/ipfilter/dist/SunOS4/rc.ipf (contents, props changed) vendor/ipfilter/dist/SunOS4/reload (contents, props changed) vendor/ipfilter/dist/SunOS4/unkinstall (contents, props changed) vendor/ipfilter/dist/SunOS4/unminstall (contents, props changed) vendor/ipfilter/dist/SunOS5/ vendor/ipfilter/dist/SunOS5/Makefile (contents, props changed) vendor/ipfilter/dist/SunOS5/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/SunOS5/copyright vendor/ipfilter/dist/SunOS5/depend vendor/ipfilter/dist/SunOS5/ipf.conf vendor/ipfilter/dist/SunOS5/ipfboot vendor/ipfilter/dist/SunOS5/makeargs (contents, props changed) vendor/ipfilter/dist/SunOS5/mblk_misc.c vendor/ipfilter/dist/SunOS5/pkginfo vendor/ipfilter/dist/SunOS5/postinstall (contents, props changed) vendor/ipfilter/dist/SunOS5/postremove (contents, props changed) vendor/ipfilter/dist/SunOS5/preremove (contents, props changed) vendor/ipfilter/dist/SunOS5/prototype vendor/ipfilter/dist/SunOS5/prototype32 vendor/ipfilter/dist/SunOS5/prototype64 vendor/ipfilter/dist/SunOS5/prototype_amd64 vendor/ipfilter/dist/SunOS5/prototype_ia32 vendor/ipfilter/dist/SunOS5/replace (contents, props changed) vendor/ipfilter/dist/SunOS5/solinstall (contents, props changed) vendor/ipfilter/dist/SunOS5/uninstall (contents, props changed) vendor/ipfilter/dist/WhatsNew50.txt vendor/ipfilter/dist/arc4random.c vendor/ipfilter/dist/hpux.c vendor/ipfilter/dist/ip_dns_pxy.c vendor/ipfilter/dist/ip_dstlist.c vendor/ipfilter/dist/ip_dstlist.h vendor/ipfilter/dist/ip_fil_aix.c vendor/ipfilter/dist/ip_fil_compat.c vendor/ipfilter/dist/ip_fil_hpux.c vendor/ipfilter/dist/ip_fil_irix.c vendor/ipfilter/dist/ip_fil_linux.c vendor/ipfilter/dist/ip_fil_netbsd.c vendor/ipfilter/dist/ip_fil_openbsd.c vendor/ipfilter/dist/ip_fil_osf.c vendor/ipfilter/dist/ip_fil_solaris.c vendor/ipfilter/dist/ip_fil_sunos4.c vendor/ipfilter/dist/ip_nat6.c vendor/ipfilter/dist/ip_tftp_pxy.c vendor/ipfilter/dist/ipf_rb.h vendor/ipfilter/dist/lib/allocmbt.c vendor/ipfilter/dist/lib/assigndefined.c vendor/ipfilter/dist/lib/connecttcp.c vendor/ipfilter/dist/lib/dupmbt.c vendor/ipfilter/dist/lib/familyname.c vendor/ipfilter/dist/lib/findword.c vendor/ipfilter/dist/lib/freembt.c vendor/ipfilter/dist/lib/ftov.c vendor/ipfilter/dist/lib/geticmptype.c vendor/ipfilter/dist/lib/icmptypename.c vendor/ipfilter/dist/lib/icmptypes.c vendor/ipfilter/dist/lib/interror.c vendor/ipfilter/dist/lib/ipf_perror.c vendor/ipfilter/dist/lib/load_dstlist.c vendor/ipfilter/dist/lib/load_dstlistnode.c vendor/ipfilter/dist/lib/mb_hexdump.c vendor/ipfilter/dist/lib/msgdsize.c vendor/ipfilter/dist/lib/parsefields.c vendor/ipfilter/dist/lib/parseipfexpr.c vendor/ipfilter/dist/lib/parsewhoisline.c vendor/ipfilter/dist/lib/poolio.c vendor/ipfilter/dist/lib/prependmbt.c vendor/ipfilter/dist/lib/printactiveaddr.c vendor/ipfilter/dist/lib/printaddr.c vendor/ipfilter/dist/lib/printdstl_live.c vendor/ipfilter/dist/lib/printdstlist.c vendor/ipfilter/dist/lib/printdstlistdata.c vendor/ipfilter/dist/lib/printdstlistnode.c vendor/ipfilter/dist/lib/printdstlistpolicy.c vendor/ipfilter/dist/lib/printfieldhdr.c vendor/ipfilter/dist/lib/printhost.c vendor/ipfilter/dist/lib/printipfexpr.c vendor/ipfilter/dist/lib/printiphdr.c vendor/ipfilter/dist/lib/printlookup.c vendor/ipfilter/dist/lib/printnataddr.c vendor/ipfilter/dist/lib/printnatfield.c vendor/ipfilter/dist/lib/printnatside.c vendor/ipfilter/dist/lib/printpoolfield.c vendor/ipfilter/dist/lib/printstatefields.c vendor/ipfilter/dist/lib/printtcpflags.c vendor/ipfilter/dist/lib/printunit.c vendor/ipfilter/dist/lib/save_execute.c vendor/ipfilter/dist/lib/save_file.c vendor/ipfilter/dist/lib/save_nothing.c vendor/ipfilter/dist/lib/save_syslog.c vendor/ipfilter/dist/lib/save_v1trap.c vendor/ipfilter/dist/lib/save_v2trap.c vendor/ipfilter/dist/lib/vtof.c vendor/ipfilter/dist/linux.c vendor/ipfilter/dist/mln_rule.c vendor/ipfilter/dist/mlo_ipl.c vendor/ipfilter/dist/mlo_rule.c vendor/ipfilter/dist/mls_rule.c vendor/ipfilter/dist/mlso_rule.c vendor/ipfilter/dist/radix_ipf.c vendor/ipfilter/dist/sys/ vendor/ipfilter/dist/sys/tree.h vendor/ipfilter/dist/test/e4to6 vendor/ipfilter/dist/test/expected/.cvsignore vendor/ipfilter/dist/test/expected/f21 vendor/ipfilter/dist/test/expected/f22 vendor/ipfilter/dist/test/expected/f25 vendor/ipfilter/dist/test/expected/f26 vendor/ipfilter/dist/test/expected/f27 vendor/ipfilter/dist/test/expected/f28 vendor/ipfilter/dist/test/expected/f29 vendor/ipfilter/dist/test/expected/f30 vendor/ipfilter/dist/test/expected/i22 vendor/ipfilter/dist/test/expected/i23 vendor/ipfilter/dist/test/expected/in100 vendor/ipfilter/dist/test/expected/in101 vendor/ipfilter/dist/test/expected/in102 vendor/ipfilter/dist/test/expected/in7 vendor/ipfilter/dist/test/expected/ip3 vendor/ipfilter/dist/test/expected/ipv6.4 vendor/ipfilter/dist/test/expected/n100 vendor/ipfilter/dist/test/expected/n101 vendor/ipfilter/dist/test/expected/n102 vendor/ipfilter/dist/test/expected/n103 vendor/ipfilter/dist/test/expected/n104 vendor/ipfilter/dist/test/expected/n105 vendor/ipfilter/dist/test/expected/n106 vendor/ipfilter/dist/test/expected/n11_6 vendor/ipfilter/dist/test/expected/n12_6 vendor/ipfilter/dist/test/expected/n13_6 vendor/ipfilter/dist/test/expected/n14_6 vendor/ipfilter/dist/test/expected/n15 vendor/ipfilter/dist/test/expected/n15_6 vendor/ipfilter/dist/test/expected/n17 vendor/ipfilter/dist/test/expected/n18 vendor/ipfilter/dist/test/expected/n1_6 vendor/ipfilter/dist/test/expected/n200 vendor/ipfilter/dist/test/expected/n2_6 vendor/ipfilter/dist/test/expected/n4_6 vendor/ipfilter/dist/test/expected/n5_6 vendor/ipfilter/dist/test/expected/n6_6 vendor/ipfilter/dist/test/expected/n7_6 vendor/ipfilter/dist/test/expected/n8_6 vendor/ipfilter/dist/test/expected/n9_6 vendor/ipfilter/dist/test/expected/ni17 vendor/ipfilter/dist/test/expected/ni18 vendor/ipfilter/dist/test/expected/p10 vendor/ipfilter/dist/test/expected/p11 vendor/ipfilter/dist/test/expected/p12 vendor/ipfilter/dist/test/expected/p13 vendor/ipfilter/dist/test/expected/p4 vendor/ipfilter/dist/test/expected/p6 vendor/ipfilter/dist/test/expected/p7 vendor/ipfilter/dist/test/expected/p9 vendor/ipfilter/dist/test/h4to6 vendor/ipfilter/dist/test/i4to6 vendor/ipfilter/dist/test/input/f21 vendor/ipfilter/dist/test/input/f22 vendor/ipfilter/dist/test/input/f25 vendor/ipfilter/dist/test/input/f26 vendor/ipfilter/dist/test/input/f27 vendor/ipfilter/dist/test/input/f28 vendor/ipfilter/dist/test/input/f29 vendor/ipfilter/dist/test/input/f30 vendor/ipfilter/dist/test/input/ipv6.4 vendor/ipfilter/dist/test/input/n100 vendor/ipfilter/dist/test/input/n101 vendor/ipfilter/dist/test/input/n102 vendor/ipfilter/dist/test/input/n103 vendor/ipfilter/dist/test/input/n104 vendor/ipfilter/dist/test/input/n105 vendor/ipfilter/dist/test/input/n106 vendor/ipfilter/dist/test/input/n10_6 vendor/ipfilter/dist/test/input/n11_6 vendor/ipfilter/dist/test/input/n12_6 vendor/ipfilter/dist/test/input/n13_6 vendor/ipfilter/dist/test/input/n14_6 vendor/ipfilter/dist/test/input/n15 vendor/ipfilter/dist/test/input/n15_6 vendor/ipfilter/dist/test/input/n17 vendor/ipfilter/dist/test/input/n17_6 vendor/ipfilter/dist/test/input/n18 vendor/ipfilter/dist/test/input/n1_6 vendor/ipfilter/dist/test/input/n200 vendor/ipfilter/dist/test/input/n2_6 vendor/ipfilter/dist/test/input/n4_6 vendor/ipfilter/dist/test/input/n5_6 vendor/ipfilter/dist/test/input/n6_6 vendor/ipfilter/dist/test/input/n7_6 vendor/ipfilter/dist/test/input/n8_6 vendor/ipfilter/dist/test/input/n9_6 vendor/ipfilter/dist/test/input/ni18 vendor/ipfilter/dist/test/input/p10 vendor/ipfilter/dist/test/input/p11 vendor/ipfilter/dist/test/input/p12 vendor/ipfilter/dist/test/input/p13 vendor/ipfilter/dist/test/input/p4 vendor/ipfilter/dist/test/input/p6 vendor/ipfilter/dist/test/input/p7 vendor/ipfilter/dist/test/input/p9 vendor/ipfilter/dist/test/ipflib.sh vendor/ipfilter/dist/test/regress/f21 vendor/ipfilter/dist/test/regress/f22 vendor/ipfilter/dist/test/regress/f25 vendor/ipfilter/dist/test/regress/f26 vendor/ipfilter/dist/test/regress/f27 vendor/ipfilter/dist/test/regress/f28.ipf vendor/ipfilter/dist/test/regress/f28.pool vendor/ipfilter/dist/test/regress/f29.ipf vendor/ipfilter/dist/test/regress/f29.pool vendor/ipfilter/dist/test/regress/f30 vendor/ipfilter/dist/test/regress/i22 vendor/ipfilter/dist/test/regress/i23 vendor/ipfilter/dist/test/regress/in100 vendor/ipfilter/dist/test/regress/in101 vendor/ipfilter/dist/test/regress/in102 vendor/ipfilter/dist/test/regress/in7 vendor/ipfilter/dist/test/regress/ip3 vendor/ipfilter/dist/test/regress/ipv6.4 vendor/ipfilter/dist/test/regress/n100 vendor/ipfilter/dist/test/regress/n101 vendor/ipfilter/dist/test/regress/n102 vendor/ipfilter/dist/test/regress/n103 vendor/ipfilter/dist/test/regress/n104 vendor/ipfilter/dist/test/regress/n105 vendor/ipfilter/dist/test/regress/n106 vendor/ipfilter/dist/test/regress/n10_6 vendor/ipfilter/dist/test/regress/n11_6 vendor/ipfilter/dist/test/regress/n12_6 vendor/ipfilter/dist/test/regress/n13_6 vendor/ipfilter/dist/test/regress/n14_6 vendor/ipfilter/dist/test/regress/n15 vendor/ipfilter/dist/test/regress/n15_6 vendor/ipfilter/dist/test/regress/n16_6 vendor/ipfilter/dist/test/regress/n17 vendor/ipfilter/dist/test/regress/n17_6 vendor/ipfilter/dist/test/regress/n18 vendor/ipfilter/dist/test/regress/n1_6 vendor/ipfilter/dist/test/regress/n200 vendor/ipfilter/dist/test/regress/n2_6 vendor/ipfilter/dist/test/regress/n4_6 vendor/ipfilter/dist/test/regress/n5_6 vendor/ipfilter/dist/test/regress/n6_6 vendor/ipfilter/dist/test/regress/n7_6 vendor/ipfilter/dist/test/regress/n8_6 vendor/ipfilter/dist/test/regress/n9_6 vendor/ipfilter/dist/test/regress/ni17.ipf vendor/ipfilter/dist/test/regress/ni18.ipf vendor/ipfilter/dist/test/regress/ni18.nat vendor/ipfilter/dist/test/regress/p10.nat vendor/ipfilter/dist/test/regress/p10.pool vendor/ipfilter/dist/test/regress/p11.nat vendor/ipfilter/dist/test/regress/p11.pool vendor/ipfilter/dist/test/regress/p12.nat vendor/ipfilter/dist/test/regress/p12.pool vendor/ipfilter/dist/test/regress/p13.ipf vendor/ipfilter/dist/test/regress/p13.pool vendor/ipfilter/dist/test/regress/p4.nat vendor/ipfilter/dist/test/regress/p4.pool vendor/ipfilter/dist/test/regress/p6.ipf vendor/ipfilter/dist/test/regress/p6.pool vendor/ipfilter/dist/test/regress/p6.whois vendor/ipfilter/dist/test/regress/p7.nat vendor/ipfilter/dist/test/regress/p7.pool vendor/ipfilter/dist/test/regress/p9.nat vendor/ipfilter/dist/test/regress/p9.pool vendor/ipfilter/dist/tools/ipfsyncd.c vendor/ipfilter/dist/tru64.c Deleted: vendor/ipfilter/dist/BSD/.cvsignore vendor/ipfilter/dist/FWTK/FWTK.sed vendor/ipfilter/dist/FWTK/fwtk-2.1-transparency.txt vendor/ipfilter/dist/FWTK/tproxy.diff vendor/ipfilter/dist/FreeBSD-4.0/ipv6-patch vendor/ipfilter/dist/QNX_OCL.txt vendor/ipfilter/dist/UPGRADE_NOTICE vendor/ipfilter/dist/bpf-ipf.h vendor/ipfilter/dist/bpf.h vendor/ipfilter/dist/bpf_filter.c vendor/ipfilter/dist/buildlinux vendor/ipfilter/dist/common.c vendor/ipfilter/dist/etc/etc.sed vendor/ipfilter/dist/facpri.c vendor/ipfilter/dist/facpri.h vendor/ipfilter/dist/fils.c vendor/ipfilter/dist/inet_addr.c vendor/ipfilter/dist/ip_h323_pxy.c vendor/ipfilter/dist/ip_lfil.c vendor/ipfilter/dist/ip_msnrpc_pxy.c vendor/ipfilter/dist/ip_sfil.c vendor/ipfilter/dist/ipf.c vendor/ipfilter/dist/ipfs.c vendor/ipfilter/dist/ipft_ef.c vendor/ipfilter/dist/ipft_hx.c vendor/ipfilter/dist/ipft_pc.c vendor/ipfilter/dist/ipft_sn.c vendor/ipfilter/dist/ipft_td.c vendor/ipfilter/dist/ipft_tx.c vendor/ipfilter/dist/ipl_ldev.c vendor/ipfilter/dist/iplang/.cvsignore vendor/ipfilter/dist/ipmon.c vendor/ipfilter/dist/ipnat.c vendor/ipfilter/dist/ipsd/ip_compat.h vendor/ipfilter/dist/ipsd/ipsd.sed vendor/ipfilter/dist/ipsend/.cvsignore vendor/ipfilter/dist/ipsend/README vendor/ipfilter/dist/ipsend/hpux.c vendor/ipfilter/dist/ipsend/in_var.h vendor/ipfilter/dist/ipsend/ip_compat.h vendor/ipfilter/dist/ipsend/ip_var.h vendor/ipfilter/dist/ipsend/ipsend.sed vendor/ipfilter/dist/ipsend/tcpip.h vendor/ipfilter/dist/ipsend/ultrix.c vendor/ipfilter/dist/ipt.c vendor/ipfilter/dist/kmem.c vendor/ipfilter/dist/lib/addkeep.c vendor/ipfilter/dist/lib/extras.c vendor/ipfilter/dist/lib/getline.c vendor/ipfilter/dist/lib/hexdump.c vendor/ipfilter/dist/lib/hostmask.c vendor/ipfilter/dist/lib/hostnum.c vendor/ipfilter/dist/lib/inet_addr.c vendor/ipfilter/dist/lib/ipft_ef.c vendor/ipfilter/dist/lib/ipft_sn.c vendor/ipfilter/dist/lib/ipft_td.c vendor/ipfilter/dist/lib/loglevel.c vendor/ipfilter/dist/lib/make_range.c vendor/ipfilter/dist/lib/natparse.c vendor/ipfilter/dist/lib/parse.c vendor/ipfilter/dist/lib/portnum.c vendor/ipfilter/dist/lib/ports.c vendor/ipfilter/dist/lib/ratoi.c vendor/ipfilter/dist/lib/ratoui.c vendor/ipfilter/dist/lib/tcp_flags.c vendor/ipfilter/dist/lib/to_interface.c vendor/ipfilter/dist/man/ipf.1 vendor/ipfilter/dist/man/ipnat.1 vendor/ipfilter/dist/man/man.sed vendor/ipfilter/dist/misc.c vendor/ipfilter/dist/natparse.c vendor/ipfilter/dist/net/.cvsignore vendor/ipfilter/dist/opt.c vendor/ipfilter/dist/opt_inet6.h vendor/ipfilter/dist/parse.c vendor/ipfilter/dist/pcap.h vendor/ipfilter/dist/printnat.c vendor/ipfilter/dist/printstate.c vendor/ipfilter/dist/radix.c vendor/ipfilter/dist/relay.c vendor/ipfilter/dist/rules/.cvsignore vendor/ipfilter/dist/rules/rules.sed vendor/ipfilter/dist/samples/.cvsignore vendor/ipfilter/dist/test/expected/1 vendor/ipfilter/dist/test/expected/10 vendor/ipfilter/dist/test/expected/11 vendor/ipfilter/dist/test/expected/12 vendor/ipfilter/dist/test/expected/14 vendor/ipfilter/dist/test/expected/2 vendor/ipfilter/dist/test/expected/3 vendor/ipfilter/dist/test/expected/4 vendor/ipfilter/dist/test/expected/5 vendor/ipfilter/dist/test/expected/6 vendor/ipfilter/dist/test/expected/7 vendor/ipfilter/dist/test/expected/8 vendor/ipfilter/dist/test/expected/9 vendor/ipfilter/dist/test/expected/expected.sed vendor/ipfilter/dist/test/expected/i19 vendor/ipfilter/dist/test/hextest vendor/ipfilter/dist/test/input/1 vendor/ipfilter/dist/test/input/10 vendor/ipfilter/dist/test/input/11 vendor/ipfilter/dist/test/input/12 vendor/ipfilter/dist/test/input/13 vendor/ipfilter/dist/test/input/14 vendor/ipfilter/dist/test/input/2 vendor/ipfilter/dist/test/input/3 vendor/ipfilter/dist/test/input/4 vendor/ipfilter/dist/test/input/5 vendor/ipfilter/dist/test/input/6 vendor/ipfilter/dist/test/input/7 vendor/ipfilter/dist/test/input/8 vendor/ipfilter/dist/test/input/9 vendor/ipfilter/dist/test/input/input.sed vendor/ipfilter/dist/test/input/ipf6-1 vendor/ipfilter/dist/test/mhtest vendor/ipfilter/dist/test/regress/1 vendor/ipfilter/dist/test/regress/10 vendor/ipfilter/dist/test/regress/11 vendor/ipfilter/dist/test/regress/12 vendor/ipfilter/dist/test/regress/13 vendor/ipfilter/dist/test/regress/14 vendor/ipfilter/dist/test/regress/2 vendor/ipfilter/dist/test/regress/3 vendor/ipfilter/dist/test/regress/4 vendor/ipfilter/dist/test/regress/5 vendor/ipfilter/dist/test/regress/6 vendor/ipfilter/dist/test/regress/7 vendor/ipfilter/dist/test/regress/8 vendor/ipfilter/dist/test/regress/9 vendor/ipfilter/dist/test/regress/ipf6-1 vendor/ipfilter/dist/test/regress/regress.sed vendor/ipfilter/dist/test/test.sed Modified: vendor/ipfilter/dist/.cvsignore vendor/ipfilter/dist/BNF vendor/ipfilter/dist/BSD/Makefile vendor/ipfilter/dist/BSD/Makefile.ipsend vendor/ipfilter/dist/BSD/ipfadm-rcd vendor/ipfilter/dist/BSD/kupgrade vendor/ipfilter/dist/FAQ.FreeBSD vendor/ipfilter/dist/FWTK/ftp-gw.diff vendor/ipfilter/dist/FWTK/fwtk_transparent.diff vendor/ipfilter/dist/FreeBSD-2.2/kinstall vendor/ipfilter/dist/FreeBSD-3/INST.FreeBSD-3 vendor/ipfilter/dist/FreeBSD-3/kinstall vendor/ipfilter/dist/FreeBSD-4.0/INST.FreeBSD-4 vendor/ipfilter/dist/FreeBSD-4.0/kinstall vendor/ipfilter/dist/FreeBSD/kinstall vendor/ipfilter/dist/HISTORY vendor/ipfilter/dist/INSTALL.FreeBSD vendor/ipfilter/dist/INSTALL.IRIX vendor/ipfilter/dist/INSTALL.Linux vendor/ipfilter/dist/INSTALL.Sol2 vendor/ipfilter/dist/Makefile vendor/ipfilter/dist/NAT.FreeBSD vendor/ipfilter/dist/buildsunos vendor/ipfilter/dist/etc/protocols vendor/ipfilter/dist/etc/services vendor/ipfilter/dist/fil.c vendor/ipfilter/dist/ip_auth.c vendor/ipfilter/dist/ip_auth.h vendor/ipfilter/dist/ip_compat.h vendor/ipfilter/dist/ip_fil.c vendor/ipfilter/dist/ip_fil.h vendor/ipfilter/dist/ip_fil_freebsd.c vendor/ipfilter/dist/ip_frag.c vendor/ipfilter/dist/ip_frag.h vendor/ipfilter/dist/ip_ftp_pxy.c vendor/ipfilter/dist/ip_htable.c vendor/ipfilter/dist/ip_htable.h vendor/ipfilter/dist/ip_ipsec_pxy.c vendor/ipfilter/dist/ip_irc_pxy.c vendor/ipfilter/dist/ip_log.c vendor/ipfilter/dist/ip_lookup.c vendor/ipfilter/dist/ip_lookup.h vendor/ipfilter/dist/ip_nat.c vendor/ipfilter/dist/ip_nat.h vendor/ipfilter/dist/ip_netbios_pxy.c vendor/ipfilter/dist/ip_pool.c vendor/ipfilter/dist/ip_pool.h vendor/ipfilter/dist/ip_pptp_pxy.c vendor/ipfilter/dist/ip_proxy.c vendor/ipfilter/dist/ip_proxy.h vendor/ipfilter/dist/ip_raudio_pxy.c vendor/ipfilter/dist/ip_rcmd_pxy.c vendor/ipfilter/dist/ip_rpcb_pxy.c vendor/ipfilter/dist/ip_scan.c vendor/ipfilter/dist/ip_scan.h vendor/ipfilter/dist/ip_state.c vendor/ipfilter/dist/ip_state.h vendor/ipfilter/dist/ip_sync.c vendor/ipfilter/dist/ip_sync.h vendor/ipfilter/dist/ipf.h vendor/ipfilter/dist/ipl.h vendor/ipfilter/dist/iplang/Makefile vendor/ipfilter/dist/iplang/iplang.h vendor/ipfilter/dist/iplang/iplang.tst vendor/ipfilter/dist/iplang/iplang_l.l vendor/ipfilter/dist/iplang/iplang_y.y vendor/ipfilter/dist/ipmon.h vendor/ipfilter/dist/ipsd/Makefile vendor/ipfilter/dist/ipsd/ipsd.c vendor/ipfilter/dist/ipsd/ipsdr.c vendor/ipfilter/dist/ipsd/linux.h vendor/ipfilter/dist/ipsd/sbpf.c vendor/ipfilter/dist/ipsd/sdlpi.c vendor/ipfilter/dist/ipsd/slinux.c vendor/ipfilter/dist/ipsd/snit.c vendor/ipfilter/dist/ipsend/44arp.c vendor/ipfilter/dist/ipsend/Makefile vendor/ipfilter/dist/ipsend/arp.c vendor/ipfilter/dist/ipsend/dlcommon.c vendor/ipfilter/dist/ipsend/ip.c vendor/ipfilter/dist/ipsend/ipresend.c vendor/ipfilter/dist/ipsend/ipsend.5 vendor/ipfilter/dist/ipsend/ipsend.c vendor/ipfilter/dist/ipsend/ipsend.h vendor/ipfilter/dist/ipsend/ipsopt.c vendor/ipfilter/dist/ipsend/iptest.c vendor/ipfilter/dist/ipsend/iptests.c vendor/ipfilter/dist/ipsend/larp.c vendor/ipfilter/dist/ipsend/linux.h vendor/ipfilter/dist/ipsend/lsock.c vendor/ipfilter/dist/ipsend/resend.c vendor/ipfilter/dist/ipsend/sbpf.c vendor/ipfilter/dist/ipsend/sdlpi.c vendor/ipfilter/dist/ipsend/sirix.c vendor/ipfilter/dist/ipsend/slinux.c vendor/ipfilter/dist/ipsend/snit.c vendor/ipfilter/dist/ipsend/sock.c vendor/ipfilter/dist/ipt.h vendor/ipfilter/dist/kmem.h vendor/ipfilter/dist/l4check/Makefile vendor/ipfilter/dist/l4check/l4check.c vendor/ipfilter/dist/lib/Makefile vendor/ipfilter/dist/lib/addicmp.c vendor/ipfilter/dist/lib/addipopt.c vendor/ipfilter/dist/lib/alist_free.c vendor/ipfilter/dist/lib/alist_new.c vendor/ipfilter/dist/lib/bcopywrap.c vendor/ipfilter/dist/lib/binprint.c vendor/ipfilter/dist/lib/buildopts.c vendor/ipfilter/dist/lib/checkrev.c vendor/ipfilter/dist/lib/count4bits.c vendor/ipfilter/dist/lib/count6bits.c vendor/ipfilter/dist/lib/debug.c vendor/ipfilter/dist/lib/facpri.c vendor/ipfilter/dist/lib/facpri.h vendor/ipfilter/dist/lib/fill6bits.c vendor/ipfilter/dist/lib/flags.c vendor/ipfilter/dist/lib/genmask.c vendor/ipfilter/dist/lib/gethost.c vendor/ipfilter/dist/lib/getifname.c vendor/ipfilter/dist/lib/getnattype.c vendor/ipfilter/dist/lib/getport.c vendor/ipfilter/dist/lib/getportproto.c vendor/ipfilter/dist/lib/getproto.c vendor/ipfilter/dist/lib/getsumd.c vendor/ipfilter/dist/lib/hostname.c vendor/ipfilter/dist/lib/icmpcode.c vendor/ipfilter/dist/lib/initparse.c vendor/ipfilter/dist/lib/ionames.c vendor/ipfilter/dist/lib/ipf_dotuning.c vendor/ipfilter/dist/lib/ipft_hx.c vendor/ipfilter/dist/lib/ipft_pc.c vendor/ipfilter/dist/lib/ipft_tx.c vendor/ipfilter/dist/lib/ipoptsec.c vendor/ipfilter/dist/lib/kmem.c vendor/ipfilter/dist/lib/kmem.h vendor/ipfilter/dist/lib/kmemcpywrap.c vendor/ipfilter/dist/lib/kvatoname.c vendor/ipfilter/dist/lib/load_file.c vendor/ipfilter/dist/lib/load_hash.c vendor/ipfilter/dist/lib/load_hashnode.c vendor/ipfilter/dist/lib/load_http.c vendor/ipfilter/dist/lib/load_pool.c vendor/ipfilter/dist/lib/load_poolnode.c vendor/ipfilter/dist/lib/load_url.c vendor/ipfilter/dist/lib/mutex_emul.c vendor/ipfilter/dist/lib/nametokva.c vendor/ipfilter/dist/lib/nat_setgroupmap.c vendor/ipfilter/dist/lib/ntomask.c vendor/ipfilter/dist/lib/optname.c vendor/ipfilter/dist/lib/optprint.c vendor/ipfilter/dist/lib/optprintv6.c vendor/ipfilter/dist/lib/optvalue.c vendor/ipfilter/dist/lib/portname.c vendor/ipfilter/dist/lib/print_toif.c vendor/ipfilter/dist/lib/printactivenat.c vendor/ipfilter/dist/lib/printaps.c vendor/ipfilter/dist/lib/printbuf.c vendor/ipfilter/dist/lib/printfr.c vendor/ipfilter/dist/lib/printfraginfo.c vendor/ipfilter/dist/lib/printhash.c vendor/ipfilter/dist/lib/printhash_live.c vendor/ipfilter/dist/lib/printhashdata.c vendor/ipfilter/dist/lib/printhashnode.c vendor/ipfilter/dist/lib/printhostmap.c vendor/ipfilter/dist/lib/printhostmask.c vendor/ipfilter/dist/lib/printifname.c vendor/ipfilter/dist/lib/printip.c vendor/ipfilter/dist/lib/printlog.c vendor/ipfilter/dist/lib/printmask.c vendor/ipfilter/dist/lib/printnat.c vendor/ipfilter/dist/lib/printpacket.c vendor/ipfilter/dist/lib/printpacket6.c vendor/ipfilter/dist/lib/printpool.c vendor/ipfilter/dist/lib/printpool_live.c vendor/ipfilter/dist/lib/printpooldata.c vendor/ipfilter/dist/lib/printpoolnode.c vendor/ipfilter/dist/lib/printportcmp.c vendor/ipfilter/dist/lib/printproto.c vendor/ipfilter/dist/lib/printsbuf.c vendor/ipfilter/dist/lib/printstate.c vendor/ipfilter/dist/lib/printtqtable.c vendor/ipfilter/dist/lib/printtunable.c vendor/ipfilter/dist/lib/remove_hash.c vendor/ipfilter/dist/lib/remove_hashnode.c vendor/ipfilter/dist/lib/remove_pool.c vendor/ipfilter/dist/lib/remove_poolnode.c vendor/ipfilter/dist/lib/resetlexer.c vendor/ipfilter/dist/lib/rwlock_emul.c vendor/ipfilter/dist/lib/tcpflags.c vendor/ipfilter/dist/lib/tcpoptnames.c vendor/ipfilter/dist/lib/v6ionames.c vendor/ipfilter/dist/lib/v6optvalue.c vendor/ipfilter/dist/lib/var.c vendor/ipfilter/dist/lib/verbose.c vendor/ipfilter/dist/linux.h vendor/ipfilter/dist/man/Makefile vendor/ipfilter/dist/man/ipf.4 vendor/ipfilter/dist/man/ipf.5 vendor/ipfilter/dist/man/ipfilter.4 vendor/ipfilter/dist/man/ipfilter.4.mandoc vendor/ipfilter/dist/man/ipfstat.8 vendor/ipfilter/dist/man/ipftest.1 vendor/ipfilter/dist/man/ipmon.5 vendor/ipfilter/dist/man/ipmon.8 vendor/ipfilter/dist/man/ipnat.4 vendor/ipfilter/dist/man/ipnat.5 vendor/ipfilter/dist/man/ipnat.8 vendor/ipfilter/dist/man/ippool.5 vendor/ipfilter/dist/man/ippool.8 vendor/ipfilter/dist/md5.c vendor/ipfilter/dist/mkfilters vendor/ipfilter/dist/ml_ipl.c vendor/ipfilter/dist/mlf_ipl.c vendor/ipfilter/dist/mlf_rule.c vendor/ipfilter/dist/mlfk_ipl.c vendor/ipfilter/dist/mlfk_rule.c vendor/ipfilter/dist/mlh_rule.c vendor/ipfilter/dist/mli_ipl.c vendor/ipfilter/dist/mln_ipl.c vendor/ipfilter/dist/mls_ipl.c vendor/ipfilter/dist/opts.h vendor/ipfilter/dist/pcap-ipf.h vendor/ipfilter/dist/perl/Ipfanaly.pl vendor/ipfilter/dist/perl/Isbgraph vendor/ipfilter/dist/perl/Services vendor/ipfilter/dist/perl/ipfmeta.pl vendor/ipfilter/dist/perl/logfilter.pl vendor/ipfilter/dist/radix_ipf.h vendor/ipfilter/dist/rules/BASIC_1.FW vendor/ipfilter/dist/rules/BASIC_2.FW vendor/ipfilter/dist/rules/firewall vendor/ipfilter/dist/rules/ipmon.conf vendor/ipfilter/dist/rules/server vendor/ipfilter/dist/samples/proxy.c vendor/ipfilter/dist/samples/relay.c vendor/ipfilter/dist/snoop.h vendor/ipfilter/dist/solaris.c vendor/ipfilter/dist/test/.cvsignore vendor/ipfilter/dist/test/Makefile vendor/ipfilter/dist/test/bpftest vendor/ipfilter/dist/test/dotest vendor/ipfilter/dist/test/expected/f11 vendor/ipfilter/dist/test/expected/f13 vendor/ipfilter/dist/test/expected/f18 vendor/ipfilter/dist/test/expected/i1 vendor/ipfilter/dist/test/expected/i10 vendor/ipfilter/dist/test/expected/i11 vendor/ipfilter/dist/test/expected/i12 vendor/ipfilter/dist/test/expected/i14 vendor/ipfilter/dist/test/expected/i17 vendor/ipfilter/dist/test/expected/i18 vendor/ipfilter/dist/test/expected/i2 vendor/ipfilter/dist/test/expected/i20 vendor/ipfilter/dist/test/expected/i3 vendor/ipfilter/dist/test/expected/i4 vendor/ipfilter/dist/test/expected/i5 vendor/ipfilter/dist/test/expected/i6 vendor/ipfilter/dist/test/expected/i7 vendor/ipfilter/dist/test/expected/i8 vendor/ipfilter/dist/test/expected/i9 vendor/ipfilter/dist/test/expected/in1 vendor/ipfilter/dist/test/expected/in2 vendor/ipfilter/dist/test/expected/in3 vendor/ipfilter/dist/test/expected/in5 vendor/ipfilter/dist/test/expected/in6 vendor/ipfilter/dist/test/expected/ip1 vendor/ipfilter/dist/test/expected/ip2 vendor/ipfilter/dist/test/expected/ipv6.6 vendor/ipfilter/dist/test/expected/l1 vendor/ipfilter/dist/test/expected/l1.b vendor/ipfilter/dist/test/expected/n1 vendor/ipfilter/dist/test/expected/n10 vendor/ipfilter/dist/test/expected/n11 vendor/ipfilter/dist/test/expected/n12 vendor/ipfilter/dist/test/expected/n13 vendor/ipfilter/dist/test/expected/n14 vendor/ipfilter/dist/test/expected/n16 vendor/ipfilter/dist/test/expected/n2 vendor/ipfilter/dist/test/expected/n3 vendor/ipfilter/dist/test/expected/n4 vendor/ipfilter/dist/test/expected/n5 vendor/ipfilter/dist/test/expected/n6 vendor/ipfilter/dist/test/expected/n7 vendor/ipfilter/dist/test/expected/n8 vendor/ipfilter/dist/test/expected/n9 vendor/ipfilter/dist/test/expected/ni10 vendor/ipfilter/dist/test/expected/ni11 vendor/ipfilter/dist/test/expected/ni12 vendor/ipfilter/dist/test/expected/ni19 vendor/ipfilter/dist/test/expected/ni2 vendor/ipfilter/dist/test/expected/ni20 vendor/ipfilter/dist/test/expected/ni21 vendor/ipfilter/dist/test/expected/ni23 vendor/ipfilter/dist/test/expected/ni4 vendor/ipfilter/dist/test/expected/ni5 vendor/ipfilter/dist/test/expected/ni6 vendor/ipfilter/dist/test/expected/ni8 vendor/ipfilter/dist/test/expected/p1 vendor/ipfilter/dist/test/expected/p2 vendor/ipfilter/dist/test/expected/p3 vendor/ipfilter/dist/test/expected/p5 vendor/ipfilter/dist/test/input/f13 vendor/ipfilter/dist/test/input/f24 vendor/ipfilter/dist/test/input/ipv6.1 vendor/ipfilter/dist/test/input/ipv6.3 vendor/ipfilter/dist/test/input/ipv6.6 vendor/ipfilter/dist/test/input/n10 vendor/ipfilter/dist/test/input/n12 vendor/ipfilter/dist/test/input/n16 vendor/ipfilter/dist/test/input/n8 vendor/ipfilter/dist/test/input/n9 vendor/ipfilter/dist/test/input/ni1 vendor/ipfilter/dist/test/input/ni10 vendor/ipfilter/dist/test/input/ni11 vendor/ipfilter/dist/test/input/ni12 vendor/ipfilter/dist/test/input/ni13 vendor/ipfilter/dist/test/input/ni14 vendor/ipfilter/dist/test/input/ni15 vendor/ipfilter/dist/test/input/ni16 vendor/ipfilter/dist/test/input/ni19 vendor/ipfilter/dist/test/input/ni2 vendor/ipfilter/dist/test/input/ni20 vendor/ipfilter/dist/test/input/ni3 vendor/ipfilter/dist/test/input/ni4 vendor/ipfilter/dist/test/input/ni5 vendor/ipfilter/dist/test/input/ni7 vendor/ipfilter/dist/test/input/ni8 vendor/ipfilter/dist/test/input/ni9 vendor/ipfilter/dist/test/intest vendor/ipfilter/dist/test/iptest vendor/ipfilter/dist/test/itest vendor/ipfilter/dist/test/logtest vendor/ipfilter/dist/test/mtest vendor/ipfilter/dist/test/natipftest vendor/ipfilter/dist/test/nattest vendor/ipfilter/dist/test/ptest vendor/ipfilter/dist/test/regress/f13 vendor/ipfilter/dist/test/regress/i11 vendor/ipfilter/dist/test/regress/i12 vendor/ipfilter/dist/test/regress/i14 vendor/ipfilter/dist/test/regress/i17 vendor/ipfilter/dist/test/regress/i18 vendor/ipfilter/dist/test/regress/i2 vendor/ipfilter/dist/test/regress/i21 vendor/ipfilter/dist/test/regress/i7 vendor/ipfilter/dist/test/regress/i8 vendor/ipfilter/dist/test/regress/in2 vendor/ipfilter/dist/test/regress/ipv6.5 vendor/ipfilter/dist/test/regress/ipv6.6 vendor/ipfilter/dist/test/regress/n12 vendor/ipfilter/dist/test/regress/n2 vendor/ipfilter/dist/test/regress/n5 vendor/ipfilter/dist/test/regress/ni1.nat vendor/ipfilter/dist/test/regress/ni13.nat vendor/ipfilter/dist/test/regress/ni14.nat vendor/ipfilter/dist/test/regress/ni2.nat vendor/ipfilter/dist/test/regress/ni4.nat vendor/ipfilter/dist/test/regress/p1.pool vendor/ipfilter/dist/test/regress/p3.ipf vendor/ipfilter/dist/test/test.format vendor/ipfilter/dist/test/vfycksum.pl vendor/ipfilter/dist/todo vendor/ipfilter/dist/tools/BNF.ipf vendor/ipfilter/dist/tools/Makefile vendor/ipfilter/dist/tools/ipf.c vendor/ipfilter/dist/tools/ipf_y.y vendor/ipfilter/dist/tools/ipfcomp.c vendor/ipfilter/dist/tools/ipfs.c vendor/ipfilter/dist/tools/ipfstat.c vendor/ipfilter/dist/tools/ipftest.c vendor/ipfilter/dist/tools/ipmon.c vendor/ipfilter/dist/tools/ipmon_y.y vendor/ipfilter/dist/tools/ipnat.c vendor/ipfilter/dist/tools/ipnat_y.y vendor/ipfilter/dist/tools/ippool.c vendor/ipfilter/dist/tools/ippool_y.y vendor/ipfilter/dist/tools/ipscan_y.y vendor/ipfilter/dist/tools/ipsyncm.c vendor/ipfilter/dist/tools/ipsyncs.c vendor/ipfilter/dist/tools/lex_var.h vendor/ipfilter/dist/tools/lexer.c vendor/ipfilter/dist/tools/lexer.h Changes in other areas also in this revision: Deleted: vendor-sys/ipfilter/dist/netinet/QNX_OCL.txt vendor-sys/ipfilter/dist/netinet/ip_h323_pxy.c vendor-sys/ipfilter/dist/netinet/y vendor-sys/ipfilter/dist/netinet/y.pub Modified: vendor-sys/ipfilter/dist/netinet/IPFILTER.LICENCE vendor-sys/ipfilter/dist/netinet/fil.c vendor-sys/ipfilter/dist/netinet/ip_auth.c vendor-sys/ipfilter/dist/netinet/ip_auth.h vendor-sys/ipfilter/dist/netinet/ip_compat.h vendor-sys/ipfilter/dist/netinet/ip_fil.c vendor-sys/ipfilter/dist/netinet/ip_fil.h vendor-sys/ipfilter/dist/netinet/ip_fil_freebsd.c vendor-sys/ipfilter/dist/netinet/ip_frag.c vendor-sys/ipfilter/dist/netinet/ip_frag.h vendor-sys/ipfilter/dist/netinet/ip_ftp_pxy.c vendor-sys/ipfilter/dist/netinet/ip_htable.c vendor-sys/ipfilter/dist/netinet/ip_htable.h vendor-sys/ipfilter/dist/netinet/ip_ipsec_pxy.c vendor-sys/ipfilter/dist/netinet/ip_irc_pxy.c vendor-sys/ipfilter/dist/netinet/ip_log.c vendor-sys/ipfilter/dist/netinet/ip_lookup.c vendor-sys/ipfilter/dist/netinet/ip_lookup.h vendor-sys/ipfilter/dist/netinet/ip_nat.c vendor-sys/ipfilter/dist/netinet/ip_nat.h vendor-sys/ipfilter/dist/netinet/ip_netbios_pxy.c vendor-sys/ipfilter/dist/netinet/ip_pool.c vendor-sys/ipfilter/dist/netinet/ip_pool.h vendor-sys/ipfilter/dist/netinet/ip_pptp_pxy.c vendor-sys/ipfilter/dist/netinet/ip_proxy.c vendor-sys/ipfilter/dist/netinet/ip_proxy.h vendor-sys/ipfilter/dist/netinet/ip_raudio_pxy.c vendor-sys/ipfilter/dist/netinet/ip_rcmd_pxy.c vendor-sys/ipfilter/dist/netinet/ip_rpcb_pxy.c vendor-sys/ipfilter/dist/netinet/ip_rules.c vendor-sys/ipfilter/dist/netinet/ip_rules.h vendor-sys/ipfilter/dist/netinet/ip_scan.c vendor-sys/ipfilter/dist/netinet/ip_scan.h vendor-sys/ipfilter/dist/netinet/ip_state.c vendor-sys/ipfilter/dist/netinet/ip_state.h vendor-sys/ipfilter/dist/netinet/ip_sync.c vendor-sys/ipfilter/dist/netinet/ip_sync.h vendor-sys/ipfilter/dist/netinet/ipl.h vendor-sys/ipfilter/dist/netinet/mlfk_ipl.c Modified: vendor/ipfilter/dist/.cvsignore ============================================================================== --- vendor/ipfilter/dist/.cvsignore Sun Aug 11 14:15:01 2013 (r254218) +++ vendor/ipfilter/dist/.cvsignore Sun Aug 11 14:28:45 2013 (r254219) @@ -1,28 +1,43 @@ -ipf -sparcv7 -sparcv9 -h -ipf-darren -bugs -ipftest -patches -state -cbits CVS -old -new -netinet -import +amd64 bak -streams +bugs +cbits cvs.diff -threads +cvs.diffs +extern glibc +h hp -windows +i86 +import +ipf +ipf-darren +ipfstat +ipftest ipnat -opt_inet6.h ippool ipmon -ip_rules.c +ipscan +ipsyncm +ipsyncs ip_rules.h +ip_rules.c +net +netinet +new +old +opt_bpf.h +opt_inet6.h +opt_pfil.h +patches +sparcv7 +sparcv9 +state +streams +threads +windows +SunOS5/i386-5.10 +*.o +*/*.o +*/*/*.o Added: vendor/ipfilter/dist/4bsd/conf.c.diffs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/conf.c.diffs Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,41 @@ +*** conf.c.orig Wed May 10 23:38:08 1995 +--- conf.c Thu May 11 00:33:19 1995 +*************** +*** 169,174 **** +--- 169,187 ---- + #endif + cdev_decl(lkm); + ++ /* open, close, read, ioctl */ ++ cdev_decl(ipl); ++ #define cdev_gen_ipf(c,n) { \ ++ dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \ ++ (dev_type_write((*))) enodev, dev_init(c,n,ioctl), \ ++ (dev_type_stop((*))) nullop, 0, (dev_type_select((*))) enodev, \ ++ (dev_type_mmap((*))) enodev, 0 } ++ #ifdef IPFILTER ++ #define NIPF 1 ++ #else ++ #define NIPF 0 ++ #endif ++ + struct cdevsw cdevsw[] = + { + cdev_cn_init(1,cn), /* 0: virtual console */ +*************** +*** 232,238 **** + cdev_notdef(), /* 56 */ + cdev_notdef(), /* 57 */ + cdev_disk_init(NCD,cd), /* 58 SCSI CD-ROM */ +! cdev_notdef(), /* 59 */ + cdev_notdef(), /* 60 */ + cdev_notdef(), /* 61 */ + cdev_notdef(), /* 62 */ +--- 245,251 ---- + cdev_notdef(), /* 56 */ + cdev_notdef(), /* 57 */ + cdev_disk_init(NCD,cd), /* 58 SCSI CD-ROM */ +! cdev_gen_ipf(NIPF,ipl), /* 59 */ + cdev_notdef(), /* 60 */ + cdev_notdef(), /* 61 */ + cdev_notdef(), /* 62 */ Added: vendor/ipfilter/dist/4bsd/files.diffs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/files.diffs Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,23 @@ +*** files.orig Sat Apr 29 19:59:31 1995 +--- files Sun Apr 23 17:54:18 1995 +*************** +*** 180,185 **** +--- 180,197 ---- + netinet/tcp_timer.c optional inet + netinet/tcp_usrreq.c optional inet + netinet/udp_usrreq.c optional inet ++ netinet/ip_fil.c optional ipfilter requires inet ++ netinet/fil.c optional ipfilter requires inet ++ netinet/ip_nat.c optional ipfilter requires inet ++ netinet/ip_auth.c optional ipfilter requires inet ++ netinet/ip_frag.c optional ipfilter requires inet ++ netinet/ip_state.c optional ipfilter requires inet ++ netinet/ip_proxy.c optional ipfilter requires inet ++ netinet/ip_log.c optional ipfilter requires inet ++ netinet/ip_scan.c optional ipfilter requires inet ++ netinet/ip_sync.c optional ipfilter requires inet ++ netinet/ip_pool.c optional ipfilter_pool requires inet ++ netinet/ip_rules.c optional ipfilter_compiled requires ipfilter + netiso/clnp_debug.c optional iso + netiso/clnp_er.c optional iso + netiso/clnp_frag.c optional iso Added: vendor/ipfilter/dist/4bsd/files.newconf.diffs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/files.newconf.diffs Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,23 @@ +*** files.newconf.orig Sat Apr 29 20:00:02 1995 +--- files.newconf Sun Apr 23 17:53:58 1995 +*************** +*** 222,227 **** +--- 222,239 ---- + file netinet/tcp_timer.c inet + file netinet/tcp_usrreq.c inet + file netinet/udp_usrreq.c inet ++ file netinet/ip_fil.c ipfilter ++ file netinet/fil.c ipfilter ++ file netinet/ip_nat.c ipfilter ++ file netinet/ip_frag.c ipfilter ++ file netinet/ip_state.c ipfilter ++ file netinet/ip_auth.c ipfilter ++ file netinet/ip_proxy.c ipfilter ++ file netinet/ip_log.c ipfilter ++ file netinet/ip_scan.c ipfilter ++ file netinet/ip_sync.c ipfilter ++ file netinet/ip_pool.c ipfilter_pool ++ file netinet/ip_rules.c ipfilter_compiled + file netiso/clnp_debug.c iso + file netiso/clnp_er.c iso + file netiso/clnp_frag.c iso Added: vendor/ipfilter/dist/4bsd/files.oldconf.diffs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/files.oldconf.diffs Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,23 @@ +*** files.oldconf.orig Sat Apr 29 19:59:31 1995 +--- files.oldconf Sun Apr 23 17:54:18 1995 +*************** +*** 180,185 **** +--- 180,197 ---- + netinet/tcp_timer.c optional inet + netinet/tcp_usrreq.c optional inet + netinet/udp_usrreq.c optional inet ++ netinet/ip_fil.c optional ipfilter requires inet ++ netinet/fil.c optional ipfilter requires inet ++ netinet/ip_nat.c optional ipfilter requires inet ++ netinet/ip_frag.c optional ipfilter requires inet ++ netinet/ip_state.c optional ipfilter requires inet ++ netinet/ip_proxy.c optional ipfilter requires inet ++ netinet/ip_log.c optional ipfilter requires inet ++ netinet/ip_auth.c optional ipfilter requires inet ++ netinet/ip_scan.c optional ipfilter requires inet ++ netinet/ip_sync.c optional ipfilter requires inet ++ netinet/ip_pool.c optional ipfilter_pool requires inet ++ netinet/ip_rules.c optional ipfilter_compiled requires ipfilter + netiso/clnp_debug.c optional iso + netiso/clnp_er.c optional iso + netiso/clnp_frag.c optional iso Added: vendor/ipfilter/dist/4bsd/filez.diffs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/filez.diffs Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,23 @@ +*** files.orig Sat Apr 29 20:00:02 1995 +--- files Sun Apr 23 17:53:58 1995 +*************** +*** 222,227 **** +--- 222,239 ---- + file netinet/tcp_timer.c inet + file netinet/tcp_usrreq.c inet + file netinet/udp_usrreq.c inet ++ file netinet/ip_fil.c ipfilter ++ file netinet/fil.c ipfilter ++ file netinet/ip_nat.c ipfilter ++ file netinet/ip_frag.c ipfilter ++ file netinet/ip_state.c ipfilter ++ file netinet/ip_proxy.c ipfilter ++ file netinet/ip_auth.c ipfilter ++ file netinet/ip_log.c ipfilter ++ file netinet/ip_scan.c ipfilter ++ file netinet/ip_sync.c ipfilter ++ file netinet/ip_pool.c ipfilter_pool ++ file netinet/ip_rules.c ipfilter_compiled + file netiso/clnp_debug.c iso + file netiso/clnp_er.c iso + file netiso/clnp_frag.c iso Added: vendor/ipfilter/dist/4bsd/ip_input.c.diffs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/ip_input.c.diffs Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,38 @@ +*** ip_input.c.orig Sun Apr 23 17:17:05 1995 +--- ip_input.c Sun Apr 23 17:30:03 1995 +*************** +*** 80,85 **** +--- 80,90 ---- + int ipqmaxlen = IFQ_MAXLEN; + struct in_ifaddr *in_ifaddr; /* first inet address */ + struct ifqueue ipintrq; ++ #if defined(IPFILTER) || defined(IPFILTER_LKM) ++ int fr_check __P((struct ip *, int, struct ifnet *, int, struct mbuf *)); ++ int (*fr_checkp) __P((struct ip *, int, struct ifnet *, int, struct mbuf *)); ++ #endif + + /* + * We need to save the IP options in case a protocol wants to respond +*************** +*** 225,231 **** +--- 233,252 ---- + m_adj(m, ip->ip_len - m->m_pkthdr.len); + } + ++ #if defined(IPFILTER) || defined(IPFILTER_LKM) + /* ++ * Check if we want to allow this packet to be processed. ++ * Consider it to be bad if not. ++ */ ++ if (fr_checkp) { ++ struct mbuf *m1 = m; ++ ++ if ((*fr_checkp)(ip, hlen, m->m_pkthdr.rcvif, 0, &m1) || !m1) ++ goto next; ++ ip = mtod(m = m1, struct ip *); ++ } ++ #endif ++ /* + * Process options and, if not destined for us, + * ship it on. ip_dooptions returns 1 when an + * error was detected (causing an icmp message Added: vendor/ipfilter/dist/4bsd/ip_output.c.diffs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/ip_output.c.diffs Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,36 @@ +*** ip_output.c.orig Sun Apr 23 17:17:05 1995 +--- ip_output.c Sun Apr 23 17:32:11 1995 +*************** +*** 60,65 **** +--- 60,69 ---- + static struct mbuf *ip_insertoptions __P((struct mbuf *, struct mbuf *, int *)); + static void ip_mloopback + __P((struct ifnet *, struct mbuf *, struct sockaddr_in *)); ++ #if defined(IPFILTER_LKM) || defined(IPFILTER) ++ extern int fr_check __P((struct ip *, int, struct ifnet *, int, struct mbuf *)); ++ extern int (*fr_checkp) __P((struct ip *, int, struct ifnet *, int, struct mbuf *)); ++ #endif + + /* + * IP output. The packet in mbuf chain m contains a skeletal IP +*************** +*** 277,282 **** +--- 284,303 ---- + } else + m->m_flags &= ~M_BCAST; + + sendit: ++ #if defined(IPFILTER) || defined(IPFILTER_LKM) ++ /* ++ * looks like most checking has been done now...do a filter check ++ */ ++ if (fr_checkp) { ++ struct mbuf *m1 = m; ++ ++ if ((error = (*fr_checkp)(ip, hlen, ifp, 1, &m1)) || !m1) ++ goto done; ++ ip = mtod(m = m1, struct ip *); ++ } ++ #endif + /* + * If small enough for interface, can just send directly. Added: vendor/ipfilter/dist/4bsd/kinstall ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/kinstall Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,55 @@ +#!/bin/csh -f +# +set dir=`pwd` +set karch=`uname -m` +set archdir="/sys/arch/$karch" +set confdir="$archdir/conf" + +if ( $dir =~ *fil/4bsd ) cd .. +if ($0 =~ *kinstall) then + echo "Installing ip_fil.c and ip_fil.h" + cp ip_fil.{c,h} /sys/netinet + echo "Patching $archdir/$karch/conf.c" + cat conf.c.diffs | (cd $archdir/$karch; patch) +endif +echo "Patching ip_input.c and ip_output.c" +cat 4bsd/ip_{in,out}put.c.diffs | (cd /sys/netinet; patch) + +if ( -f /sys/conf/files.newconf ) then + echo "Patching /sys/conf/files.newconf" + cat 4bsd/files.newconf.diffs | (cd /sys/conf; patch) + echo "Patching /sys/conf/files" + cat 4bsd/files.diffs | (cd /sys/conf; patch) +endif +if ( -f /sys/conf/files.oldconf ) then + echo "Patching /sys/conf/files.oldconf" + cat 4bsd/files.oldconf.diffs | (cd /sys/conf; patch) + echo "Patching /sys/conf/files" + cat 4bsd/filez.diffs | (cd /sys/conf; patch) +endif + +set config=`/bin/ls -1t $confdir [0-9A-Z_]* | head -1` + +echo -n "Kernel configuration to update [$config] " +set newconfig=$< +if ( "$newconfig" != "" ) then + set config="$confdir/$newconfig" +else + set newconfig=$config +endif +echo "Re-config'ing $newconfig..." +if ( -f $confdir/$newconfig ) then + mv $confdir/$newconfig $confdir/$newconfig.bak +endif +if ( -d $archdir/$newconfig ) then + mv $archdir/$newconfig $archdir/$newconfig.bak +endif +if ($0 =~ *kinstall) then + awk '{print $0;if($2=="INET"){print"options IPFILTER"}}}' \ + $confdir/$newconfig.bak > $confdir/$newconfig +else + awk '{print $0;if($2=="INET"){print"options IPFILTER_LKM"}}' \ + $confdir/$newconfig.bak > $confdir/$newconfig +endif +echo 'You will now need to run "config" and build a new kernel.' +exit 0 Added: vendor/ipfilter/dist/AIX/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/AIX/Makefile Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,401 @@ +# +# Copyright (C) 2012 by Darren Reed. +# +# See the IPFILTER.LICENCE file for details on licencing. +# +BINDEST=/usr/sbin +SBINDEST=/sbin +MANDIR=/usr/share/man +CC=cc +CFLAGS=-g -I$(TOP) +DEBUG=-O3 +# +# For AIX 5.3 +# +CPU=`uname -p` +INC=-I/usr/include +DEF=-D$(CPU) -D__$(CPU)__ -DINET -DKERNEL -D_KERNEL $(INC) +LKM=ipf +DLKM= +OBJ=. +TOP=.. +HERE=AIX/$(OSREV) +AIX=`uname -v` +DEST=. +MFLAGS="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)" \ + 'CFLAGS=$(CFLAGS)' "IPFLKM=$(IPFLKM)" \ + "IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \ + "DEBUG=$(DEBUG)" "DCPU=$(CPU)" "CPUDIR=$(CPUDIR)" \ + "LOOKUP=$(LOOKUP)" "XID=$(XID)" "SCAN=$(SCAN)" "ALLOPTS=$(ALLOPTS)" +LIBS=-q$(BITS) -L. -lipf +CCARGS=$(DEBUG) $(CFLAGS) -I. -DAIX=$(AIX) -q$(BITS) +EXTRA=$(ALLOPTS) +MILLI=`../bootbits.sh` +FIXMILLI=-D_H_STRING=1 -Dbzero=bzero$(MILLI) \ +-Dmemcmp=memcmp$(MILLI) \ +-Dmemcpy=memcpy$(MILLI) \ +-Dmemccpy=memccpy$(MILLI) \ +-Dmemset=memset$(MILLI) \ +-Dmemmove=memmove$(MILLI) \ +-Dfill=fill$(MILLI) \ +-Dstrstr=strstr$(MILLI) +# +########## ########## ########## ########## ########## ########## ########## +# +CP=/bin/cp +RM=/bin/rm +CHMOD=/bin/chmod +INSTALL=$(TOP)/bsdinstall +# +MODOBJS=ip_fil.o fil.o md5.o ip_nat.o ip_frag.o ip_state.o ip_nat6.o \ + ip_proxy.o ip_auth.o ip_log.o ip_pool.o ip_htable.o ip_lookup.o \ + ip_sync.o ip_scan.o ip_rules.o +DFLAGS=$(DEBUG) -DAIX=$(AIX) $(IPFLKM) $(IPFLOG) $(DEF) $(CFLAGS) $(DLKM) \ + $(FIXMILLI) $(IPFBPF) $(LOOKUP) $(XID) -I. +IPF=ipf.o ipfcomp.o ipf_y.o ipf_l.o +IPT=ipftest.o fil_u.o ip_frag_u.o ip_state_u.o ip_nat_u.o ip_nat6_u.o \ + ip_proxy_u.o ip_auth_u.o ip_fil_u.o ip_sync_u.o ip_scan_u.o \ + ip_log_u.o ip_pool_u.o ip_htable_u.o ip_lookup_u.o ip_rules_u.o \ + ipf_y.o ipf_l.o ipnat_y.o ipnat_l.o ippool_y.o ippool_l.o \ + md5_u.o radix_ipf_u.o +IPNAT=ipnat.o ipnat_y.o ipnat_l.o +IPMON=ipmon.o ipmon_y.o ipmon_l.o +IPPOOL=ippool_y.o ippool_l.o kmem.o ippool.o +FILS=ipfstat.o +LIBSRC=$(TOP)/lib +RANLIB=ranlib +AROPTS=-X $(BITS) crs +TOOL=$(TOP)/tools + +include $(TOP)/lib/Makefile + +build all: ./libipf.a ipf.exe ipfs ipfstat ipftest ipmon \ + ipnat ippool ipscan ipsyncm ipsyncs cfg_ipf $(LKM) + -sh -c 'for i in ipftest ipmon ippool ipnat ipscan ipsyncm ipsyncs; do /bin/rm -f $(TOP)/$$i; ln -s `pwd`/$$i $(TOP); done' + -ln -s `pwd`/ipf.exe $(TOP)/ipf + +ipfstat: $(FILS) ./libipf.a + $(CC) $(CCARGS) $(STATETOP_CFLAGS) $(STATETOP_INC) $(FILS) \ + -o $@ $(LIBS) $(STATETOP_LIB) + +ipf.exe: $(IPF) ./libipf.a + $(CC) $(CCARGS) $(IPF) -o $@ $(LIBS) $(LIBBPF) + +ipftest: $(IPT) ./libipf.a + $(CC) $(CCARGS) $(IPT) -o $@ $(LIBS) $(LIBBPF) + +ipnat: $(IPNAT) ./libipf.a + $(CC) $(CCARGS) $(IPNAT) -o $@ $(LIBS) + +ipfs: ipfs.o ./libipf.a + $(CC) $(CCARGS) ipfs.o -o $@ $(LIBS) + +ipsyncm: ipsyncm.o ./libipf.a + $(CC) $(CCARGS) ipsyncm.o -o $@ $(LIBS) + +ipsyncs: ipsyncs.o ./libipf.a + $(CC) $(CCARGS) ipsyncs.o -o $@ $(LIBS) + +ipsyncm.o: $(TOOL)/ipsyncm.c $(TOP)/ip_sync.h + $(CC) $(CCARGS) -c $(TOOL)/ipsyncm.c -o $@ + +ipsyncs.o: $(TOOL)/ipsyncs.c $(TOP)/ip_sync.h + $(CC) $(CCARGS) -c $(TOOL)/ipsyncs.c -o $@ + +tests: + (cd test; make ) + +ipfstat.o: $(TOOL)/ipfstat.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_frag.h \ + $(TOP)/ip_compat.h $(TOP)/ip_state.h $(TOP)/ip_nat.h + $(CC) $(CCARGS) $(STATETOP_CFLAGS) $(STATETOP_INC) \ + -c $(TOOL)/ipfstat.c -o $@ + +ipfs.o: $(TOOL)/ipfs.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_state.h \ + $(TOP)/ip_nat.h + $(CC) $(CCARGS) -c $(TOOL)/ipfs.c -o $@ + +fil_u.o: $(TOP)/fil.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_compat.h + $(CC) $(CCARGS) $(EXTRA) $(FIXRADIX) $(IPFBPF) -c $(TOP)/fil.c -o $@ + +ipf.o: $(TOOL)/ipf.c $(TOP)/ip_fil.h $(TOP)/ipf.h + $(CC) $(CCARGS) -c $(TOOL)/ipf.c -o $@ + +ipf_y.o: ipf_y.c ipf_y.h $(TOP)/ipf.h ipf_l.h + $(CC) $(CCARGS) $(IPFBPF) -c ipf_y.c -o $@ + +ipf_l.o: ipf_l.c ipf_y.h $(TOP)/ipf.h ipf_l.h + $(CC) $(CCARGS) -I. -c ipf_l.c -o $@ + +ipf_y.h ipf_y.c: $(TOOL)/ipf_y.y $(TOP)/ip_pool.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ipf_l.c ipf_l.h: $(TOOL)/lexer.c $(TOP)/ipf.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ipfcomp.o: $(TOOL)/ipfcomp.c $(TOP)/ip_fil.h $(TOP)/ipf.h + $(CC) $(CCARGS) -c $(TOOL)/ipfcomp.c -o $@ + +ipftest.o: $(TOOL)/ipftest.c $(TOP)/ip_fil.h $(TOP)/ipt.h $(TOP)/ipf.h + $(CC) $(CCARGS) -c $(TOOL)/ipftest.c -o $@ + +ipnat.o: $(TOOL)/ipnat.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_nat.h + $(CC) $(CCARGS) -c $(TOOL)/ipnat.c -o $@ + +ipnat_y.o: ipnat_y.c ipnat_y.h $(TOP)/ip_fil.h $(TOP)/ip_compat.h \ + $(TOP)/ipf.h $(TOP)/ip_nat.h ipnat_l.h + $(CC) $(CCARGS) -c ipnat_y.c -o $@ + +ipnat_l.o: ipnat_l.c ipnat_y.h $(TOP)/ip_fil.h $(TOP)/ip_compat.h \ + $(TOP)/ipf.h $(TOP)/ip_nat.h ipnat_l.h + $(CC) $(CCARGS) -I. -c ipnat_l.c -o $@ + +ipnat_y.h ipnat_y.c: $(TOOL)/ipnat_y.y $(TOP)/ip_nat.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ipnat_l.c ipnat_l.h: $(TOOL)/lexer.c $(TOP)/ip_nat.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ip_rules.c: $(TOP)/rules/ip_rules $(TOP)/tools/ipfcomp.c ipf.exe + ./ipf.exe -cc -nf $(TOP)/rules/ip_rules + +$(TOP)/ip_rules.h: ip_rules.c + if [ ! -f $(TOP)/ip_rules.h ] ; then \ + /bin/mv -f ip_rules.h $(TOP); \ + else \ + touch $(TOP)/ip_rules.h; \ + fi + +ip_nat_u.o: $(TOP)/ip_nat.c $(TOP)/ip_nat.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_nat.c -o $@ + +ip_nat6_u.o: $(TOP)/ip_nat6.c $(TOP)/ip_nat.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_nat6.c -o $@ + +ip_proxy_u.o: $(TOP)/ip_proxy.c $(TOP)/ip_proxy.h $(TOP)/ip_compat.h \ + $(TOP)/ip_ftp_pxy.c $(TOP)/ip_rcmd_pxy.c $(TOP)/ip_raudio_pxy.c \ + $(TOP)/ip_rpcb_pxy.c $(TOP)/ip_ipsec_pxy.c $(TOP)/ip_nat.h \ + $(TOP)/ip_fil.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_proxy.c -o $@ + +ip_frag_u.o: $(TOP)/ip_frag.c $(TOP)/ip_frag.h $(TOP)/ip_compat.h \ + $(TOP)/ip_fil.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_frag.c -o $@ + +ip_state_u.o: $(TOP)/ip_state.c $(TOP)/ip_state.h $(TOP)/ip_compat.h \ + $(TOP)/ip_fil.h $(TOP)/ip_nat.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_state.c -o $@ + +ip_auth_u.o: $(TOP)/ip_auth.c $(TOP)/ip_auth.h $(TOP)/ip_compat.h \ + $(TOP)/ip_fil.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_auth.c -o $@ + +ip_fil_u.o: $(TOP)/ip_fil.c $(TOP)/ip_fil.h $(TOP)/ip_compat.h + $(CC) $(CCARGS) $(EXTRA) $(FIXRADIX) -c $(TOP)/ip_fil.c -o $@ + +ip_scan_u.o: $(TOP)/ip_scan.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_scan.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_scan.c -o $@ + +ip_sync_u.o: $(TOP)/ip_sync.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_sync.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_sync.c -o $@ + +ip_rules_u.o: ip_rules.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h $(TOP)/ip_rules.h + $(CC) $(CCARGS) $(EXTRA) -c ip_rules.c -o $@ + +ip_log_u.o: $(TOP)/ip_log.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_log.c -o $@ + +ip_pool_u.o: $(TOP)/ip_pool.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_pool.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_pool.c -o $@ + +ip_htable_u.o: $(TOP)/ip_htable.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_htable.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_htable.c -o $@ + +ip_lookup_u.o: $(TOP)/ip_lookup.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_lookup.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_lookup.c -o $@ + +bpf_filter_u.o: $(TOP)/bpf_filter.c $(TOP)/pcap-ipf.h $(TOP)/bpf-ipf.h + $(CC) $(CCARGS) -c $(TOP)/bpf_filter.c -o $@ + +md5_u.o: $(TOP)/md5.c $(TOP)/md5.h + $(CC) $(CCARGS) -c $(TOP)/md5.c -o $@ + +radix_ipf_u.o: $(TOP)/radix_ipf.c $(TOP)/radix_ipf.h + $(CC) $(CCARGS) -c $(TOP)/radix_ipf.c -o $@ + +cfg_ipf: cfg_ipf.o +# ld -o cfg_ipf cfg_ipf.o -L/usr/lib/ia64l32 -L/usr/ccs/lib/ia64l32 \ +# -lodm -lrts -lcfg + $(CC) $(CCARGS) -o cfg_ipf cfg_ipf.o -lodm -lrts -lcfg + +cfg_ipf.o: ../aix_cfg_ipf.c + $(CC) -D_ALL_SOURCE -D_KERNEL $(CCARGS) -c ../aix_cfg_ipf.c -o $@ + +$(LKM): $(MODOBJS) ../ipfkext.exp /lib/kernex.exp /lib/syscalls.exp + ld -G -eipfconfig -bimport:/lib/syscalls.exp -bimport:/lib/kernex.exp \ + -bimport:/lib/kernex.exp -bimport:/lib/netinet.exp \ + -bimport:/lib/statcmd.exp \ + -lcsys -lsys -bexport:../ipfkext.exp -bmap:ipfkext.map \ + $(MODOBJS) -o $(LKM)32 + /bin/rm -f $(LKM) + ar -X $(BITS) cq $(LKM) $(LKM)32 + +fil.o: $(TOP)/fil.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_compat.h $(TOP)/ipl.h + $(CC) $(POLICY) $(DFLAGS) $(IPFBPF) -c $(TOP)/fil.c -o $@ + +ip_nat.o: $(TOP)/ip_nat.c $(TOP)/ip_nat.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h + $(CC) $(DFLAGS) -c $(TOP)/ip_nat.c -o $@ + +ip_nat6.o: $(TOP)/ip_nat6.c $(TOP)/ip_nat.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h + $(CC) $(DFLAGS) -c $(TOP)/ip_nat6.c -o $@ + +ip_frag.o: $(TOP)/ip_frag.c $(TOP)/ip_frag.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h + $(CC) $(DFLAGS) -c $(TOP)/ip_frag.c -o $@ + +ip_state.o: $(TOP)/ip_state.c $(TOP)/ip_state.h $(TOP)/ip_compat.h \ + $(TOP)/ip_fil.h $(TOP)/ip_nat.h + $(CC) $(DFLAGS) -DIPSTATE_SIZE=127 -c $(TOP)/ip_state.c -o $@ + +ip_proxy.o: $(TOP)/ip_proxy.c $(TOP)/ip_proxy.h $(TOP)/ip_compat.h \ + $(TOP)/ip_ftp_pxy.c $(TOP)/ip_rcmd_pxy.c $(TOP)/ip_raudio_pxy.c \ + $(TOP)/ip_rpcb_pxy.c $(TOP)/ip_ipsec_pxy.c $(TOP)/ip_nat.h \ + $(TOP)/ip_nat.h $(TOP)/ip_fil.h + $(CC) $(DFLAGS) -c $(TOP)/ip_proxy.c -o $@ + +ip_auth.o: $(TOP)/ip_auth.c $(TOP)/ip_auth.h $(TOP)/ip_compat.h \ + $(TOP)/ip_fil.h + $(CC) $(DFLAGS) -c $(TOP)/ip_auth.c -o $@ + +ip_fil.o: $(TOP)/ip_fil_aix.c $(TOP)/ip_fil.h $(TOP)/ip_compat.h $(TOP)/ip_nat.h + $(CC) $(DFLAGS) $(COMPIPF) -c $(TOP)/ip_fil_aix.c -o $@ + +ip_log.o: $(TOP)/ip_log.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h + $(CC) $(DFLAGS) -c $(TOP)/ip_log.c -o $@ + +ip_scan.o: $(TOP)/ip_scan.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h $(TOP)/ip_scan.h + $(CC) $(DFLAGS) -c $(TOP)/ip_scan.c -o $@ + +ip_sync.o: $(TOP)/ip_sync.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h $(TOP)/ip_sync.h + $(CC) $(DFLAGS) -c $(TOP)/ip_sync.c -o $@ + +radix_ipf.o: $(TOP)/radix_ipf.c $(TOP)/radix_ipf.h + $(CC) $(DFLAGS) -c $(TOP)/radix_ipf.c -o $@ + +ip_pool.o: $(TOP)/ip_pool.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_pool.h $(TOP)/radix_ipf.h + $(CC) $(DFLAGS) $(FIXRADIX) -c $(TOP)/ip_pool.c -o $@ + +ip_htable.o: $(TOP)/ip_htable.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_htable.h + $(CC) $(DFLAGS) -c $(TOP)/ip_htable.c -o $@ + +ip_lookup.o: $(TOP)/ip_lookup.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_lookup.h + $(CC) $(DFLAGS) $(FIXRADIX) -c $(TOP)/ip_lookup.c -o $@ + +ip_rules.o: ip_rules.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h $(TOP)/ip_rules.h + $(CC) -I. $(DFLAGS) -c ip_rules.c -o $@ + +ip_rulesx.o: ip_rules.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h $(TOP)/ip_rules.h + $(CC) -I. -DIPFILTER_COMPILED $(DFLAGS) -c ip_rules.c -o $@ + +#aix.o: $(TOP)/aix.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h +# $(CC) $(DFLAGS) -c $(TOP)/aix.c -o $@ + +md5.o: $(TOP)/md5.c $(TOP)/md5.h + $(CC) $(DFLAGS) -c $(TOP)/md5.c -o $@ + +ipmon: $(IPMON) ./libipf.a + $(CC) $(CCARGS) $(LOGFAC) $(IPMON) -o $@ $(LIBS) -ll + +ipmon.o: $(TOOL)/ipmon.c $(TOP)/ipmon.h + $(CC) $(CCARGS) $(LOGFAC) -c $(TOOL)/ipmon.c -o $@ + +ipmon_y.o: ipmon_y.c ipmon_y.h $(TOP)/ipmon.h ipmon_l.h + $(CC) $(CCARGS) -c ipmon_y.c -o $@ + +ipmon_l.o: ipmon_l.c ipmon_y.h $(TOP)/ipmon.h ipmon_l.h + $(CC) $(CCARGS) -I. -c ipmon_l.c -o $@ + +ipmon_y.h ipmon_y.c: $(TOOL)/ipmon_y.y $(TOP)/ipmon.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ipmon_l.c ipmon_l.h: $(TOOL)/lexer.c $(TOP)/ipmon.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ipscan: ipscan_y.o ipscan_l.o + $(CC) $(DEBUG) ipscan_y.o ipscan_l.o -o $@ -ll $(LIBS) + +ipscan_y.o: ipscan_y.c ipscan_y.h $(TOP)/ip_scan.h ipscan_l.h + $(CC) $(CCARGS) -c ipscan_y.c -o $@ + +ipscan_l.o: ipscan_l.c ipscan_y.h $(TOP)/ip_scan.h ipscan_l.h + $(CC) $(CCARGS) -I. -c ipscan_l.c -o $@ + +ipscan_y.h ipscan_y.c: $(TOOL)/ipscan_y.y $(TOP)/ip_scan.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ipscan_l.c ipscan_l.h: $(TOOL)/lexer.c $(TOP)/ip_scan.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ippool: $(IPPOOL) + $(CC) $(DEBUG) -I. $(CFLAGS) $(IPPOOL) -o $@ $(LIBS) -ll + +ippool.o: $(TOOL)/ippool.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_pool.h + $(CC) $(CCARGS) -c $(TOOL)/ippool.c -o $@ + +ippool_y.o: ippool_y.c ippool_y.h $(TOP)/ip_pool.h ippool_l.h + $(CC) $(CCARGS) -c ippool_y.c -o $@ + +ippool_l.o: ippool_l.c ippool_y.h $(TOP)/ip_pool.h ippool_l.h + $(CC) $(CCARGS) -I. -c ippool_l.c -o $@ + +ippool_y.h ippool_y.c: $(TOOL)/ippool_y.y $(TOP)/ip_pool.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ippool_l.c ippool_l.h: $(TOOL)/lexer.c $(TOP)/ip_pool.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +.y.c: + +.l.c: + +clean: + ${RM} -f ../ipf.exe ../ipnat ../ipmon ../ippool ../ipftest + ${RM} -f ../ipscan ../ipsyncm ../ipsyncs cfg_ipf + ${RM} -f *.core *.o *.a *.o.d + ${RM} -f fils ipf.exe ipfstat ipftest ipmon if_ipl ipnat + ${RM} -f $(LKM) ioconf.h *.ko setdef1.c setdef0.c setdefs.h + ${RM} -f ip_fil.c ipf_l.c ipf_y.c ipf_y.h ipf_l.h + ${RM} -f ipscan ipscan_y.c ipscan_y.h ipscan_l.c ipscan_l.h + ${RM} -f ippool ippool_y.c ippool_y.h ippool_l.c ippool_l.h + ${RM} -f ipnat_y.c ipnat_y.h ipnat_l.c ipnat_l.h + ${RM} -f ipmon_y.c ipmon_y.h ipmon_l.c ipmon_l.h + ${RM} -f ipscan ipscan_y.c ipscan_y.h ipscan_l.c y.tab.? lex.yy.c ipfs + ${RM} -f ipsyncm ipsyncs ip_rules.c ip_rules.h + + ${MAKE} -f Makefile.ipsend ${MFLAGS} clean + -(for i in *; do \ + if [ -d $${i} -a -f $${i}/Makefile ] ; then \ + cd $${i}; (make TOP=../.. clean); cd ..; \ + rm $${i}/Makefile $${i}/Makefile.ipsend; \ + rmdir $${i}; \ + fi \ + done) + +install: + cp cfg_ipf /usr/lib/methods + cp $(LKM) /usr/lib/drivers/ipf + -for i in ipfs ipnat ipscan ipfstat; do \ + $(INSTALL) -s -c -g system -m 755 -o root $$i $(SBINDEST); \ + done + $(INSTALL) -s -c -g system -m 755 -o root ipf.exe $(SBINDEST)/ipf + -for i in ipmon ipftest ipsyncs ipsyncm; do \ + $(INSTALL) -s -c -g system -m 755 -o root $$i $(BINDEST); \ + done + (cd $(TOP)/man; make INSTALL=../bsdinstall MANDIR=$(MANDIR) install; cd $(TOP)) + sync Added: vendor/ipfilter/dist/AIX/Makefile.ipsend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/AIX/Makefile.ipsend Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,78 @@ +MFLAGS="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)" \ + "CC=$(CC)" "CFLAGS=$(CFLAGS)" "DEBUG=$(DEBUG)" \ + "IPFLKM=$(IPFLKM)" "IPFLOG=$(IPFLOG)" \ + "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" "LOOKUP=$(LOOKUP)" +FIXRADIX=-Dradix_node=ipf_radix_node -Dradix_node_head=ipf_radix_node_head +OBJS=ipsend.o ip.o ipsopt.o iplang_y.o iplang_l.o +IPFTO=ipft_ef.o ipft_hx.o ipft_pc.o ipft_sn.o ipft_td.o ipft_tx.o +ROBJS=ipresend.o ip.o resend.o +TOBJS=iptest.o iptests.o ip.o +UNIXOBJS=dlcommon.o sbpf.o arp.o sock.o +OBJ=. +LIBS=-L$(OBJ) -lipf + +CC=cc +CFLAGS=-g -I$(TOP) +CCARGS=$(DEBUG) $(CFLAGS) -I. + +all nit sunos4 sunos4-nit build : ipsend ipresend iptest + +iplang_y.o: $(TOP)/iplang/iplang_y.y + (cd $(TOP)/iplang; $(MAKE) 'DESTDIR=../AIX/$(OSREV)' ) + +iplang_l.o: $(TOP)/iplang/iplang_l.l + (cd $(TOP)/iplang; $(MAKE) 'DESTDIR=../AIX/$(OSREV)' ) + +.c.o: + $(CC) $(CCARGS) -c $(TOP)/ipsend/$< -o $@ + +ipsend: $(OBJS) $(UNIXOBJS) + $(CC) $(DEBUG) $(OBJS) $(UNIXOBJS) -o $@ $(LIBS) -ll + +ipresend: $(ROBJS) $(UNIXOBJS) + $(CC) $(DEBUG) $(ROBJS) $(UNIXOBJS) -o $@ $(LIBS) + +iptest: $(TOBJS) $(UNIXOBJS) + $(CC) $(DEBUG) $(TOBJS) $(UNIXOBJS) -o $@ $(LIBS) + +clean: + rm -rf *.o core a.out ipsend ipresend iptest iplang_y.* iplang_l.* + +ipsend.o: $(TOP)/ipsend/ipsend.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/ipsend.c -o $@ +ipsopt.o: $(TOP)/ipsend/ipsopt.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/ipsopt.c -o $@ +ipresend.o: $(TOP)/ipsend/ipresend.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/ipresend.c -o $@ +ip.o: $(TOP)/ipsend/ip.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/ip.c -o $@ +resend.o: $(TOP)/ipsend/resend.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/resend.c -o $@ +ipft_sn.o: $(TOP)/ipft_sn.c + $(CC) $(CCARGS) -c $(TOP)/ipft_sn.c -o $@ +ipft_pc.o: $(TOP)/ipft_pc.c + $(CC) $(CCARGS) -c $(TOP)/ipft_pc.c -o $@ +iptest.o: $(TOP)/ipsend/iptest.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/iptest.c -o $@ +iptests.o: $(TOP)/ipsend/iptests.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/iptests.c -o $@ +sbpf.o: $(TOP)/ipsend/sbpf.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/sbpf.c -o $@ +snit.o: $(TOP)/ipsend/snit.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/snit.c -o $@ +sock.o: $(TOP)/ipsend/sock.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/sock.c -o $@ +arp.o: $(TOP)/ipsend/arp.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/arp.c -o $@ +44arp.o: $(TOP)/ipsend/44arp.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/44arp.c -o $@ +lsock.o: $(TOP)/ipsend/lsock.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/lsock.c -o $@ +slinux.o: $(TOP)/ipsend/slinux.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/slinux.c -o $@ +larp.o: $(TOP)/ipsend/larp.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/larp.c -o $@ +dlcommon.o: $(TOP)/ipsend/dlcommon.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/dlcommon.c -o $@ +sdlpi.o: $(TOP)/ipsend/sdlpi.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/sdlpi.c -o $@ Added: vendor/ipfilter/dist/AIX/aix_cfg_ipf.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/AIX/aix_cfg_ipf.c Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,257 @@ +/* + * Copyright (C) 2012 by Darren Reed. + * + * See the IPFILTER.LICENCE file for details on licencing. + * + * $Id$ + */ +#include +#include +#include +#include +/* + * This is a workaround for troubles on FreeBSD, HPUX, OpenBSD. + * Needed here because on some systems gets included by things + * like + */ +#include +#include +#include +#include +#define _TCP_DEBUG_H_ +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "netinet/ip_compat.h" +#include "netinet/ip_fil.h" + +#ifndef __P +# ifdef __STDC__ +# define __P(x) x +# else +# define __P(x) () +# endif +#endif +#ifndef __STDC__ +# undef const +# define const +#endif + +/* + * AIX requires a specific configure/unconfigure program + */ +#undef ASSERT +#include +#include + +void loadipf __P((int major, int minor, dev_t devno, char *)); +void unloadipf __P((int major, int minor, dev_t devno)); +void queryipf __P((int major, int minor, dev_t devno)); +int checkarg __P((int, char *arg)); +void usage __P((char *)); + +static char *ipf_devfiles[] = { IPL_NAME, IPNAT_NAME, IPSTATE_NAME, + IPAUTH_NAME, IPSYNC_NAME, IPSCAN_NAME, + IPLOOKUP_NAME, NULL }; + +int +main(int argc, char *argv[]) +{ + int major, minor, action; + dev_t devno; + + action = checkarg(argc, argv[1]); + if (action == -1) + usage(argv[0]); + + if (odm_initialize() == -1) { + fprintf(stderr, "odm_initialize() failed\n"); + exit(1); + } + + major = genmajor("ipf"); + if (major == -1) { + fprintf(stderr, "genmajor(ipf) failed\n"); + exit(1); + } + minor = 0; + + devno = makedev(major, minor); + if (devno == -1) { + fprintf(stderr, "makedev(%d,%d) failed\n", major, minor); + exit(1); + } + printf("Major %d\ndevno %x\n", major, devno); + + switch (action) + { + case 1 : + loadipf(major, minor, devno, argv[2]); + break; + case 2 : + unloadipf(major, minor, devno); + break; + case 3 : + queryipf(major, minor, devno); + break; + } + + odm_terminate(); + + return 0; +} + + +void usage(char *prog) +{ + fprintf(stderr, "Usage:\t%s -l\n\t%s -u\n\t%s -q\n", + prog, prog, prog); + exit(1); +} + + +int checkarg(int argc, char *arg) +{ + if (argc < 2) + return -1; + + if (!strcmp(arg, "-l") && (argc <= 3)) + return 1; + + if (!strcmp(arg, "-u") && (argc == 2)) + return 2; + + if (!strcmp(arg, "-q") && (argc == 2)) + return 3; + + return -1; +} + + +void +loadipf(int major, int minor, dev_t devno, char *path) +{ + struct cfg_dd ipfcfg; + struct cfg_load cfg; + char *buffer[1024]; + char *ipfpath; + int i; + + bzero(buffer, sizeof(buffer)); + if (path != NULL) + ipfpath = path; + else + ipfpath = "/usr/lib/drivers/ipf"; + +#if 0 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Sun Aug 11 14:37:52 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4DDBDB7D; Sun, 11 Aug 2013 14:37:52 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E176C27E0; Sun, 11 Aug 2013 14:37:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BEbpig080931; Sun, 11 Aug 2013 14:37:51 GMT (envelope-from cy@svn.freebsd.org) Received: (from cy@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BEbpL9080930; Sun, 11 Aug 2013 14:37:51 GMT (envelope-from cy@svn.freebsd.org) Message-Id: <201308111437.r7BEbpL9080930@svn.freebsd.org> From: Cy Schubert Date: Sun, 11 Aug 2013 14:37:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254220 - vendor/ipfilter/5.1.2 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 14:37:52 -0000 Author: cy Date: Sun Aug 11 14:37:51 2013 New Revision: 254220 URL: http://svnweb.freebsd.org/changeset/base/254220 Log: Tag import of IP-Filter 5.1.2. Approved by: glebius (Mentor) Added: vendor/ipfilter/5.1.2/ - copied from r254219, vendor/ipfilter/dist/ From owner-svn-src-vendor@FreeBSD.ORG Sun Aug 11 14:39:27 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B9276CEB; Sun, 11 Aug 2013 14:39:27 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8E28627F0; Sun, 11 Aug 2013 14:39:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BEdRJn081218; Sun, 11 Aug 2013 14:39:27 GMT (envelope-from cy@svn.freebsd.org) Received: (from cy@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BEdRff081217; Sun, 11 Aug 2013 14:39:27 GMT (envelope-from cy@svn.freebsd.org) Message-Id: <201308111439.r7BEdRff081217@svn.freebsd.org> From: Cy Schubert Date: Sun, 11 Aug 2013 14:39:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254221 - vendor-sys/ipfilter/5-1-2 X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 14:39:27 -0000 Author: cy Date: Sun Aug 11 14:39:27 2013 New Revision: 254221 URL: http://svnweb.freebsd.org/changeset/base/254221 Log: Tag import of IP-Filter 5.1.2. Approved by: glebius (Mentor) Added: vendor-sys/ipfilter/5-1-2/ - copied from r254220, vendor-sys/ipfilter/dist/ From owner-svn-src-vendor@FreeBSD.ORG Mon Aug 12 08:15:59 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1D53F432; Mon, 12 Aug 2013 08:15:59 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0A84A21F4; Mon, 12 Aug 2013 08:15:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7C8FwhI087149; Mon, 12 Aug 2013 08:15:58 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7C8FwQ1087148; Mon, 12 Aug 2013 08:15:58 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201308120815.r7C8FwQ1087148@svn.freebsd.org> From: Erwin Lansing Date: Mon, 12 Aug 2013 08:15:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254239 - in vendor/bind9/dist: . libtool.m4 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 08:15:59 -0000 Author: erwin Date: Mon Aug 12 08:15:58 2013 New Revision: 254239 URL: http://svnweb.freebsd.org/changeset/base/254239 Log: Take the weirdly named libtool file off the vendor brachn and make sure it won't get imported in the future. Approved by: delphij (mentor) Sponsored by: DK Hostmaster A/S Deleted: vendor/bind9/dist/libtool.m4/lt~obsolete.m4 Modified: vendor/bind9/dist/FREEBSD-Xlist Modified: vendor/bind9/dist/FREEBSD-Xlist ============================================================================== --- vendor/bind9/dist/FREEBSD-Xlist Mon Aug 12 06:09:28 2013 (r254238) +++ vendor/bind9/dist/FREEBSD-Xlist Mon Aug 12 08:15:58 2013 (r254239) @@ -11,6 +11,7 @@ docutil isc-config.sh.1 isc-config.sh.docbook isc-config.sh.html +libtool.m4/lt~obsolete.m4 srcid util From owner-svn-src-vendor@FreeBSD.ORG Tue Aug 13 09:04:20 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A4E5B69F; Tue, 13 Aug 2013 09:04:20 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9263C25F4; Tue, 13 Aug 2013 09:04:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D94Kg0021071; Tue, 13 Aug 2013 09:04:20 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D94Kk3021070; Tue, 13 Aug 2013 09:04:20 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201308130904.r7D94Kk3021070@svn.freebsd.org> From: Dag-Erling Smørgrav Date: Tue, 13 Aug 2013 09:04:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254277 - vendor-crypto/openssh/dist X-SVN-Group: vendor-crypto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 09:04:20 -0000 Author: des Date: Tue Aug 13 09:04:20 2013 New Revision: 254277 URL: http://svnweb.freebsd.org/changeset/base/254277 Log: Apply upstream revision 1.151 (fix relative symlinks) Modified: vendor-crypto/openssh/dist/sftp.c Modified: vendor-crypto/openssh/dist/sftp.c ============================================================================== --- vendor-crypto/openssh/dist/sftp.c Tue Aug 13 08:12:57 2013 (r254276) +++ vendor-crypto/openssh/dist/sftp.c Tue Aug 13 09:04:20 2013 (r254277) @@ -1327,7 +1327,8 @@ parse_dispatch_command(struct sftp_conn case I_SYMLINK: sflag = 1; case I_LINK: - path1 = make_absolute(path1, *pwd); + if (!sflag) + path1 = make_absolute(path1, *pwd); path2 = make_absolute(path2, *pwd); err = (sflag ? do_symlink : do_hardlink)(conn, path1, path2); break; From owner-svn-src-vendor@FreeBSD.ORG Wed Aug 14 10:20:26 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 91AB9827; Wed, 14 Aug 2013 10:20:26 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6688A2E2A; Wed, 14 Aug 2013 10:20:26 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EAKQVc090921; Wed, 14 Aug 2013 10:20:26 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EAKQuH090920; Wed, 14 Aug 2013 10:20:26 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201308141020.r7EAKQuH090920@svn.freebsd.org> From: Erwin Lansing Date: Wed, 14 Aug 2013 10:20:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254321 - vendor/bind9/dist-9.8 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 10:20:26 -0000 Author: erwin Date: Wed Aug 14 10:20:25 2013 New Revision: 254321 URL: http://svnweb.freebsd.org/changeset/base/254321 Log: Fork the vendor branch to allow for continued support of BIND 9.8.x for release up to 9.2 Approved by: delphij (mentor, implicit) Sponsored by: DK Hostmaster A/S Added: vendor/bind9/dist-9.8/ - copied from r254320, vendor/bind9/dist/ From owner-svn-src-vendor@FreeBSD.ORG Wed Aug 14 11:10:03 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C43885B8; Wed, 14 Aug 2013 11:10:03 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 67F432136; Wed, 14 Aug 2013 11:10:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EBA3iX009519; Wed, 14 Aug 2013 11:10:03 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EBA33B009517; Wed, 14 Aug 2013 11:10:03 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201308141110.r7EBA33B009517@svn.freebsd.org> From: Erwin Lansing Date: Wed, 14 Aug 2013 11:10:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254322 - in vendor/bind9/dist: . bin bin/check bin/confgen bin/dig bin/dig/include/dig bin/dnssec bin/named bin/named/include/dlz bin/named/include/named bin/named/unix bin/nsupdate bi... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 11:10:03 -0000 Author: erwin Date: Wed Aug 14 11:10:02 2013 New Revision: 254322 URL: http://svnweb.freebsd.org/changeset/base/254322 Log: Vendor import of Bind 9.9.3-P2 Approved by: delphij (mentor, implicit) Sponsored by: DK Hostmaster A/S Added: vendor/bind9/dist/bin/dnssec/dnssec-verify.8 vendor/bind9/dist/bin/dnssec/dnssec-verify.c vendor/bind9/dist/bin/dnssec/dnssec-verify.docbook vendor/bind9/dist/bin/dnssec/dnssec-verify.html vendor/bind9/dist/bin/named/bind9.ver3.xsl (contents, props changed) vendor/bind9/dist/bin/named/bind9.ver3.xsl.h vendor/bind9/dist/doc/arm/man.dnssec-verify.html vendor/bind9/dist/lib/dns/clientinfo.c vendor/bind9/dist/lib/dns/include/dns/clientinfo.h vendor/bind9/dist/lib/dns/include/dns/update.h vendor/bind9/dist/lib/dns/rdata/generic/naptr_35.c vendor/bind9/dist/lib/dns/rdata/generic/naptr_35.h vendor/bind9/dist/lib/dns/update.c vendor/bind9/dist/lib/isc/include/isc/pool.h vendor/bind9/dist/lib/isc/include/isc/queue.h vendor/bind9/dist/lib/isc/pool.c Deleted: vendor/bind9/dist/lib/dns/rdata/in_1/naptr_35.c vendor/bind9/dist/lib/dns/rdata/in_1/naptr_35.h Modified: vendor/bind9/dist/CHANGES vendor/bind9/dist/COPYRIGHT vendor/bind9/dist/FREEBSD-Upgrade vendor/bind9/dist/FREEBSD-Xlist vendor/bind9/dist/HISTORY vendor/bind9/dist/Makefile.in vendor/bind9/dist/README vendor/bind9/dist/bin/Makefile.in vendor/bind9/dist/bin/check/check-tool.c vendor/bind9/dist/bin/check/check-tool.h vendor/bind9/dist/bin/check/named-checkconf.c vendor/bind9/dist/bin/check/named-checkzone.8 vendor/bind9/dist/bin/check/named-checkzone.c vendor/bind9/dist/bin/check/named-checkzone.docbook vendor/bind9/dist/bin/check/named-checkzone.html vendor/bind9/dist/bin/confgen/ddns-confgen.c vendor/bind9/dist/bin/confgen/rndc-confgen.c vendor/bind9/dist/bin/dig/Makefile.in vendor/bind9/dist/bin/dig/dig.1 vendor/bind9/dist/bin/dig/dig.c vendor/bind9/dist/bin/dig/dig.docbook vendor/bind9/dist/bin/dig/dig.html vendor/bind9/dist/bin/dig/dighost.c vendor/bind9/dist/bin/dig/host.c vendor/bind9/dist/bin/dig/include/dig/dig.h vendor/bind9/dist/bin/dig/nslookup.c vendor/bind9/dist/bin/dnssec/Makefile.in vendor/bind9/dist/bin/dnssec/dnssec-dsfromkey.8 vendor/bind9/dist/bin/dnssec/dnssec-dsfromkey.c vendor/bind9/dist/bin/dnssec/dnssec-dsfromkey.docbook vendor/bind9/dist/bin/dnssec/dnssec-dsfromkey.html vendor/bind9/dist/bin/dnssec/dnssec-keyfromlabel.8 vendor/bind9/dist/bin/dnssec/dnssec-keyfromlabel.c vendor/bind9/dist/bin/dnssec/dnssec-keyfromlabel.docbook vendor/bind9/dist/bin/dnssec/dnssec-keyfromlabel.html vendor/bind9/dist/bin/dnssec/dnssec-keygen.8 vendor/bind9/dist/bin/dnssec/dnssec-keygen.c vendor/bind9/dist/bin/dnssec/dnssec-keygen.docbook vendor/bind9/dist/bin/dnssec/dnssec-keygen.html vendor/bind9/dist/bin/dnssec/dnssec-revoke.c vendor/bind9/dist/bin/dnssec/dnssec-revoke.docbook vendor/bind9/dist/bin/dnssec/dnssec-settime.8 vendor/bind9/dist/bin/dnssec/dnssec-settime.c vendor/bind9/dist/bin/dnssec/dnssec-settime.docbook vendor/bind9/dist/bin/dnssec/dnssec-settime.html vendor/bind9/dist/bin/dnssec/dnssec-signzone.8 vendor/bind9/dist/bin/dnssec/dnssec-signzone.c vendor/bind9/dist/bin/dnssec/dnssec-signzone.docbook vendor/bind9/dist/bin/dnssec/dnssec-signzone.html vendor/bind9/dist/bin/dnssec/dnssectool.c vendor/bind9/dist/bin/dnssec/dnssectool.h vendor/bind9/dist/bin/named/Makefile.in vendor/bind9/dist/bin/named/builtin.c vendor/bind9/dist/bin/named/client.c vendor/bind9/dist/bin/named/config.c vendor/bind9/dist/bin/named/control.c vendor/bind9/dist/bin/named/controlconf.c vendor/bind9/dist/bin/named/include/dlz/dlz_dlopen_driver.h vendor/bind9/dist/bin/named/include/named/client.h vendor/bind9/dist/bin/named/include/named/control.h vendor/bind9/dist/bin/named/include/named/globals.h vendor/bind9/dist/bin/named/include/named/interfacemgr.h vendor/bind9/dist/bin/named/include/named/server.h vendor/bind9/dist/bin/named/include/named/zoneconf.h vendor/bind9/dist/bin/named/interfacemgr.c vendor/bind9/dist/bin/named/logconf.c vendor/bind9/dist/bin/named/main.c vendor/bind9/dist/bin/named/named.8 vendor/bind9/dist/bin/named/named.conf.5 vendor/bind9/dist/bin/named/named.conf.docbook vendor/bind9/dist/bin/named/named.conf.html vendor/bind9/dist/bin/named/named.docbook vendor/bind9/dist/bin/named/named.html vendor/bind9/dist/bin/named/query.c vendor/bind9/dist/bin/named/server.c vendor/bind9/dist/bin/named/statschannel.c vendor/bind9/dist/bin/named/unix/Makefile.in vendor/bind9/dist/bin/named/unix/dlz_dlopen_driver.c vendor/bind9/dist/bin/named/unix/os.c vendor/bind9/dist/bin/named/update.c vendor/bind9/dist/bin/named/xfrout.c vendor/bind9/dist/bin/named/zoneconf.c vendor/bind9/dist/bin/nsupdate/Makefile.in vendor/bind9/dist/bin/nsupdate/nsupdate.1 vendor/bind9/dist/bin/nsupdate/nsupdate.c vendor/bind9/dist/bin/nsupdate/nsupdate.docbook vendor/bind9/dist/bin/nsupdate/nsupdate.html vendor/bind9/dist/bin/rndc/rndc.c vendor/bind9/dist/bin/tools/genrandom.8 vendor/bind9/dist/bin/tools/genrandom.docbook vendor/bind9/dist/bin/tools/genrandom.html vendor/bind9/dist/bin/tools/nsec3hash.c vendor/bind9/dist/config.h.in vendor/bind9/dist/config.threads.in vendor/bind9/dist/configure.in vendor/bind9/dist/doc/arm/Bv9ARM-book.xml vendor/bind9/dist/doc/arm/Bv9ARM.ch01.html vendor/bind9/dist/doc/arm/Bv9ARM.ch03.html vendor/bind9/dist/doc/arm/Bv9ARM.ch04.html vendor/bind9/dist/doc/arm/Bv9ARM.ch05.html vendor/bind9/dist/doc/arm/Bv9ARM.ch06.html vendor/bind9/dist/doc/arm/Bv9ARM.ch07.html vendor/bind9/dist/doc/arm/Bv9ARM.ch08.html vendor/bind9/dist/doc/arm/Bv9ARM.ch09.html vendor/bind9/dist/doc/arm/Bv9ARM.ch10.html vendor/bind9/dist/doc/arm/Bv9ARM.html vendor/bind9/dist/doc/arm/Bv9ARM.pdf vendor/bind9/dist/doc/arm/dnssec.xml vendor/bind9/dist/doc/arm/man.arpaname.html vendor/bind9/dist/doc/arm/man.ddns-confgen.html vendor/bind9/dist/doc/arm/man.dig.html vendor/bind9/dist/doc/arm/man.dnssec-dsfromkey.html vendor/bind9/dist/doc/arm/man.dnssec-keyfromlabel.html vendor/bind9/dist/doc/arm/man.dnssec-keygen.html vendor/bind9/dist/doc/arm/man.dnssec-revoke.html vendor/bind9/dist/doc/arm/man.dnssec-settime.html vendor/bind9/dist/doc/arm/man.dnssec-signzone.html vendor/bind9/dist/doc/arm/man.genrandom.html vendor/bind9/dist/doc/arm/man.host.html vendor/bind9/dist/doc/arm/man.isc-hmac-fixup.html vendor/bind9/dist/doc/arm/man.named-checkconf.html vendor/bind9/dist/doc/arm/man.named-checkzone.html vendor/bind9/dist/doc/arm/man.named-journalprint.html vendor/bind9/dist/doc/arm/man.named.html vendor/bind9/dist/doc/arm/man.nsec3hash.html vendor/bind9/dist/doc/arm/man.nsupdate.html vendor/bind9/dist/doc/arm/man.rndc-confgen.html vendor/bind9/dist/doc/arm/man.rndc.conf.html vendor/bind9/dist/doc/arm/man.rndc.html vendor/bind9/dist/doc/arm/pkcs11.xml vendor/bind9/dist/doc/misc/options vendor/bind9/dist/lib/bind9/api vendor/bind9/dist/lib/bind9/check.c vendor/bind9/dist/lib/dns/Makefile.in vendor/bind9/dist/lib/dns/acache.c vendor/bind9/dist/lib/dns/acl.c vendor/bind9/dist/lib/dns/adb.c vendor/bind9/dist/lib/dns/api vendor/bind9/dist/lib/dns/byaddr.c vendor/bind9/dist/lib/dns/cache.c vendor/bind9/dist/lib/dns/callbacks.c vendor/bind9/dist/lib/dns/client.c vendor/bind9/dist/lib/dns/db.c vendor/bind9/dist/lib/dns/dbtable.c vendor/bind9/dist/lib/dns/diff.c vendor/bind9/dist/lib/dns/dispatch.c vendor/bind9/dist/lib/dns/dns64.c vendor/bind9/dist/lib/dns/dnssec.c vendor/bind9/dist/lib/dns/dst_api.c vendor/bind9/dist/lib/dns/dst_internal.h vendor/bind9/dist/lib/dns/dst_openssl.h vendor/bind9/dist/lib/dns/dst_parse.c vendor/bind9/dist/lib/dns/ecdb.c vendor/bind9/dist/lib/dns/gssapi_link.c vendor/bind9/dist/lib/dns/gssapictx.c vendor/bind9/dist/lib/dns/hmac_link.c vendor/bind9/dist/lib/dns/include/dns/Makefile.in vendor/bind9/dist/lib/dns/include/dns/acache.h vendor/bind9/dist/lib/dns/include/dns/acl.h vendor/bind9/dist/lib/dns/include/dns/adb.h vendor/bind9/dist/lib/dns/include/dns/cache.h vendor/bind9/dist/lib/dns/include/dns/callbacks.h vendor/bind9/dist/lib/dns/include/dns/db.h vendor/bind9/dist/lib/dns/include/dns/dispatch.h vendor/bind9/dist/lib/dns/include/dns/dlz_dlopen.h vendor/bind9/dist/lib/dns/include/dns/dnssec.h vendor/bind9/dist/lib/dns/include/dns/events.h vendor/bind9/dist/lib/dns/include/dns/journal.h vendor/bind9/dist/lib/dns/include/dns/log.h vendor/bind9/dist/lib/dns/include/dns/master.h vendor/bind9/dist/lib/dns/include/dns/masterdump.h vendor/bind9/dist/lib/dns/include/dns/nsec.h vendor/bind9/dist/lib/dns/include/dns/nsec3.h vendor/bind9/dist/lib/dns/include/dns/private.h vendor/bind9/dist/lib/dns/include/dns/rdata.h vendor/bind9/dist/lib/dns/include/dns/rdataset.h vendor/bind9/dist/lib/dns/include/dns/resolver.h vendor/bind9/dist/lib/dns/include/dns/result.h vendor/bind9/dist/lib/dns/include/dns/rpz.h vendor/bind9/dist/lib/dns/include/dns/rriterator.h vendor/bind9/dist/lib/dns/include/dns/sdb.h vendor/bind9/dist/lib/dns/include/dns/sdlz.h vendor/bind9/dist/lib/dns/include/dns/time.h vendor/bind9/dist/lib/dns/include/dns/types.h vendor/bind9/dist/lib/dns/include/dns/view.h vendor/bind9/dist/lib/dns/include/dns/zone.h vendor/bind9/dist/lib/dns/include/dns/zt.h vendor/bind9/dist/lib/dns/include/dst/dst.h vendor/bind9/dist/lib/dns/iptable.c vendor/bind9/dist/lib/dns/journal.c vendor/bind9/dist/lib/dns/key.c vendor/bind9/dist/lib/dns/keytable.c vendor/bind9/dist/lib/dns/log.c vendor/bind9/dist/lib/dns/lookup.c vendor/bind9/dist/lib/dns/master.c vendor/bind9/dist/lib/dns/masterdump.c vendor/bind9/dist/lib/dns/message.c vendor/bind9/dist/lib/dns/nsec.c vendor/bind9/dist/lib/dns/nsec3.c vendor/bind9/dist/lib/dns/openssldh_link.c vendor/bind9/dist/lib/dns/openssldsa_link.c vendor/bind9/dist/lib/dns/opensslecdsa_link.c vendor/bind9/dist/lib/dns/opensslgost_link.c vendor/bind9/dist/lib/dns/opensslrsa_link.c vendor/bind9/dist/lib/dns/private.c vendor/bind9/dist/lib/dns/rbt.c vendor/bind9/dist/lib/dns/rbtdb.c vendor/bind9/dist/lib/dns/rdata.c vendor/bind9/dist/lib/dns/rdata/any_255/tsig_250.c vendor/bind9/dist/lib/dns/rdata/generic/cert_37.c vendor/bind9/dist/lib/dns/rdata/generic/dlv_32769.c vendor/bind9/dist/lib/dns/rdata/generic/dnskey_48.c vendor/bind9/dist/lib/dns/rdata/generic/ds_43.c vendor/bind9/dist/lib/dns/rdata/generic/ipseckey_45.c vendor/bind9/dist/lib/dns/rdata/generic/key_25.c vendor/bind9/dist/lib/dns/rdata/generic/keydata_65533.c vendor/bind9/dist/lib/dns/rdata/generic/nsec3_50.c vendor/bind9/dist/lib/dns/rdata/generic/nsec3_50.h vendor/bind9/dist/lib/dns/rdata/generic/opt_41.c vendor/bind9/dist/lib/dns/rdata/generic/rrsig_46.c vendor/bind9/dist/lib/dns/rdata/generic/sig_24.c vendor/bind9/dist/lib/dns/rdata/generic/soa_6.c vendor/bind9/dist/lib/dns/rdata/generic/sshfp_44.c vendor/bind9/dist/lib/dns/rdata/generic/tkey_249.c vendor/bind9/dist/lib/dns/rdata/generic/uri_256.c vendor/bind9/dist/lib/dns/rdata/generic/uri_256.h vendor/bind9/dist/lib/dns/rdata/in_1/dhcid_49.c vendor/bind9/dist/lib/dns/resolver.c vendor/bind9/dist/lib/dns/sdb.c vendor/bind9/dist/lib/dns/sdlz.c vendor/bind9/dist/lib/dns/validator.c vendor/bind9/dist/lib/dns/view.c vendor/bind9/dist/lib/dns/xfrin.c vendor/bind9/dist/lib/dns/zone.c vendor/bind9/dist/lib/dns/zt.c vendor/bind9/dist/lib/irs/api vendor/bind9/dist/lib/isc/Makefile.in vendor/bind9/dist/lib/isc/api vendor/bind9/dist/lib/isc/include/isc/heap.h vendor/bind9/dist/lib/isc/include/isc/list.h vendor/bind9/dist/lib/isc/include/isc/mem.h vendor/bind9/dist/lib/isc/include/isc/namespace.h vendor/bind9/dist/lib/isc/include/isc/radix.h vendor/bind9/dist/lib/isc/include/isc/socket.h vendor/bind9/dist/lib/isc/include/isc/task.h vendor/bind9/dist/lib/isc/include/isc/taskpool.h vendor/bind9/dist/lib/isc/log.c vendor/bind9/dist/lib/isc/radix.c vendor/bind9/dist/lib/isc/socket_api.c vendor/bind9/dist/lib/isc/task.c vendor/bind9/dist/lib/isc/task_api.c vendor/bind9/dist/lib/isc/task_p.h vendor/bind9/dist/lib/isc/taskpool.c vendor/bind9/dist/lib/isc/unix/socket.c vendor/bind9/dist/lib/isccc/api vendor/bind9/dist/lib/isccfg/api vendor/bind9/dist/lib/isccfg/namedconf.c vendor/bind9/dist/lib/lwres/api vendor/bind9/dist/lib/lwres/man/lwres_config.3 vendor/bind9/dist/lib/lwres/man/lwres_config.docbook vendor/bind9/dist/lib/lwres/man/lwres_config.html vendor/bind9/dist/lib/lwres/man/lwres_context.3 vendor/bind9/dist/lib/lwres/man/lwres_context.docbook vendor/bind9/dist/lib/lwres/man/lwres_context.html vendor/bind9/dist/lib/lwres/man/lwres_gabn.3 vendor/bind9/dist/lib/lwres/man/lwres_gabn.docbook vendor/bind9/dist/lib/lwres/man/lwres_gabn.html vendor/bind9/dist/lib/lwres/man/lwres_gai_strerror.3 vendor/bind9/dist/lib/lwres/man/lwres_gai_strerror.docbook vendor/bind9/dist/lib/lwres/man/lwres_gai_strerror.html vendor/bind9/dist/lib/lwres/man/lwres_getaddrinfo.3 vendor/bind9/dist/lib/lwres/man/lwres_getaddrinfo.docbook vendor/bind9/dist/lib/lwres/man/lwres_getaddrinfo.html vendor/bind9/dist/lib/lwres/man/lwres_gethostent.3 vendor/bind9/dist/lib/lwres/man/lwres_gethostent.docbook vendor/bind9/dist/lib/lwres/man/lwres_gethostent.html vendor/bind9/dist/lib/lwres/man/lwres_getipnode.3 vendor/bind9/dist/lib/lwres/man/lwres_getipnode.docbook vendor/bind9/dist/lib/lwres/man/lwres_getipnode.html vendor/bind9/dist/lib/lwres/man/lwres_getnameinfo.3 vendor/bind9/dist/lib/lwres/man/lwres_getnameinfo.docbook vendor/bind9/dist/lib/lwres/man/lwres_getnameinfo.html vendor/bind9/dist/lib/lwres/man/lwres_getrrsetbyname.3 vendor/bind9/dist/lib/lwres/man/lwres_getrrsetbyname.docbook vendor/bind9/dist/lib/lwres/man/lwres_getrrsetbyname.html vendor/bind9/dist/lib/lwres/man/lwres_gnba.3 vendor/bind9/dist/lib/lwres/man/lwres_gnba.docbook vendor/bind9/dist/lib/lwres/man/lwres_gnba.html vendor/bind9/dist/lib/lwres/man/lwres_hstrerror.3 vendor/bind9/dist/lib/lwres/man/lwres_hstrerror.docbook vendor/bind9/dist/lib/lwres/man/lwres_hstrerror.html vendor/bind9/dist/lib/lwres/man/lwres_inetntop.3 vendor/bind9/dist/lib/lwres/man/lwres_inetntop.docbook vendor/bind9/dist/lib/lwres/man/lwres_inetntop.html vendor/bind9/dist/lib/lwres/man/lwres_noop.3 vendor/bind9/dist/lib/lwres/man/lwres_noop.docbook vendor/bind9/dist/lib/lwres/man/lwres_noop.html vendor/bind9/dist/lib/lwres/man/lwres_packet.3 vendor/bind9/dist/lib/lwres/man/lwres_packet.docbook vendor/bind9/dist/lib/lwres/man/lwres_packet.html vendor/bind9/dist/lib/lwres/man/lwres_resutil.3 vendor/bind9/dist/lib/lwres/man/lwres_resutil.docbook vendor/bind9/dist/lib/lwres/man/lwres_resutil.html vendor/bind9/dist/lib/lwres/print_p.h vendor/bind9/dist/lib/lwres/strtoul.c vendor/bind9/dist/lib/lwres/unix/Makefile.in vendor/bind9/dist/lib/lwres/unix/include/Makefile.in vendor/bind9/dist/lib/lwres/unix/include/lwres/Makefile.in vendor/bind9/dist/lib/lwres/unix/include/lwres/net.h vendor/bind9/dist/lib/lwres/version.c vendor/bind9/dist/make/Makefile.in vendor/bind9/dist/make/includes.in vendor/bind9/dist/make/rules.in vendor/bind9/dist/mkinstalldirs vendor/bind9/dist/version Modified: vendor/bind9/dist/CHANGES ============================================================================== --- vendor/bind9/dist/CHANGES Wed Aug 14 10:20:25 2013 (r254321) +++ vendor/bind9/dist/CHANGES Wed Aug 14 11:10:02 2013 (r254322) @@ -1,15 +1,15 @@ - --- 9.8.5-P2 released --- + --- 9.9.3-P2 released --- 3621. [security] Incorrect bounds checking on private type 'keydata' can lead to a remotely triggerable REQUIRE failure (CVE-2013-4854). [RT #34238] - --- 9.8.5-P1 released --- + --- 9.9.3-P1 released --- 3584. [security] Caching data from an incompletely signed zone could trigger an assertion failure in resolver.c [RT #33690] - --- 9.8.5 released --- + --- 9.9.3 released --- 3568. [cleanup] Add a product description line to the version file, to be reported by named -v/-V. [RT #33366] @@ -21,7 +21,7 @@ 3561. [bug] dig: issue a warning if an EDNS query returns FORMERR or NOTIMP. Adjust usage message. [RT #33363] - --- 9.8.5rc1 released --- + --- 9.9.3rc2 released --- 3560. [bug] isc-config.sh did not honor includedir and libdir when set via configure. [RT #33345] @@ -31,6 +31,8 @@ 3558. [bug] IXFR of a DLZ stored zone was broken. [RT #33331] +3557. [bug] Reloading redirect zones was broken. [RT #33292] + 3556. [maint] Added AAAA for D.ROOT-SERVERS.NET. 3555. [bug] Address theoretical race conditions in acache.c @@ -51,9 +53,7 @@ 3547. [bug] Some malformed unknown rdata records were not properly detected and rejected. [RT #33129] -3056. [func] Added support for URI resource record. [RT #23386] - - --- 9.8.5rc1 released --- + --- 9.9.3rc1 released --- 3546. [func] Add EUI48 and EUI64 types. [RT #33082] @@ -64,8 +64,6 @@ 3543. [bug] Update socket structure before attaching to socket manager after accept. [RT #33084] -3542. [bug] masterformat system test was broken. [RT #33086] - 3541. [bug] Parts of libdns were not properly initialized when built in libexport mode. [RT #33028] @@ -94,6 +92,17 @@ 3530. [contrib] Better RTT tracking in queryperf. [RT #30128] +3528. [func] New "dnssec-coverage" command scans the timing + metadata for a set of DNSSEC keys and reports if a + lapse in signing coverage has been scheduled + inadvertently. (Note: This tool depends on python; + it will not be built or installed on systems that + do not have a python interpreter.) [RT #28098] + +3527. [compat] Add a URI to allow applications to explicitly + request a particular XML schema from the statistics + channel, returning 404 if not supported. [RT #32481] + 3526. [cleanup] Set up dependencies for unit tests correctly during build. [RT #32803] @@ -102,7 +111,7 @@ 3520. [bug] 'mctx' was not being referenced counted in some places where it should have been. [RT #32794] - --- 9.8.5b2 released --- + --- 9.9.3b2 released --- 3517. [bug] Reorder destruction to avoid shutdown race. [RT #32777] @@ -114,6 +123,8 @@ to 1024 bits for hmac-sha384 and hmac-sha512. [RT #32753] +3511. [doc] Improve documentation of redirect zones. [RT #32756] + 3509. [cleanup] Added a product line to version file to allow for easy naming of different products (BIND vs BIND ESV, for example). [RT #32755] @@ -121,8 +132,24 @@ 3508. [contrib] queryperf was incorrectly rejecting the -T option. [RT #32338] +3507. [bug] Statistics channel XSL (when built with + --enable-newstats) had a glitch when attempting + to chart query data before any queries had been + received. [RT #32620] + +3505. [bug] When setting "max-cache-size" and "max-acache-size", + larger values than 4 gigabytes could not be set + explicitly, though larger sizes were available + when setting cache size to 0. This has been + corrected; the full range is now available. + [RT #32358] + 3503. [doc] Clarify size_spec syntax. [RT #32449] +3501. [func] zone-statistics now takes three options: full, + terse, and none. "yes" and "no" are retained as + synonyms for full and terse, respectively. [RT #29165] + 3500. [security] Support NAPTR regular expression validation on all platforms without using libregex, which can be vulnerable to memory exhaustion attack @@ -141,6 +168,15 @@ NSIP and NSDNAME checking. --enable-rpz-nsip and --enable-rpz-nsdname are now the default. [RT #32251] +3493. [contrib] Added BDBHPT dynamically-lodable DLZ module, + contributed by Mark Goldfinch. [RT #32549] + +3492. [bug] Fixed a regression in zone loading performance + due to lock contention. [RT #30399] + +3491. [bug] Slave zones using inline-signing must specify a + file name. [RT #31946] + 3489. [bug] --enable-developer now turns on ISC_LIST_CHECKINIT. When cloning a rdataset do not copy the link contents. [RT #32651] @@ -156,8 +192,14 @@ 3485. [cleanup] Only compile openssl_gostlink.c if we support GOST. +3483. [bug] Corrected XSL code in use with --enable-newstats. + [RT #32587] + 3481. [cleanup] Removed use of const const in atf. +3480. [bug] Silence logging noise when setting up zone + statistics. [RT #32525] + 3479. [bug] Address potential memory leaks in gssapi support code. [RT #32405] @@ -167,10 +209,18 @@ 3474. [bug] nsupdate could assert when the local and remote address families didn't match. [RT #22897] +3473. [bug] dnssec-signzone/verify could incorrectly report + an error condition due to an empty node above an + opt-out delegation lacking an NSEC3. [RT #32072] + +3471. [bug] The number of UDP dispatches now defaults to + the number of CPUs even if -n has been set to + a higher value. [RT #30964] + 3470. [bug] Slave zones could fail to dump when successfully refreshing after an initial failure. [RT #31276] - --- 9.8.5b1 released --- + --- 9.9.3b1 released --- 3468. [security] RPZ rules to generate A records (but not AAAA records) could trigger an assertion failure when used in @@ -179,6 +229,9 @@ 3467. [bug] Added checks in dnssec-keygen and dnssec-settime to check for delete date < inactive date. [RT #31719] +3466. [contrib] Corrected the DNS_CLIENTINFOMETHODS_VERSION check + in DLZ example driver. [RT #32275] + 3465. [bug] Handle isolated reserved ports. [RT #31778] 3464. [maint] Updates to PKCS#11 openssl patches, supporting @@ -192,6 +245,8 @@ 3461. [bug] Negative responses could incorrectly have AD=1 set. [RT #32237] +3460. [bug] Only link against readline where needed. [RT #29810] + 3458. [bug] Return FORMERR when presented with a overly long domain named in a request. [RT #29682] @@ -203,6 +258,9 @@ 3454. [port] sparc64: improve atomic support. [RT #25182] +3453. [bug] 'rndc addzone' of a zone with 'inline-signing yes;' + failed. [RT #31960] + 3452. [bug] Accept duplicate singleton records. [RT #32329] 3451. [port] Increase per thread stack size from 64K to 1M. @@ -266,9 +324,19 @@ 3427. [bug] dig +trace incorrectly displayed name server addresses instead of names. [RT #31641] +3426. [bug] dnssec-checkds: Clearer output when records are not + found. [RT #31968] + 3425. [bug] "acacheentry" reference counting was broken resulting in use after free. [RT #31908] +3424. [func] dnssec-dsfromkey now emits the hash without spaces. + [RT #31951] + +3423. [bug] "rndc signing -nsec3param" didn't accept the full + range of possible values. Address portability issues. + [RT #31938] + 3422. [bug] Added a clear error message for when the SOA does not match the referral. [RT #31281] @@ -279,9 +347,22 @@ 3419. [bug] Memory leak on validation cancel. [RT #31869] +3417. [func] Optional new XML schema (version 3.0) for the + statistics channel adds query type statistics at the + zone level, and flattens the XML tree and uses + compressed format to optimize parsing. Includes new XSL + that permits charting via the Google Charts API on + browsers that support javascript in XSL. To enable, + build with "configure --enable-newstats". [RT #30023] + +3416. [bug] Named could die on shutdown if running with 128 UDP + dispatches per interface. [RT #31743] + 3415. [bug] named could die with a REQUIRE failure if a validation was canceled. [RT #31804] +3414. [bug] Address locking issues found by Coverity. [RT #31626] + 3412. [bug] Copy timeval structure from control message data. [RT #31548] @@ -295,6 +376,11 @@ (DNS-based Authentication of Named Entities). [RT #30513] +3408. [bug] Some DNSSEC-related options (update-check-ksk, + dnssec-loadkeys-interval, dnssec-dnskey-kskonly) + are now legal in slave zones as long as + inline-signing is in use. [RT #31078] + 3406. [bug] mem.c: Fix compilation errors when building with ISC_MEM_TRACKLINES or ISC_MEMPOOL_NAMES disabled. Also, ISC_MEM_DEBUG is no longer optional. [RT #31559] @@ -316,6 +402,13 @@ in the "srcid" file in the build tree and normally set to the most recent git hash. [RT #31494] +3399. [port] netbsd: rename 'bool' parameter to avoid namespace + clash. [RT #31515] + +3398. [bug] SOA parameters were not being updated with inline + signed zones if the zone was modified while the + server was offline. [RT #29272] + 3397. [bug] dig crashed when using +nssearch with +tcp. [RT #25298] 3396. [bug] OPT records were incorrectly removed from signed, @@ -348,11 +441,10 @@ 3386. [bug] Address locking violation when generating new NSEC / NSEC3 chains. [RT #31224] -3384. [bug] Improved logging of crypto errors. [RT #30963] +3385. [bug] named-checkconf didn't detect missing master lists + in also-notify clauses. [RT #30810] -3383. [security] A certain combination of records in the RBT could - cause named to hang while populating the additional - section of a response. [RT #31090] +3384. [bug] Improved logging of crypto errors. [RT #30963] 3382. [bug] SOA query from slave used use-v6-udp-ports range, if set, regardless of the address family in use. @@ -370,6 +462,9 @@ 3378. [bug] Handle missing 'managed-keys-directory' better. [RT #30625] +3377. [bug] Removed spurious newline from NSEC3 multiline + output. [RT #31044] + 3376. [bug] Lack of EDNS support was being recorded without a successful response. [RT #30811] @@ -386,19 +481,34 @@ add NS RRsets to the additional section or not. [RT #30479] - --- 9.8.4 released --- +3316. [tuning] Improved locking performance when recursing. + [RT #28836] + +3315. [tuning] Use multiple dispatch objects for sending upstream + queries; this can improve performance on busy + multiprocessor systems by reducing lock contention. + [RT #28605] + + --- 9.9.2 released --- + +3383. [security] A certain combination of records in the RBT could + cause named to hang while populating the additional + section of a response. [RT #31090] 3373. [bug] win32: open raw files in binary mode. [RT #30944] 3364. [security] Named could die on specially crafted record. [RT #30416] - --- 9.8.4rc1 released --- + --- 9.9.2rc1 released --- + +3370. [bug] Address use after free while shutting down. [RT #30241] 3369. [bug] nsupdate terminated unexpectedly in interactive mode if built with readline support. [RT #29550] -3368. [bug] and were not C++ safe. +3368. [bug] , and + were not C++ safe. 3367. [bug] dns_dnsseckey_create() result was not being checked. [RT #30685] @@ -417,6 +527,9 @@ could trigger an assertion failure on startup. [RT #27730] +3361. [bug] "rndc signing -nsec3param" didn't work correctly + when salt was set to '-' (no salt). [RT #30099] + 3360. [bug] 'host -w' could die. [RT #18723] 3359. [bug] An improperly-formed TSIG secret could cause a @@ -428,10 +541,12 @@ approaching their expiry, so they don't remain in caches after expiry. [RT #26429] - --- 9.8.4b1 released --- +3355. [port] Use more portable awk in verify system test. 3354. [func] Improve OpenSSL error logging. [RT #29932] + --- 9.9.2b1 released --- + 3353. [bug] Use a single task for task exclusive operations. [RT #29872] @@ -446,6 +561,8 @@ ISC_MEM_DEBUGCTX memory debugging flag is set. [RT #30240] +3349. [bug] Change #3345 was incomplete. [RT #30233] + 3348. [bug] Prevent RRSIG data from being cached if a negative record matching the covering type exists at a higher trust level. Such data already can't be retrieved from @@ -459,16 +576,42 @@ 3346. [security] Bad-cache data could be used before it was initialized, causing an assert. [RT #30025] +3345. [bug] Addressed race condition when removing the last item + or inserting the first item in an ISC_QUEUE. + [RT #29539] + +3344. [func] New "dnssec-checkds" command checks a zone to + determine which DS records should be published + in the parent zone, or which DLV records should be + published in a DLV zone, and queries the DNS to + ensure that it exists. (Note: This tool depends + on python; it will not be built or installed on + systems that do not have a python interpreter.) + [RT #28099] + 3342. [bug] Change #3314 broke saving of stub zones to disk resulting in excessive cpu usage in some cases. [RT #29952] +3341. [func] New "dnssec-verify" command checks a signed zone + to ensure correctness of signatures and of NSEC/NSEC3 + chains. [RT #23673] + +3339. [func] Allow the maximum supported rsa exponent size to be + specified: "max-rsa-exponent-size ;" [RT #29228] + +3338. [bug] Address race condition in units tests: asyncload_zone + and asyncload_zt. [RT #26100] + 3337. [bug] Change #3294 broke support for the multiple keys in controls. [RT #29694] 3335. [func] nslookup: return a nonzero exit code when unable to get an answer. [RT #29492] +3334. [bug] Hold a zone table reference while performing a + asynchronous load of a zone. [RT #28326] + 3333. [bug] Setting resolver-query-timeout too low can cause named to not recover if it loses connectivity. [RT #29623] @@ -504,7 +647,7 @@ 3317. [func] Add ECDSA support (RFC 6605). [RT #21918] - --- 9.8.3 released --- + --- 9.9.1 released --- 3318. [tuning] Reduce the amount of work performed while holding a bucket lock when finished with a fetch context. @@ -536,6 +679,8 @@ 3304. [bug] Use hmctx, not mctx when freeing rbtdb->heaps. [RT #28571] +3303. [bug] named could die when reloading. [RT #28606] + 3302. [bug] dns_dnssec_findmatchingkeys could fail to find keys if the zone name contained character that required special mappings. [RT #28600] @@ -549,22 +694,15 @@ 3299. [bug] Make SDB handle errors from database drivers better. [RT #28534] -3232. [bug] Zero zone->curmaster before return in - dns_zone_setmasterswithkeys(). [RT #26732] - -3183. [bug] Added RTLD_GLOBAL flag to dlopen call. [RT #26301] - -3197. [bug] Don't try to log the filename and line number when - the config parser can't open a file. [RT #22263] - - --- 9.8.2 released --- - 3298. [bug] Named could dereference a NULL pointer in zmgr_start_xfrin_ifquota if the zone was being removed. [RT #28419] 3297. [bug] Named could die on a malformed master file. [RT #28467] +3296. [bug] Named could die with a INSIST failure in + client.c:exit_check. [RT #28346] + 3295. [bug] Adjust isc_time_secondsastimet range check to be more portable. [RT # 26542] @@ -576,6 +714,16 @@ 3290. [bug] was not being installed. [RT #28169] +3273. [bug] AAAA responses could be returned in the additional + section even when filter-aaaa-on-v4 was in use. + [RT #27292] + + --- 9.9.0 released --- + + --- 9.9.0rc4 released --- + +3289. [bug] 'rndc retransfer' failed for inline zones. [RT #28036] + 3288. [bug] dlz_destroy() function wasn't correctly registered by the DLZ dlopen driver. [RT #28056] @@ -584,7 +732,7 @@ 3286. [bug] Managed key maintenance timer could fail to start after 'rndc reconfig'. [RT #26786] - --- 9.8.2rc2 released --- + --- 9.9.0rc3 released --- 3285. [bug] val-frdataset was incorrectly disassociated in proveunsecure after calling startfinddlvsep. @@ -607,24 +755,34 @@ 3280. [bug] Potential double free of a rdataset on out of memory with DNS64. [RT #27762] +3279. [bug] Hold a internal reference to the zone while performing + a asynchronous load. Address potential memory leak + if the asynchronous is cancelled. [RT #27750] + 3278. [bug] Make sure automatic key maintenance is started when "auto-dnssec maintain" is turned on during "rndc reconfig". [RT #26805] +3277. [bug] win32: isc_socket_dup is not implemented. [RT #27696] + 3276. [bug] win32: ns_os_openfile failed to return NULL on safe_open failure. [RT #27696] -3274. [bug] Log when a zone is not reusable. Only set loadtime - on successful loads. [RT #27650] - -3273. [bug] AAAA responses could be returned in the additional - section even when filter-aaaa-on-v4 was in use. - [RT #27292] +3275. [bug] Corrected rndc -h output; the 'rndc sync -clean' + option had been misspelled as '-clear'. (To avoid + future confusion, both options now work.) [RT #27173] 3271. [port] darwin: mksymtbl is not always stable, loop several times before giving up. mksymtbl was using non portable perl to covert 64 bit hex strings. [RT #27653] + --- 9.9.0rc2 released --- + +3270. [bug] "rndc reload" didn't reuse existing zones correctly + when inline-signing was in use. [RT #27650] + +3269. [port] darwin 11 and later now built threaded by default. + 3268. [bug] Convert RRSIG expiry times to 64 timestamps to work out the earliest expiry time. [RT #23311] @@ -636,14 +794,26 @@ DNSKEY RRset was not being properly computed. [RT #26543] +3265. [bug] Corrected a problem with lock ordering in the + inline-signing code. [RT #27557] + +3264. [bug] Automatic regeneration of signatures in an + inline-signing zone could stall when the server + was restarted. [RT #27344] + +3263. [bug] "rndc sync" did not affect the unsigned side of an + inline-signing zone. [RT #27337] + 3262. [bug] Signed responses were handled incorrectly by RPZ. [RT #27316] - --- 9.8.2rc1 released --- +3261. [func] RRset ordering now defaults to random. [RT #27174] 3260. [bug] "rrset-order cyclic" could appear not to rotate for some query patterns. [RT #27170/27185] + --- 9.9.0rc1 released --- + 3259. [bug] named-compilezone: Suppress "dump zone to " message when writing to stdout. [RT #27109] @@ -655,12 +825,21 @@ 3256. [bug] Disable empty zones for lwresd -C. [RT #27139] +3255. [func] No longer require that a empty zones be explicitly + enabled or that a empty zone is disabled for + RFC 1918 empty zones to be configured. [RT #27139] + 3254. [bug] Set isc_socket_ipv6only() on the IPv6 control channels. [RT #22249] 3253. [bug] Return DNS_R_SYNTAX when the input to a text field is too long. [RT #26956] +3252. [bug] When master zones using inline-signing were + updated while the server was offline, the source + zone could fall out of sync with the signed + copy. They can now resynchronize. [RT #26676] + 3251. [bug] Enforce a upper bound (65535 bytes) on the amount of memory dns_sdlz_putrr() can allocate per record to prevent run away memory consumption on ISC_R_NOSPACE. @@ -680,8 +859,34 @@ 3247. [bug] 'raw' format zones failed to preserve load order breaking 'fixed' sort order. [RT #27087] -3243. [port] netbsd,bsdi: the thread defaults were not being - properly set. +3246. [bug] Named failed to start with a empty also-notify list. + [RT #27087] + +3245. [bug] Don't report a error unchanged serials unless there + were other changes when thawing a zone with + ixfr-fromdifferences. [RT #26845] + +3244. [func] Added readline support to nslookup and nsupdate. + Also simplified nsupdate syntax to make "update" + and "prereq" optional. [RT #24659] + +3243. [port] freebsd,netbsd,bsdi: the thread defaults were not + being properly set. + +3242. [func] Extended the header of raw-format master files to + include the serial number of the zone from which + they were generated, if different (as in the case + of inline-signing zones). This is to be used in + inline-signing zones, to track changes between the + unsigned and signed versions of the zone, which may + have different serial numbers. + + (Note: raw zonefiles generated by this version of + BIND are no longer compatible with prior versions. + To generate a backward-compatible raw zonefile + using dnssec-signzone or named-compilezone, specify + output format "raw=0" instead of simply "raw".) + [RT #26587] 3241. [bug] Address race conditions in the resolver code. [RT #26889] @@ -696,10 +901,21 @@ 3237. [bug] dig -6 didn't work with +trace. [RT #26906] - --- 9.8.2b1 released --- +3236. [bug] Backed out changes #3182 and #3202, related to + EDNS(0) fallback behavior. [RT #26416] + +3235. [func] dns_db_diffx, a extended dns_db_diff which returns + the generated diff and optionally writes it to a + journal. [RT #26386] 3234. [bug] 'make depend' produced invalid makefiles. [RT #26830] +3233. [bug] 'rndc freeze/thaw' didn't work for inline zones. + [RT #26632] + +3232. [bug] Zero zone->curmaster before return in + dns_zone_setmasterswithkeys(). [RT #26732] + 3231. [bug] named could fail to send a incompressible zone. [RT #26796] @@ -717,14 +933,29 @@ 3226. [bug] Address minor resource leakages. [RT #26624] +3225. [bug] Silence spurious "setsockopt(517, IPV6_V6ONLY) failed" + messages. [RT #26507] + +3224. [bug] 'rndc signing' argument parsing was broken. [RT #26684] + +3223. [bug] 'task_test privilege_drop' generated false positives. + [RT #26766] + +3222. [cleanup] Replace dns_journal_{get,set}_bitws with + dns_journal_{get,set}_sourceserial. [RT #26634] + 3221. [bug] Fixed a potential core dump on shutdown due to referencing fetch context after it's been freed. [RT #26720] + --- 9.9.0b2 released --- + 3220. [bug] Change #3186 was incomplete; dns_db_rpz_findips() could fail to set the database version correctly, causing an assertion failure. [RT #26180] +3219. [bug] Disable NOEDNS caching following a timeout. + 3218. [security] Cache lookup could return RRSIG data associated with nonexistent records, leading to an assertion failure. [RT #26590] @@ -733,12 +964,24 @@ 3216. [bug] resolver.c:validated() was not thread-safe. [RT #26478] +3215. [bug] 'rndc recursing' could cause a core dump. [RT #26495] + +3214. [func] Add 'named -U' option to set the number of UDP + listener threads per interface. [RT #26485] + 3213. [doc] Clarify ixfr-from-differences behavior. [RT #25188] 3212. [bug] rbtdb.c: failed to remove a node from the deadnodes list prior to adding a reference to it leading a possible assertion failure. [RT #23219] +3211. [func] dnssec-signzone: "-f -" prints to stdout; "-O full" + option prints in single-line-per-record format. + [RT #20287] + +3210. [bug] Canceling the oldest query due to recursive-client + overload could trigger an assertion failure. [RT #26463] + 3209. [func] Add "dnssec-lookaside 'no'". [RT #24858] 3208. [bug] 'dig -y' handle unknown tsig algorithm better. @@ -748,6 +991,11 @@ 3206. [cleanup] Add ISC information to log at start time. [RT #25484] +3205. [func] Upgrade dig's defaults to better reflect modern + nameserver behavior. Enable "dig +adflag" and + "dig +edns=0" by default. Enable "+dnssec" when + running "dig +trace". [RT #23497] + 3204. [bug] When a master server that has been marked as unreachable sends a NOTIFY, mark it reachable again. [RT #25960] @@ -755,12 +1003,24 @@ 3203. [bug] Increase log level to 'info' for validation failures from expired or not-yet-valid RRSIGs. [RT #21796] +3202. [bug] NOEDNS caching on timeout was too aggressive. + [RT #26416] + +3201. [func] 'rndc querylog' can now be given an on/off parameter + instead of only being used as a toggle. [RT #18351] + 3200. [doc] Some rndc functions were undocumented or were missing from 'rndc -h' output. [RT #25555] +3199. [func] When logging client information, include the name + being queried. [RT #25944] + 3198. [doc] Clarified that dnssec-settime can alter keyfile permissions. [RT #24866] +3197. [bug] Don't try to log the filename and line number when + the config parser can't open a file. [RT #22263] + 3196. [bug] nsupdate: return nonzero exit code when target zone doesn't exist. [RT #25783] @@ -789,10 +1049,50 @@ 3187. [port] win32: support for Visual Studio 2008. [RT #26356] + --- 9.9.0b1 released --- + 3186. [bug] Version/db mis-match in rpz code. [RT #26180] +3185. [func] New 'rndc signing' option for auto-dnssec zones: + - 'rndc signing -list' displays the current + state of signing operations + - 'rndc signing -clear' clears the signing state + records for keys that have fully signed the zone + - 'rndc signing -nsec3param' sets the NSEC3 + parameters for the zone + The 'rndc keydone' syntax is removed. [RT #23729] + +3184. [bug] named had excessive cpu usage when a redirect zone was + configured. [RT #26013] + +3183. [bug] Added RTLD_GLOBAL flag to dlopen call. [RT #26301] + +3182. [bug] Auth servers behind firewalls which block packets + greater than 512 bytes may cause other servers to + perform poorly. Now, adb retains edns information + and caches noedns servers. [RT #23392/24964] + +3181. [func] Inline-signing is now supported for master zones. + [RT #26224] + +3180. [func] Local copies of slave zones are now saved in raw + format by default, to improve startup performance. + 'masterfile-format text;' can be used to override + the default, if desired. [RT #25867] + 3179. [port] kfreebsd: build issues. [RT #26273] +3178. [bug] A race condition introduced by change #3163 could + cause an assertion failure on shutdown. [RT #26271] + +3177. [func] 'rndc keydone', remove the indicator record that + named has finished signing the zone with the + corresponding key. [RT #26206] + +3176. [doc] Corrected example code and added a README to the + sample external DLZ module in contrib/dlz/example. + [RT #26215] + 3175. [bug] Fix how DNSSEC positive wildcard responses from a NSEC3 signed zone are validated. Stop sending a unnecessary NSEC3 record when generating such @@ -803,9 +1103,14 @@ 3173. [port] Correctly validate root DS responses. [RT #25726] +3172. [port] darwin 10.* and freebsd [89] are now built threaded by + default. + 3171. [bug] Exclusively lock the task when adding a zone using 'rndc addzone'. [RT #25600] + --- 9.9.0a3 released --- + 3170. [func] RPZ update: - fix precedence among competing rules - improve ARM text including documenting rule precedence @@ -820,10 +1125,28 @@ 3169. [func] Catch db/version mis-matches when calling dns_db_*(). [RT #26017] +3168. [bug] Nxdomain redirection could trigger an assert with + a ANY query. [RT #26017] + 3167. [bug] Negative answers from forwarders were not being correctly tagged making them appear to not be cached. [RT #25380] +3166. [bug] Upgrading a zone to support inline-signing failed. + [RT #26014] + +3165. [bug] dnssec-signzone could generate new signatures when + resigning, even when valid signatures were already + present. [RT #26025] + +3164. [func] Enable DLZ modules to retrieve client information, + so that responses can be changed depending on the + source address of the query. [RT #25768] + +3163. [bug] Use finer-grained locking in client.c to address + concurrency problems with large numbers of threads. + [RT #26044] + 3162. [test] start.pl: modified to allow for "named.args" in ns*/ subdirectory to override stock arguments to named. Largely from RT#26044, but no separate ticket. @@ -831,24 +1154,52 @@ 3161. [bug] zone.c:del_sigs failed to always reset rdata leading assertion failures. [RT #25880] +3160. [bug] When printing out a NSEC3 record in multiline form + the newline was not being printed causing type codes + to be run together. [RT #25873] + +3159. [bug] On some platforms, named could assert on startup + when running in a chrooted environment without + /proc. [RT #25863] + +3158. [bug] Recursive servers would prefer a particular UDP + socket instead of using all available sockets. + [RT #26038] + 3157. [tuning] Reduce the time spent in "rndc reconfig" by parsing the config file before pausing the server. [RT #21373] +3156. [placeholder] + + --- 9.9.0a2 released --- + 3155. [bug] Fixed a build failure when using contrib DLZ drivers (e.g., mysql, postgresql, etc). [RT #25710] 3154. [bug] Attempting to print an empty rdataset could trigger an assert. [RT #25452] +3153. [func] Extend request-ixfr to zone level and remove the + side effect of forcing an AXFR. [RT #25156] + 3152. [cleanup] Some versions of gcc and clang failed due to incorrect use of __builtin_expect. [RT #25183] 3151. [bug] Queries for type RRSIG or SIG could be handled incorrectly. [RT #21050] +3150. [func] Improved startup and reconfiguration time by + enabling zones to load in multiple threads. [RT #25333] + +3149. [placeholder] + 3148. [bug] Processing of normal queries could be stalled when forwarding a UPDATE message. [RT #24711] +3147. [func] Initial inline signing support. [RT #23657] + + --- 9.9.0a1 released --- + 3146. [test] Fixed gcc4.6.0 errors in ATF. [RT #25598] 3145. [test] Capture output of ATF unit tests in "./atf.out" if @@ -859,29 +1210,31 @@ 3143. [bug] Silence clang compiler warnings. [RT #25174] -3139. [test] Added tests from RFC 6234, RFC 2202, and RFC 1321 - for the hashing algorithms (md5, sha1 - sha512, and - their hmac counterparts). [RT #25067] - - --- 9.8.1 released --- - - --- 9.8.1rc1 released --- +3142. [bug] NAPTR is class agnostic. [RT #25429] 3141. [bug] Silence spurious "zone serial (0) unchanged" messages associated with empty zones. [RT #25079] +3140. [func] New command "rndc flushtree " clears the + specified name from the server cache along with + all names under it. [RT #19970] + +3139. [test] Added tests from RFC 6234, RFC 2202, and RFC 1321 + for the hashing algorithms (md5, sha1 - sha512, and + their hmac counterparts). [RT #25067] + 3138. [bug] Address memory leaks and out-of-order operations when shutting named down. [RT #25210] +3137. [func] Improve hardware scalability by allowing multiple + worker threads to process incoming UDP packets. + This can significantly increase query throughput + on some systems. [RT #22992] + 3136. [func] Add RFC 1918 reverse zones to the list of built-in empty zones switched on by the 'empty-zones-enable' option. [RT #24990] - Note: empty-zones-enable must be "yes;" or a empty - zone needs to be disabled in named.conf for RFC 1918 - zones to be activated. This requirement may be - removed in future releases. - 3135. [port] FreeBSD: workaround broken IPV6_USE_MIN_MTU processing. See http://www.freebsd.org/cgi/query-pr.cgi?pr=158307 [RT #24950] @@ -889,19 +1242,34 @@ 3134. [bug] Improve the accuracy of dnssec-signzone's signing statistics. [RT #16030] - --- 9.8.1b3 released --- - 3133. [bug] Change #3114 was incomplete. [RT #24577] +3132. [placeholder] + 3131. [tuning] Improve scalability by allocating one zone task per 100 zones at startup time, rather than using a fixed-size task table. [RT #24406] +3130. [func] Support alternate methods for managing a dynamic + zone's serial number. Two methods are currently + defined using serial-update-method, "increment" + (default) and "unixtime". [RT #23849] + 3129. [bug] Named could crash on 'rndc reconfig' when allow-new-zones was set to yes and named ACLs were used. [RT #22739] - --- 9.8.1b2 released --- +3128. [func] Inserting an NSEC3PARAM via dynamic update in an + auto-dnssec zone that has not been signed yet + will cause it to be signed with the specified NSEC3 + parameters when keys are activated. The + NSEC3PARAM record will not appear in the zone until + it is signed, but the parameters will be stored. + [RT #23684] + +3127. [bug] 'rndc thaw' will now remove a zone's journal file + if the zone serial number has been changed and + ixfr-from-differences is not in use. [RT #24687] 3126. [security] Using DNAME record to generate replacements caused RPZ to exit with a assertion failure. [RT #24766] @@ -941,6 +1309,12 @@ never-implemented 'auto-dnssec create' option. [RT #24533] +3116. [func] New 'dnssec-update-mode' option controls updates + of DNSSEC records in signed dynamic zones. Set to + 'no-resign' to disable automatic RRSIG regeneration + while retaining the ability to sign new or changed + data. [RT #24533] + 3115. [bug] Named could fail to return requested data when following a CNAME that points into the same zone. [RT #24455] @@ -951,8 +1325,6 @@ 3113. [doc] Document the relationship between serial-query-rate and NOTIFY messages. - --- 9.8.1b1 released --- - 3112. [doc] Add missing descriptions of the update policy name types "ms-self", "ms-subdomain", "krb5-self" and "krb5-subdomain", which allow machines to update @@ -965,9 +1337,23 @@ 3110. [bug] dnssec-signzone: Wrong error message could appear when attempting to sign with no KSK. [RT #24369] +3109. [func] The also-notify option now uses the same syntax + as a zone's masters clause. This means it is + now possible to specify a TSIG key to use when + sending notifies to a given server, or to include + an explicit named masters list in an also-notfiy + statement. [RT #23508] + +3108. [cleanup] dnssec-signzone: Clarified some error and + warning messages; removed #ifdef ALLOW_KSKLESS_ZONES + code (use -P instead). [RT #20852] + 3107. [bug] dnssec-signzone: Report the correct number of ZSKs when using -x. [RT #20852] +3106. [func] When logging client requests, include the name of + the TSIG key if any. [RT #23619] + 3105. [bug] GOST support can be suppressed by "configure --without-gost" [RT #24367] @@ -977,6 +1363,12 @@ instead of in the options statement could trigger an assertion failure in named-checkconf. [RT #24382] *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Wed Aug 14 11:11:49 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B7A0970C; Wed, 14 Aug 2013 11:11:49 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8CF252168; Wed, 14 Aug 2013 11:11:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EBBnEN011873; Wed, 14 Aug 2013 11:11:49 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EBBnwp011872; Wed, 14 Aug 2013 11:11:49 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201308141111.r7EBBnwp011872@svn.freebsd.org> From: Erwin Lansing Date: Wed, 14 Aug 2013 11:11:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254323 - vendor/bind9/9.9.3-P2 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 11:11:49 -0000 Author: erwin Date: Wed Aug 14 11:11:49 2013 New Revision: 254323 URL: http://svnweb.freebsd.org/changeset/base/254323 Log: Tag the Bind 9.9.3-P2 import Approved by: delphij (mentor, implicit) Sponsored by: DK Hostmaster A/S Added: vendor/bind9/9.9.3-P2/ - copied from r254322, vendor/bind9/dist/ From owner-svn-src-vendor@FreeBSD.ORG Fri Aug 16 07:03:29 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 52A59422; Fri, 16 Aug 2013 07:03:29 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3EB2C2462; Fri, 16 Aug 2013 07:03:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7G73TvE040727; Fri, 16 Aug 2013 07:03:29 GMT (envelope-from cy@svn.freebsd.org) Received: (from cy@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7G73Tvb040724; Fri, 16 Aug 2013 07:03:29 GMT (envelope-from cy@svn.freebsd.org) Message-Id: <201308160703.r7G73Tvb040724@svn.freebsd.org> From: Cy Schubert Date: Fri, 16 Aug 2013 07:03:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254401 - vendor-sys/ipfilter/dist/netinet X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 07:03:29 -0000 Author: cy Date: Fri Aug 16 07:03:28 2013 New Revision: 254401 URL: http://svnweb.freebsd.org/changeset/base/254401 Log: Include three new files that should be in vendor-sys branch too. Approved by: glebius (Mentor) Added: vendor-sys/ipfilter/dist/netinet/ip_dns_pxy.c vendor-sys/ipfilter/dist/netinet/ip_nat6.c vendor-sys/ipfilter/dist/netinet/ip_tftp_pxy.c Added: vendor-sys/ipfilter/dist/netinet/ip_dns_pxy.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/ipfilter/dist/netinet/ip_dns_pxy.c Fri Aug 16 07:03:28 2013 (r254401) @@ -0,0 +1,402 @@ +/* + * Copyright (C) 2012 by Darren Reed. + * + * See the IPFILTER.LICENCE file for details on licencing. + * + * $Id: ip_dns_pxy.c,v 1.1.2.10 2012/07/22 08:04:23 darren_r Exp $ + */ + +#define IPF_DNS_PROXY + +/* + * map ... proxy port dns/udp 53 { block .cnn.com; } + */ +typedef struct ipf_dns_filter { + struct ipf_dns_filter *idns_next; + char *idns_name; + int idns_namelen; + int idns_pass; +} ipf_dns_filter_t; + + +typedef struct ipf_dns_softc_s { + ipf_dns_filter_t *ipf_p_dns_list; + ipfrwlock_t ipf_p_dns_rwlock; + u_long ipf_p_dns_compress; + u_long ipf_p_dns_toolong; + u_long ipf_p_dns_nospace; +} ipf_dns_softc_t; + +int ipf_p_dns_allow_query __P((ipf_dns_softc_t *, dnsinfo_t *)); +int ipf_p_dns_ctl __P((ipf_main_softc_t *, void *, ap_ctl_t *)); +int ipf_p_dns_del __P((ipf_main_softc_t *, ap_session_t *)); +int ipf_p_dns_get_name __P((ipf_dns_softc_t *, char *, int, char *, int)); +int ipf_p_dns_inout __P((void *, fr_info_t *, ap_session_t *, nat_t *)); +int ipf_p_dns_match __P((fr_info_t *, ap_session_t *, nat_t *)); +int ipf_p_dns_match_names __P((ipf_dns_filter_t *, char *, int)); +int ipf_p_dns_new __P((void *, fr_info_t *, ap_session_t *, nat_t *)); +void *ipf_p_dns_soft_create __P((ipf_main_softc_t *)); +void ipf_p_dns_soft_destroy __P((ipf_main_softc_t *, void *)); + +typedef struct { + u_char dns_id[2]; + u_short dns_ctlword; + u_short dns_qdcount; + u_short dns_ancount; + u_short dns_nscount; + u_short dns_arcount; +} ipf_dns_hdr_t; + +#define DNS_QR(x) ((ntohs(x) & 0x8000) >> 15) +#define DNS_OPCODE(x) ((ntohs(x) & 0x7800) >> 11) +#define DNS_AA(x) ((ntohs(x) & 0x0400) >> 10) +#define DNS_TC(x) ((ntohs(x) & 0x0200) >> 9) +#define DNS_RD(x) ((ntohs(x) & 0x0100) >> 8) +#define DNS_RA(x) ((ntohs(x) & 0x0080) >> 7) +#define DNS_Z(x) ((ntohs(x) & 0x0070) >> 4) +#define DNS_RCODE(x) ((ntohs(x) & 0x000f) >> 0) + + +void * +ipf_p_dns_soft_create(softc) + ipf_main_softc_t *softc; +{ + ipf_dns_softc_t *softd; + + KMALLOC(softd, ipf_dns_softc_t *); + if (softd == NULL) + return NULL; + + bzero((char *)softd, sizeof(*softd)); + RWLOCK_INIT(&softd->ipf_p_dns_rwlock, "ipf dns rwlock"); + + return softd; +} + + +void +ipf_p_dns_soft_destroy(softc, arg) + ipf_main_softc_t *softc; + void *arg; +{ + ipf_dns_softc_t *softd = arg; + ipf_dns_filter_t *idns; + + while ((idns = softd->ipf_p_dns_list) != NULL) { + KFREES(idns->idns_name, idns->idns_namelen); + idns->idns_name = NULL; + idns->idns_namelen = 0; + softd->ipf_p_dns_list = idns->idns_next; + KFREE(idns); + } + RW_DESTROY(&softd->ipf_p_dns_rwlock); + + KFREE(softd); +} + + +int +ipf_p_dns_ctl(softc, arg, ctl) + ipf_main_softc_t *softc; + void *arg; + ap_ctl_t *ctl; +{ + ipf_dns_softc_t *softd = arg; + ipf_dns_filter_t *tmp, *idns, **idnsp; + int error = 0; + + /* + * To make locking easier. + */ + KMALLOC(tmp, ipf_dns_filter_t *); + + WRITE_ENTER(&softd->ipf_p_dns_rwlock); + for (idnsp = &softd->ipf_p_dns_list; (idns = *idnsp) != NULL; + idnsp = &idns->idns_next) { + if (idns->idns_namelen != ctl->apc_dsize) + continue; + if (!strncmp(ctl->apc_data, idns->idns_name, + idns->idns_namelen)) + break; + } + + switch (ctl->apc_cmd) + { + case APC_CMD_DEL : + if (idns == NULL) { + IPFERROR(80006); + error = ESRCH; + break; + } + *idnsp = idns->idns_next; + idns->idns_next = NULL; + KFREES(idns->idns_name, idns->idns_namelen); + idns->idns_name = NULL; + idns->idns_namelen = 0; + KFREE(idns); + break; + case APC_CMD_ADD : + if (idns != NULL) { + IPFERROR(80007); + error = EEXIST; + break; + } + if (tmp == NULL) { + IPFERROR(80008); + error = ENOMEM; + break; + } + idns = tmp; + tmp = NULL; + idns->idns_namelen = ctl->apc_dsize; + idns->idns_name = ctl->apc_data; + idns->idns_pass = ctl->apc_arg; + idns->idns_next = NULL; + *idnsp = idns; + ctl->apc_data = NULL; + ctl->apc_dsize = 0; + break; + default : + IPFERROR(80009); + error = EINVAL; + break; + } + RWLOCK_EXIT(&softd->ipf_p_dns_rwlock); + + if (tmp != NULL) { + KFREE(tmp); + tmp = NULL; + } + + return error; +} + + +/* ARGSUSED */ +int +ipf_p_dns_new(arg, fin, aps, nat) + void *arg; + fr_info_t *fin; + ap_session_t *aps; + nat_t *nat; +{ + dnsinfo_t *di; + int dlen; + + if (fin->fin_v != 4) + return -1; + + dlen = fin->fin_dlen - sizeof(udphdr_t); + if (dlen < sizeof(ipf_dns_hdr_t)) { + /* + * No real DNS packet is smaller than that. + */ + return -1; + } + + aps->aps_psiz = sizeof(dnsinfo_t); + KMALLOCS(di, dnsinfo_t *, sizeof(dnsinfo_t)); + if (di == NULL) { + printf("ipf_dns_new:KMALLOCS(%d) failed\n", sizeof(*di)); + return -1; + } + + MUTEX_INIT(&di->dnsi_lock, "dns lock"); + + aps->aps_data = di; + + dlen = fin->fin_dlen - sizeof(udphdr_t); + COPYDATA(fin->fin_m, fin->fin_hlen + sizeof(udphdr_t), + MIN(dlen, sizeof(di->dnsi_buffer)), di->dnsi_buffer); + di->dnsi_id = (di->dnsi_buffer[0] << 8) | di->dnsi_buffer[1]; + return 0; +} + + +/* ARGSUSED */ +int +ipf_p_dns_del(softc, aps) + ipf_main_softc_t *softc; + ap_session_t *aps; +{ +#ifdef USE_MUTEXES + dnsinfo_t *di = aps->aps_data; + + MUTEX_DESTROY(&di->dnsi_lock); +#endif + KFREES(aps->aps_data, aps->aps_psiz); + aps->aps_data = NULL; + aps->aps_psiz = 0; + return 0; +} + + +/* + * Tries to match the base string (in our ACL) with the query from a packet. + */ +int +ipf_p_dns_match_names(idns, query, qlen) + ipf_dns_filter_t *idns; + char *query; + int qlen; +{ + int blen; + char *base; + + blen = idns->idns_namelen; + base = idns->idns_name; + + if (blen > qlen) + return 1; + + if (blen == qlen) + return strncasecmp(base, query, qlen); + + /* + * If the base string string is shorter than the query, allow the + * tail of the base to match the same length tail of the query *if*: + * - the base string starts with a '*' (*cnn.com) + * - the base string represents a domain (.cnn.com) + * as otherwise it would not be possible to block just "cnn.com" + * without also impacting "foocnn.com", etc. + */ + if (*base == '*') { + base++; + blen--; + } else if (*base != '.') + return 1; + + return strncasecmp(base, query + qlen - blen, blen); +} + + +int +ipf_p_dns_get_name(softd, start, len, buffer, buflen) + ipf_dns_softc_t *softd; + char *start; + int len; + char *buffer; + int buflen; +{ + char *s, *t, clen; + int slen, blen; + + s = start; + t = buffer; + slen = len; + blen = buflen - 1; /* Always make room for trailing \0 */ + + while (*s != '\0') { + clen = *s; + if ((clen & 0xc0) == 0xc0) { /* Doesn't do compression */ + softd->ipf_p_dns_compress++; + return 0; + } + if (clen > slen) { + softd->ipf_p_dns_toolong++; + return 0; /* Does the name run off the end? */ + } + if ((clen + 1) > blen) { + softd->ipf_p_dns_nospace++; + return 0; /* Enough room for name+.? */ + } + s++; + bcopy(s, t, clen); + t += clen; + s += clen; + *t++ = '.'; + slen -= clen; + blen -= (clen + 1); + } + + *(t - 1) = '\0'; + return s - start; +} + + +int +ipf_p_dns_allow_query(softd, dnsi) + ipf_dns_softc_t *softd; + dnsinfo_t *dnsi; +{ + ipf_dns_filter_t *idns; + int len; + + len = strlen(dnsi->dnsi_buffer); + + for (idns = softd->ipf_p_dns_list; idns != NULL; idns = idns->idns_next) + if (ipf_p_dns_match_names(idns, dnsi->dnsi_buffer, len) == 0) + return idns->idns_pass; + return 0; +} + + +/* ARGSUSED */ +int +ipf_p_dns_inout(arg, fin, aps, nat) + void *arg; + fr_info_t *fin; + ap_session_t *aps; + nat_t *nat; +{ + ipf_dns_softc_t *softd = arg; + ipf_dns_hdr_t *dns; + dnsinfo_t *di; + char *data; + int dlen, q, rc = 0; + + if (fin->fin_dlen < sizeof(*dns)) + return APR_ERR(1); + + dns = (ipf_dns_hdr_t *)((char *)fin->fin_dp + sizeof(udphdr_t)); + + q = dns->dns_qdcount; + + data = (char *)(dns + 1); + dlen = fin->fin_dlen - sizeof(*dns) - sizeof(udphdr_t); + + di = aps->aps_data; + + READ_ENTER(&softd->ipf_p_dns_rwlock); + MUTEX_ENTER(&di->dnsi_lock); + + for (; (dlen > 0) && (q > 0); q--) { + int len; + + len = ipf_p_dns_get_name(softd, data, dlen, di->dnsi_buffer, + sizeof(di->dnsi_buffer)); + if (len == 0) { + rc = 1; + break; + } + rc = ipf_p_dns_allow_query(softd, di); + if (rc != 0) + break; + data += len; + dlen -= len; + } + MUTEX_EXIT(&di->dnsi_lock); + RWLOCK_EXIT(&softd->ipf_p_dns_rwlock); + + return APR_ERR(rc); +} + + +/* ARGSUSED */ +int +ipf_p_dns_match(fin, aps, nat) + fr_info_t *fin; + ap_session_t *aps; + nat_t *nat; +{ + dnsinfo_t *di = aps->aps_data; + ipf_dns_hdr_t *dnh; + + if ((fin->fin_dlen < sizeof(u_short)) || (fin->fin_flx & FI_FRAG)) + return -1; + + dnh = (ipf_dns_hdr_t *)((char *)fin->fin_dp + sizeof(udphdr_t)); + if (((dnh->dns_id[0] << 8) | dnh->dns_id[1]) != di->dnsi_id) + return -1; + return 0; +} Added: vendor-sys/ipfilter/dist/netinet/ip_nat6.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/ipfilter/dist/netinet/ip_nat6.c Fri Aug 16 07:03:28 2013 (r254401) @@ -0,0 +1,4098 @@ +/* + * Copyright (C) 2012 by Darren Reed. + * + * See the IPFILTER.LICENCE file for details on licencing. + */ +#if defined(KERNEL) || defined(_KERNEL) +# undef KERNEL +# undef ipf_nat6_KERNEL +# define KERNEL 1 +# define ipf_nat6_KERNEL 1 +#endif +#include +#include +#include +#include +#include +#if defined(_KERNEL) && defined(__NetBSD_Version__) && \ + (__NetBSD_Version__ >= 399002000) +# include +#endif +#if !defined(_KERNEL) +# include +# include +# include +# define ipf_nat6_KERNEL +# ifdef ipf_nat6__OpenBSD__ +struct file; +# endif +# include +# undef ipf_nat6_KERNEL +#endif +#if defined(_KERNEL) && (__FreeBSD_version >= 220000) +# include +# include +#else +# include +#endif +#if !defined(AIX) +# include +#endif +#if !defined(linux) +# include +#endif +#include +#if defined(_KERNEL) +# include +# if !defined(__SVR4) && !defined(__svr4__) +# include +# endif +#endif +#if defined(__SVR4) || defined(__svr4__) +# include +# include +# ifdef ipf_nat6_KERNEL +# include +# endif +# include +# include +#endif +#if ipf_nat6__FreeBSD_version >= 300000 +# include +#endif +#include +#if ipf_nat6__FreeBSD_version >= 300000 +# include +#endif +#ifdef sun +# include +#endif +#include +#include +#include +#include + +#ifdef RFC1825 +# include +# include +extern struct ifnet vpnif; +#endif + +#if !defined(linux) +# include +#endif +#include +#include +#include +#include "netinet/ip_compat.h" +#include +#include "netinet/ip_fil.h" +#include "netinet/ip_nat.h" +#include "netinet/ip_frag.h" +#include "netinet/ip_state.h" +#include "netinet/ip_proxy.h" +#include "netinet/ip_lookup.h" +#include "netinet/ip_dstlist.h" +#include "netinet/ip_sync.h" +#if (__FreeBSD_version >= 300000) +# include +#endif +#ifdef HAS_SYS_MD5_H +# include +#else +# include "md5.h" +#endif +/* END OF INCLUDES */ + +#undef SOCKADDR_IN +#define SOCKADDR_IN struct sockaddr_in + +#if !defined(lint) +static const char rcsid[] = "@(#)$Id: ip_nat6.c,v 1.22.2.20 2012/07/22 08:04:23 darren_r Exp $"; +#endif + +#ifdef USE_INET6 +static struct hostmap *ipf_nat6_hostmap __P((ipf_nat_softc_t *, ipnat_t *, + i6addr_t *, i6addr_t *, + i6addr_t *, u_32_t)); +static int ipf_nat6_match __P((fr_info_t *, ipnat_t *)); +static void ipf_nat6_tabmove __P((ipf_nat_softc_t *, nat_t *)); +static int ipf_nat6_decap __P((fr_info_t *, nat_t *)); +static int ipf_nat6_nextaddr __P((fr_info_t *, nat_addr_t *, i6addr_t *, + i6addr_t *)); +static int ipf_nat6_icmpquerytype __P((int)); +static int ipf_nat6_out __P((fr_info_t *, nat_t *, int, u_32_t)); +static int ipf_nat6_in __P((fr_info_t *, nat_t *, int, u_32_t)); +static int ipf_nat6_builddivertmp __P((ipf_nat_softc_t *, ipnat_t *)); +static int ipf_nat6_nextaddrinit __P((ipf_main_softc_t *, char *, + nat_addr_t *, int, void *)); +static int ipf_nat6_insert __P((ipf_main_softc_t *, ipf_nat_softc_t *, + nat_t *)); + + +#define NINCLSIDE6(y,x) ATOMIC_INCL(softn->ipf_nat_stats.ns_side6[y].x) +#define NBUMPSIDE(y,x) softn->ipf_nat_stats.ns_side[y].x++ +#define NBUMPSIDE6(y,x) softn->ipf_nat_stats.ns_side6[y].x++ +#define NBUMPSIDE6D(y,x) \ + do { \ + softn->ipf_nat_stats.ns_side6[y].x++; \ + DT(x); \ + } while (0) +#define NBUMPSIDE6DX(y,x,z) \ + do { \ + softn->ipf_nat_stats.ns_side6[y].x++; \ + DT(z); \ + } while (0) + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_ruleaddrinit */ +/* Returns: int - 0 == success, else failure */ +/* Parameters: in(I) - NAT rule that requires address fields to be init'd */ +/* */ +/* For each of the source/destination address fields in a NAT rule, call */ +/* ipf_nat6_nextaddrinit() to prepare the structure for active duty. Other */ +/* IPv6 specific actions can also be taken care of here. */ +/* ------------------------------------------------------------------------ */ +int +ipf_nat6_ruleaddrinit(softc, softn, n) + ipf_main_softc_t *softc; + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + int idx, error; + + if (n->in_redir == NAT_BIMAP) { + n->in_ndstip6 = n->in_osrcip6; + n->in_ndstmsk6 = n->in_osrcmsk6; + n->in_odstip6 = n->in_nsrcip6; + n->in_odstmsk6 = n->in_nsrcmsk6; + + } + + if (n->in_redir & NAT_REDIRECT) + idx = 1; + else + idx = 0; + /* + * Initialise all of the address fields. + */ + error = ipf_nat6_nextaddrinit(softc, n->in_names, &n->in_osrc, 1, + n->in_ifps[idx]); + if (error != 0) + return error; + + error = ipf_nat6_nextaddrinit(softc, n->in_names, &n->in_odst, 1, + n->in_ifps[idx]); + if (error != 0) + return error; + + error = ipf_nat6_nextaddrinit(softc, n->in_names, &n->in_nsrc, 1, + n->in_ifps[idx]); + if (error != 0) + return error; + + error = ipf_nat6_nextaddrinit(softc, n->in_names, &n->in_ndst, 1, + n->in_ifps[idx]); + if (error != 0) + return error; + + if (n->in_redir & NAT_DIVERTUDP) + ipf_nat6_builddivertmp(softn, n); + return 0; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_addrdr */ +/* Returns: Nil */ +/* Parameters: n(I) - pointer to NAT rule to add */ +/* */ +/* Adds a redirect rule to the hash table of redirect rules and the list of */ +/* loaded NAT rules. Updates the bitmask indicating which netmasks are in */ +/* use by redirect rules. */ +/* ------------------------------------------------------------------------ */ +void +ipf_nat6_addrdr(softn, n) + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + i6addr_t *mask; + ipnat_t **np; + i6addr_t j; + u_int hv; + int k; + + if ((n->in_redir & NAT_BIMAP) == NAT_BIMAP) { + k = count6bits(n->in_nsrcmsk6.i6); + mask = &n->in_nsrcmsk6; + IP6_AND(&n->in_odstip6, &n->in_odstmsk6, &j); + hv = NAT_HASH_FN6(&j, 0, softn->ipf_nat_rdrrules_sz); + + } else if (n->in_odstatype == FRI_NORMAL) { + k = count6bits(n->in_odstmsk6.i6); + mask = &n->in_odstmsk6; + IP6_AND(&n->in_odstip6, &n->in_odstmsk6, &j); + hv = NAT_HASH_FN6(&j, 0, softn->ipf_nat_rdrrules_sz); + } else { + k = 0; + hv = 0; + mask = NULL; + } + ipf_inet6_mask_add(k, mask, &softn->ipf_nat6_rdr_mask); + + np = softn->ipf_nat_rdr_rules + hv; + while (*np != NULL) + np = &(*np)->in_rnext; + n->in_rnext = NULL; + n->in_prnext = np; + n->in_hv[0] = hv; + n->in_use++; + *np = n; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_addmap */ +/* Returns: Nil */ +/* Parameters: n(I) - pointer to NAT rule to add */ +/* */ +/* Adds a NAT map rule to the hash table of rules and the list of loaded */ +/* NAT rules. Updates the bitmask indicating which netmasks are in use by */ +/* redirect rules. */ +/* ------------------------------------------------------------------------ */ +void +ipf_nat6_addmap(softn, n) + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + i6addr_t *mask; + ipnat_t **np; + i6addr_t j; + u_int hv; + int k; + + if (n->in_osrcatype == FRI_NORMAL) { + k = count6bits(n->in_osrcmsk6.i6); + mask = &n->in_osrcmsk6; + IP6_AND(&n->in_osrcip6, &n->in_osrcmsk6, &j); + hv = NAT_HASH_FN6(&j, 0, softn->ipf_nat_maprules_sz); + } else { + k = 0; + hv = 0; + mask = NULL; + } + ipf_inet6_mask_add(k, mask, &softn->ipf_nat6_map_mask); + + np = softn->ipf_nat_map_rules + hv; + while (*np != NULL) + np = &(*np)->in_mnext; + n->in_mnext = NULL; + n->in_pmnext = np; + n->in_hv[1] = hv; + n->in_use++; + *np = n; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_del_rdr */ +/* Returns: Nil */ +/* Parameters: n(I) - pointer to NAT rule to delete */ +/* */ +/* Removes a NAT rdr rule from the hash table of NAT rdr rules. */ +/* ------------------------------------------------------------------------ */ +void +ipf_nat6_delrdr(softn, n) + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + i6addr_t *mask; + int k; + + if ((n->in_redir & NAT_BIMAP) == NAT_BIMAP) { + k = count6bits(n->in_nsrcmsk6.i6); + mask = &n->in_nsrcmsk6; + } else if (n->in_odstatype == FRI_NORMAL) { + k = count6bits(n->in_odstmsk6.i6); + mask = &n->in_odstmsk6; + } else { + k = 0; + mask = NULL; + } + ipf_inet6_mask_del(k, mask, &softn->ipf_nat6_rdr_mask); + + if (n->in_rnext != NULL) + n->in_rnext->in_prnext = n->in_prnext; + *n->in_prnext = n->in_rnext; + n->in_use--; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_delmap */ +/* Returns: Nil */ +/* Parameters: n(I) - pointer to NAT rule to delete */ +/* */ +/* Removes a NAT map rule from the hash table of NAT map rules. */ +/* ------------------------------------------------------------------------ */ +void +ipf_nat6_delmap(softn, n) + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + i6addr_t *mask; + int k; + + if (n->in_osrcatype == FRI_NORMAL) { + k = count6bits(n->in_osrcmsk6.i6); + mask = &n->in_osrcmsk6; + } else { + k = 0; + mask = NULL; + } + ipf_inet6_mask_del(k, mask, &softn->ipf_nat6_map_mask); + + if (n->in_mnext != NULL) + n->in_mnext->in_pmnext = n->in_pmnext; + *n->in_pmnext = n->in_mnext; + n->in_use--; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_hostmap */ +/* Returns: struct hostmap* - NULL if no hostmap could be created, */ +/* else a pointer to the hostmapping to use */ +/* Parameters: np(I) - pointer to NAT rule */ +/* real(I) - real IP address */ +/* map(I) - mapped IP address */ +/* port(I) - destination port number */ +/* Write Locks: ipf_nat */ +/* */ +/* Check if an ip address has already been allocated for a given mapping */ +/* that is not doing port based translation. If is not yet allocated, then */ +/* create a new entry if a non-NULL NAT rule pointer has been supplied. */ +/* ------------------------------------------------------------------------ */ +static struct hostmap * +ipf_nat6_hostmap(softn, np, src, dst, map, port) + ipf_nat_softc_t *softn; + ipnat_t *np; + i6addr_t *src, *dst, *map; + u_32_t port; +{ + hostmap_t *hm; + u_int hv; + + hv = (src->i6[3] ^ dst->i6[3]); + hv += (src->i6[2] ^ dst->i6[2]); + hv += (src->i6[1] ^ dst->i6[1]); + hv += (src->i6[0] ^ dst->i6[0]); + hv += src->i6[3]; + hv += src->i6[2]; + hv += src->i6[1]; + hv += src->i6[0]; + hv += dst->i6[3]; + hv += dst->i6[2]; + hv += dst->i6[1]; + hv += dst->i6[0]; + hv %= HOSTMAP_SIZE; + for (hm = softn->ipf_hm_maptable[hv]; hm; hm = hm->hm_next) + if (IP6_EQ(&hm->hm_osrc6, src) && + IP6_EQ(&hm->hm_odst6, dst) && + ((np == NULL) || (np == hm->hm_ipnat)) && + ((port == 0) || (port == hm->hm_port))) { + softn->ipf_nat_stats.ns_hm_addref++; + hm->hm_ref++; + return hm; + } + + if (np == NULL) { + softn->ipf_nat_stats.ns_hm_nullnp++; + return NULL; + } + + KMALLOC(hm, hostmap_t *); + if (hm) { + hm->hm_next = softn->ipf_hm_maplist; + hm->hm_pnext = &softn->ipf_hm_maplist; + if (softn->ipf_hm_maplist != NULL) + softn->ipf_hm_maplist->hm_pnext = &hm->hm_next; + softn->ipf_hm_maplist = hm; + hm->hm_hnext = softn->ipf_hm_maptable[hv]; + hm->hm_phnext = softn->ipf_hm_maptable + hv; + if (softn->ipf_hm_maptable[hv] != NULL) + softn->ipf_hm_maptable[hv]->hm_phnext = &hm->hm_hnext; + softn->ipf_hm_maptable[hv] = hm; + hm->hm_ipnat = np; + np->in_use++; + hm->hm_osrcip6 = *src; + hm->hm_odstip6 = *dst; + hm->hm_nsrcip6 = *map; + hm->hm_ndstip6.i6[0] = 0; + hm->hm_ndstip6.i6[1] = 0; + hm->hm_ndstip6.i6[2] = 0; + hm->hm_ndstip6.i6[3] = 0; + hm->hm_ref = 1; + hm->hm_port = port; + hm->hm_hv = hv; + hm->hm_v = 6; + softn->ipf_nat_stats.ns_hm_new++; + } else { + softn->ipf_nat_stats.ns_hm_newfail++; + } + return hm; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_newmap */ +/* Returns: int - -1 == error, 0 == success */ +/* Parameters: fin(I) - pointer to packet information */ +/* nat(I) - pointer to NAT entry */ +/* ni(I) - pointer to structure with misc. information needed */ +/* to create new NAT entry. */ +/* */ +/* Given an empty NAT structure, populate it with new information about a */ +/* new NAT session, as defined by the matching NAT rule. */ +/* ni.nai_ip is passed in uninitialised and must be set, in host byte order,*/ +/* to the new IP address for the translation. */ +/* ------------------------------------------------------------------------ */ +int +ipf_nat6_newmap(fin, nat, ni) + fr_info_t *fin; + nat_t *nat; + natinfo_t *ni; +{ + ipf_main_softc_t *softc = fin->fin_main_soft; + ipf_nat_softc_t *softn = softc->ipf_nat_soft; + u_short st_port, dport, sport, port, sp, dp; + i6addr_t in, st_ip; + hostmap_t *hm; + u_32_t flags; + ipnat_t *np; + nat_t *natl; + int l; + + /* + * If it's an outbound packet which doesn't match any existing + * record, then create a new port + */ + l = 0; + hm = NULL; + np = ni->nai_np; + st_ip = np->in_snip6; + st_port = np->in_spnext; + flags = nat->nat_flags; + + if (flags & IPN_ICMPQUERY) { + sport = fin->fin_data[1]; + dport = 0; + } else { + sport = htons(fin->fin_data[0]); + dport = htons(fin->fin_data[1]); + } + + /* + * Do a loop until we either run out of entries to try or we find + * a NAT mapping that isn't currently being used. This is done + * because the change to the source is not (usually) being fixed. + */ + do { + port = 0; + in = np->in_nsrc.na_nextaddr; + if (l == 0) { + /* + * Check to see if there is an existing NAT + * setup for this IP address pair. + */ + hm = ipf_nat6_hostmap(softn, np, &fin->fin_src6, + &fin->fin_dst6, &in, 0); + if (hm != NULL) + in = hm->hm_nsrcip6; + } else if ((l == 1) && (hm != NULL)) { + ipf_nat_hostmapdel(softc, &hm); + } + + nat->nat_hm = hm; + + if (IP6_ISONES(&np->in_nsrcmsk6) && (np->in_spnext == 0)) { + if (l > 0) { + NBUMPSIDE6DX(1, ns_exhausted, ns_exhausted_1); + return -1; + } + } + + if ((np->in_redir == NAT_BIMAP) && + IP6_EQ(&np->in_osrcmsk6, &np->in_nsrcmsk6)) { + i6addr_t temp; + /* + * map the address block in a 1:1 fashion + */ + temp.i6[0] = fin->fin_src6.i6[0] & + ~np->in_osrcmsk6.i6[0]; + temp.i6[1] = fin->fin_src6.i6[1] & + ~np->in_osrcmsk6.i6[1]; + temp.i6[2] = fin->fin_src6.i6[2] & + ~np->in_osrcmsk6.i6[0]; + temp.i6[3] = fin->fin_src6.i6[3] & + ~np->in_osrcmsk6.i6[3]; + in = np->in_nsrcip6; + IP6_MERGE(&in, &temp, &np->in_osrc); + +#ifdef NEED_128BIT_MATH + } else if (np->in_redir & NAT_MAPBLK) { + if ((l >= np->in_ppip) || ((l > 0) && + !(flags & IPN_TCPUDP))) { + NBUMPSIDE6DX(1, ns_exhausted, ns_exhausted_2); + return -1; + } + /* + * map-block - Calculate destination address. + */ + IP6_MASK(&in, &fin->fin_src6, &np->in_osrcmsk6); + in = ntohl(in); + inb = in; + in.s_addr /= np->in_ippip; + in.s_addr &= ntohl(~np->in_nsrcmsk6); + in.s_addr += ntohl(np->in_nsrcaddr6); + /* + * Calculate destination port. + */ + if ((flags & IPN_TCPUDP) && + (np->in_ppip != 0)) { + port = ntohs(sport) + l; + port %= np->in_ppip; + port += np->in_ppip * + (inb.s_addr % np->in_ippip); + port += MAPBLK_MINPORT; + port = htons(port); + } +#endif + + } else if (IP6_ISZERO(&np->in_nsrcaddr) && + IP6_ISONES(&np->in_nsrcmsk)) { + /* + * 0/32 - use the interface's IP address. + */ + if ((l > 0) || + ipf_ifpaddr(softc, 6, FRI_NORMAL, fin->fin_ifp, + &in, NULL) == -1) { + NBUMPSIDE6DX(1, ns_new_ifpaddr, + ns_new_ifpaddr_1); + return -1; + } + + } else if (IP6_ISZERO(&np->in_nsrcip6) && + IP6_ISZERO(&np->in_nsrcmsk6)) { + /* + * 0/0 - use the original source address/port. + */ + if (l > 0) { + NBUMPSIDE6DX(1, ns_exhausted, ns_exhausted_3); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Fri Aug 16 07:16:27 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 220AF75B; Fri, 16 Aug 2013 07:16:27 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0051124F4; Fri, 16 Aug 2013 07:16:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7G7GQIb045393; Fri, 16 Aug 2013 07:16:26 GMT (envelope-from cy@svn.freebsd.org) Received: (from cy@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7G7GQ1N045390; Fri, 16 Aug 2013 07:16:26 GMT (envelope-from cy@svn.freebsd.org) Message-Id: <201308160716.r7G7GQ1N045390@svn.freebsd.org> From: Cy Schubert Date: Fri, 16 Aug 2013 07:16:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254403 - vendor-sys/ipfilter/5-1-2/netinet X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 07:16:27 -0000 Author: cy Date: Fri Aug 16 07:16:26 2013 New Revision: 254403 URL: http://svnweb.freebsd.org/changeset/base/254403 Log: Tag three new files that should have been in vendor-sys in r254219 and r254221. Approved by: glebius (Mentor) Added: vendor-sys/ipfilter/5-1-2/netinet/ip_dns_pxy.c - copied unchanged from r254401, vendor-sys/ipfilter/dist/netinet/ip_dns_pxy.c vendor-sys/ipfilter/5-1-2/netinet/ip_nat6.c - copied unchanged from r254401, vendor-sys/ipfilter/dist/netinet/ip_nat6.c vendor-sys/ipfilter/5-1-2/netinet/ip_tftp_pxy.c - copied unchanged from r254401, vendor-sys/ipfilter/dist/netinet/ip_tftp_pxy.c Copied: vendor-sys/ipfilter/5-1-2/netinet/ip_dns_pxy.c (from r254401, vendor-sys/ipfilter/dist/netinet/ip_dns_pxy.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/ipfilter/5-1-2/netinet/ip_dns_pxy.c Fri Aug 16 07:16:26 2013 (r254403, copy of r254401, vendor-sys/ipfilter/dist/netinet/ip_dns_pxy.c) @@ -0,0 +1,402 @@ +/* + * Copyright (C) 2012 by Darren Reed. + * + * See the IPFILTER.LICENCE file for details on licencing. + * + * $Id: ip_dns_pxy.c,v 1.1.2.10 2012/07/22 08:04:23 darren_r Exp $ + */ + +#define IPF_DNS_PROXY + +/* + * map ... proxy port dns/udp 53 { block .cnn.com; } + */ +typedef struct ipf_dns_filter { + struct ipf_dns_filter *idns_next; + char *idns_name; + int idns_namelen; + int idns_pass; +} ipf_dns_filter_t; + + +typedef struct ipf_dns_softc_s { + ipf_dns_filter_t *ipf_p_dns_list; + ipfrwlock_t ipf_p_dns_rwlock; + u_long ipf_p_dns_compress; + u_long ipf_p_dns_toolong; + u_long ipf_p_dns_nospace; +} ipf_dns_softc_t; + +int ipf_p_dns_allow_query __P((ipf_dns_softc_t *, dnsinfo_t *)); +int ipf_p_dns_ctl __P((ipf_main_softc_t *, void *, ap_ctl_t *)); +int ipf_p_dns_del __P((ipf_main_softc_t *, ap_session_t *)); +int ipf_p_dns_get_name __P((ipf_dns_softc_t *, char *, int, char *, int)); +int ipf_p_dns_inout __P((void *, fr_info_t *, ap_session_t *, nat_t *)); +int ipf_p_dns_match __P((fr_info_t *, ap_session_t *, nat_t *)); +int ipf_p_dns_match_names __P((ipf_dns_filter_t *, char *, int)); +int ipf_p_dns_new __P((void *, fr_info_t *, ap_session_t *, nat_t *)); +void *ipf_p_dns_soft_create __P((ipf_main_softc_t *)); +void ipf_p_dns_soft_destroy __P((ipf_main_softc_t *, void *)); + +typedef struct { + u_char dns_id[2]; + u_short dns_ctlword; + u_short dns_qdcount; + u_short dns_ancount; + u_short dns_nscount; + u_short dns_arcount; +} ipf_dns_hdr_t; + +#define DNS_QR(x) ((ntohs(x) & 0x8000) >> 15) +#define DNS_OPCODE(x) ((ntohs(x) & 0x7800) >> 11) +#define DNS_AA(x) ((ntohs(x) & 0x0400) >> 10) +#define DNS_TC(x) ((ntohs(x) & 0x0200) >> 9) +#define DNS_RD(x) ((ntohs(x) & 0x0100) >> 8) +#define DNS_RA(x) ((ntohs(x) & 0x0080) >> 7) +#define DNS_Z(x) ((ntohs(x) & 0x0070) >> 4) +#define DNS_RCODE(x) ((ntohs(x) & 0x000f) >> 0) + + +void * +ipf_p_dns_soft_create(softc) + ipf_main_softc_t *softc; +{ + ipf_dns_softc_t *softd; + + KMALLOC(softd, ipf_dns_softc_t *); + if (softd == NULL) + return NULL; + + bzero((char *)softd, sizeof(*softd)); + RWLOCK_INIT(&softd->ipf_p_dns_rwlock, "ipf dns rwlock"); + + return softd; +} + + +void +ipf_p_dns_soft_destroy(softc, arg) + ipf_main_softc_t *softc; + void *arg; +{ + ipf_dns_softc_t *softd = arg; + ipf_dns_filter_t *idns; + + while ((idns = softd->ipf_p_dns_list) != NULL) { + KFREES(idns->idns_name, idns->idns_namelen); + idns->idns_name = NULL; + idns->idns_namelen = 0; + softd->ipf_p_dns_list = idns->idns_next; + KFREE(idns); + } + RW_DESTROY(&softd->ipf_p_dns_rwlock); + + KFREE(softd); +} + + +int +ipf_p_dns_ctl(softc, arg, ctl) + ipf_main_softc_t *softc; + void *arg; + ap_ctl_t *ctl; +{ + ipf_dns_softc_t *softd = arg; + ipf_dns_filter_t *tmp, *idns, **idnsp; + int error = 0; + + /* + * To make locking easier. + */ + KMALLOC(tmp, ipf_dns_filter_t *); + + WRITE_ENTER(&softd->ipf_p_dns_rwlock); + for (idnsp = &softd->ipf_p_dns_list; (idns = *idnsp) != NULL; + idnsp = &idns->idns_next) { + if (idns->idns_namelen != ctl->apc_dsize) + continue; + if (!strncmp(ctl->apc_data, idns->idns_name, + idns->idns_namelen)) + break; + } + + switch (ctl->apc_cmd) + { + case APC_CMD_DEL : + if (idns == NULL) { + IPFERROR(80006); + error = ESRCH; + break; + } + *idnsp = idns->idns_next; + idns->idns_next = NULL; + KFREES(idns->idns_name, idns->idns_namelen); + idns->idns_name = NULL; + idns->idns_namelen = 0; + KFREE(idns); + break; + case APC_CMD_ADD : + if (idns != NULL) { + IPFERROR(80007); + error = EEXIST; + break; + } + if (tmp == NULL) { + IPFERROR(80008); + error = ENOMEM; + break; + } + idns = tmp; + tmp = NULL; + idns->idns_namelen = ctl->apc_dsize; + idns->idns_name = ctl->apc_data; + idns->idns_pass = ctl->apc_arg; + idns->idns_next = NULL; + *idnsp = idns; + ctl->apc_data = NULL; + ctl->apc_dsize = 0; + break; + default : + IPFERROR(80009); + error = EINVAL; + break; + } + RWLOCK_EXIT(&softd->ipf_p_dns_rwlock); + + if (tmp != NULL) { + KFREE(tmp); + tmp = NULL; + } + + return error; +} + + +/* ARGSUSED */ +int +ipf_p_dns_new(arg, fin, aps, nat) + void *arg; + fr_info_t *fin; + ap_session_t *aps; + nat_t *nat; +{ + dnsinfo_t *di; + int dlen; + + if (fin->fin_v != 4) + return -1; + + dlen = fin->fin_dlen - sizeof(udphdr_t); + if (dlen < sizeof(ipf_dns_hdr_t)) { + /* + * No real DNS packet is smaller than that. + */ + return -1; + } + + aps->aps_psiz = sizeof(dnsinfo_t); + KMALLOCS(di, dnsinfo_t *, sizeof(dnsinfo_t)); + if (di == NULL) { + printf("ipf_dns_new:KMALLOCS(%d) failed\n", sizeof(*di)); + return -1; + } + + MUTEX_INIT(&di->dnsi_lock, "dns lock"); + + aps->aps_data = di; + + dlen = fin->fin_dlen - sizeof(udphdr_t); + COPYDATA(fin->fin_m, fin->fin_hlen + sizeof(udphdr_t), + MIN(dlen, sizeof(di->dnsi_buffer)), di->dnsi_buffer); + di->dnsi_id = (di->dnsi_buffer[0] << 8) | di->dnsi_buffer[1]; + return 0; +} + + +/* ARGSUSED */ +int +ipf_p_dns_del(softc, aps) + ipf_main_softc_t *softc; + ap_session_t *aps; +{ +#ifdef USE_MUTEXES + dnsinfo_t *di = aps->aps_data; + + MUTEX_DESTROY(&di->dnsi_lock); +#endif + KFREES(aps->aps_data, aps->aps_psiz); + aps->aps_data = NULL; + aps->aps_psiz = 0; + return 0; +} + + +/* + * Tries to match the base string (in our ACL) with the query from a packet. + */ +int +ipf_p_dns_match_names(idns, query, qlen) + ipf_dns_filter_t *idns; + char *query; + int qlen; +{ + int blen; + char *base; + + blen = idns->idns_namelen; + base = idns->idns_name; + + if (blen > qlen) + return 1; + + if (blen == qlen) + return strncasecmp(base, query, qlen); + + /* + * If the base string string is shorter than the query, allow the + * tail of the base to match the same length tail of the query *if*: + * - the base string starts with a '*' (*cnn.com) + * - the base string represents a domain (.cnn.com) + * as otherwise it would not be possible to block just "cnn.com" + * without also impacting "foocnn.com", etc. + */ + if (*base == '*') { + base++; + blen--; + } else if (*base != '.') + return 1; + + return strncasecmp(base, query + qlen - blen, blen); +} + + +int +ipf_p_dns_get_name(softd, start, len, buffer, buflen) + ipf_dns_softc_t *softd; + char *start; + int len; + char *buffer; + int buflen; +{ + char *s, *t, clen; + int slen, blen; + + s = start; + t = buffer; + slen = len; + blen = buflen - 1; /* Always make room for trailing \0 */ + + while (*s != '\0') { + clen = *s; + if ((clen & 0xc0) == 0xc0) { /* Doesn't do compression */ + softd->ipf_p_dns_compress++; + return 0; + } + if (clen > slen) { + softd->ipf_p_dns_toolong++; + return 0; /* Does the name run off the end? */ + } + if ((clen + 1) > blen) { + softd->ipf_p_dns_nospace++; + return 0; /* Enough room for name+.? */ + } + s++; + bcopy(s, t, clen); + t += clen; + s += clen; + *t++ = '.'; + slen -= clen; + blen -= (clen + 1); + } + + *(t - 1) = '\0'; + return s - start; +} + + +int +ipf_p_dns_allow_query(softd, dnsi) + ipf_dns_softc_t *softd; + dnsinfo_t *dnsi; +{ + ipf_dns_filter_t *idns; + int len; + + len = strlen(dnsi->dnsi_buffer); + + for (idns = softd->ipf_p_dns_list; idns != NULL; idns = idns->idns_next) + if (ipf_p_dns_match_names(idns, dnsi->dnsi_buffer, len) == 0) + return idns->idns_pass; + return 0; +} + + +/* ARGSUSED */ +int +ipf_p_dns_inout(arg, fin, aps, nat) + void *arg; + fr_info_t *fin; + ap_session_t *aps; + nat_t *nat; +{ + ipf_dns_softc_t *softd = arg; + ipf_dns_hdr_t *dns; + dnsinfo_t *di; + char *data; + int dlen, q, rc = 0; + + if (fin->fin_dlen < sizeof(*dns)) + return APR_ERR(1); + + dns = (ipf_dns_hdr_t *)((char *)fin->fin_dp + sizeof(udphdr_t)); + + q = dns->dns_qdcount; + + data = (char *)(dns + 1); + dlen = fin->fin_dlen - sizeof(*dns) - sizeof(udphdr_t); + + di = aps->aps_data; + + READ_ENTER(&softd->ipf_p_dns_rwlock); + MUTEX_ENTER(&di->dnsi_lock); + + for (; (dlen > 0) && (q > 0); q--) { + int len; + + len = ipf_p_dns_get_name(softd, data, dlen, di->dnsi_buffer, + sizeof(di->dnsi_buffer)); + if (len == 0) { + rc = 1; + break; + } + rc = ipf_p_dns_allow_query(softd, di); + if (rc != 0) + break; + data += len; + dlen -= len; + } + MUTEX_EXIT(&di->dnsi_lock); + RWLOCK_EXIT(&softd->ipf_p_dns_rwlock); + + return APR_ERR(rc); +} + + +/* ARGSUSED */ +int +ipf_p_dns_match(fin, aps, nat) + fr_info_t *fin; + ap_session_t *aps; + nat_t *nat; +{ + dnsinfo_t *di = aps->aps_data; + ipf_dns_hdr_t *dnh; + + if ((fin->fin_dlen < sizeof(u_short)) || (fin->fin_flx & FI_FRAG)) + return -1; + + dnh = (ipf_dns_hdr_t *)((char *)fin->fin_dp + sizeof(udphdr_t)); + if (((dnh->dns_id[0] << 8) | dnh->dns_id[1]) != di->dnsi_id) + return -1; + return 0; +} Copied: vendor-sys/ipfilter/5-1-2/netinet/ip_nat6.c (from r254401, vendor-sys/ipfilter/dist/netinet/ip_nat6.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/ipfilter/5-1-2/netinet/ip_nat6.c Fri Aug 16 07:16:26 2013 (r254403, copy of r254401, vendor-sys/ipfilter/dist/netinet/ip_nat6.c) @@ -0,0 +1,4098 @@ +/* + * Copyright (C) 2012 by Darren Reed. + * + * See the IPFILTER.LICENCE file for details on licencing. + */ +#if defined(KERNEL) || defined(_KERNEL) +# undef KERNEL +# undef ipf_nat6_KERNEL +# define KERNEL 1 +# define ipf_nat6_KERNEL 1 +#endif +#include +#include +#include +#include +#include +#if defined(_KERNEL) && defined(__NetBSD_Version__) && \ + (__NetBSD_Version__ >= 399002000) +# include +#endif +#if !defined(_KERNEL) +# include +# include +# include +# define ipf_nat6_KERNEL +# ifdef ipf_nat6__OpenBSD__ +struct file; +# endif +# include +# undef ipf_nat6_KERNEL +#endif +#if defined(_KERNEL) && (__FreeBSD_version >= 220000) +# include +# include +#else +# include +#endif +#if !defined(AIX) +# include +#endif +#if !defined(linux) +# include +#endif +#include +#if defined(_KERNEL) +# include +# if !defined(__SVR4) && !defined(__svr4__) +# include +# endif +#endif +#if defined(__SVR4) || defined(__svr4__) +# include +# include +# ifdef ipf_nat6_KERNEL +# include +# endif +# include +# include +#endif +#if ipf_nat6__FreeBSD_version >= 300000 +# include +#endif +#include +#if ipf_nat6__FreeBSD_version >= 300000 +# include +#endif +#ifdef sun +# include +#endif +#include +#include +#include +#include + +#ifdef RFC1825 +# include +# include +extern struct ifnet vpnif; +#endif + +#if !defined(linux) +# include +#endif +#include +#include +#include +#include "netinet/ip_compat.h" +#include +#include "netinet/ip_fil.h" +#include "netinet/ip_nat.h" +#include "netinet/ip_frag.h" +#include "netinet/ip_state.h" +#include "netinet/ip_proxy.h" +#include "netinet/ip_lookup.h" +#include "netinet/ip_dstlist.h" +#include "netinet/ip_sync.h" +#if (__FreeBSD_version >= 300000) +# include +#endif +#ifdef HAS_SYS_MD5_H +# include +#else +# include "md5.h" +#endif +/* END OF INCLUDES */ + +#undef SOCKADDR_IN +#define SOCKADDR_IN struct sockaddr_in + +#if !defined(lint) +static const char rcsid[] = "@(#)$Id: ip_nat6.c,v 1.22.2.20 2012/07/22 08:04:23 darren_r Exp $"; +#endif + +#ifdef USE_INET6 +static struct hostmap *ipf_nat6_hostmap __P((ipf_nat_softc_t *, ipnat_t *, + i6addr_t *, i6addr_t *, + i6addr_t *, u_32_t)); +static int ipf_nat6_match __P((fr_info_t *, ipnat_t *)); +static void ipf_nat6_tabmove __P((ipf_nat_softc_t *, nat_t *)); +static int ipf_nat6_decap __P((fr_info_t *, nat_t *)); +static int ipf_nat6_nextaddr __P((fr_info_t *, nat_addr_t *, i6addr_t *, + i6addr_t *)); +static int ipf_nat6_icmpquerytype __P((int)); +static int ipf_nat6_out __P((fr_info_t *, nat_t *, int, u_32_t)); +static int ipf_nat6_in __P((fr_info_t *, nat_t *, int, u_32_t)); +static int ipf_nat6_builddivertmp __P((ipf_nat_softc_t *, ipnat_t *)); +static int ipf_nat6_nextaddrinit __P((ipf_main_softc_t *, char *, + nat_addr_t *, int, void *)); +static int ipf_nat6_insert __P((ipf_main_softc_t *, ipf_nat_softc_t *, + nat_t *)); + + +#define NINCLSIDE6(y,x) ATOMIC_INCL(softn->ipf_nat_stats.ns_side6[y].x) +#define NBUMPSIDE(y,x) softn->ipf_nat_stats.ns_side[y].x++ +#define NBUMPSIDE6(y,x) softn->ipf_nat_stats.ns_side6[y].x++ +#define NBUMPSIDE6D(y,x) \ + do { \ + softn->ipf_nat_stats.ns_side6[y].x++; \ + DT(x); \ + } while (0) +#define NBUMPSIDE6DX(y,x,z) \ + do { \ + softn->ipf_nat_stats.ns_side6[y].x++; \ + DT(z); \ + } while (0) + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_ruleaddrinit */ +/* Returns: int - 0 == success, else failure */ +/* Parameters: in(I) - NAT rule that requires address fields to be init'd */ +/* */ +/* For each of the source/destination address fields in a NAT rule, call */ +/* ipf_nat6_nextaddrinit() to prepare the structure for active duty. Other */ +/* IPv6 specific actions can also be taken care of here. */ +/* ------------------------------------------------------------------------ */ +int +ipf_nat6_ruleaddrinit(softc, softn, n) + ipf_main_softc_t *softc; + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + int idx, error; + + if (n->in_redir == NAT_BIMAP) { + n->in_ndstip6 = n->in_osrcip6; + n->in_ndstmsk6 = n->in_osrcmsk6; + n->in_odstip6 = n->in_nsrcip6; + n->in_odstmsk6 = n->in_nsrcmsk6; + + } + + if (n->in_redir & NAT_REDIRECT) + idx = 1; + else + idx = 0; + /* + * Initialise all of the address fields. + */ + error = ipf_nat6_nextaddrinit(softc, n->in_names, &n->in_osrc, 1, + n->in_ifps[idx]); + if (error != 0) + return error; + + error = ipf_nat6_nextaddrinit(softc, n->in_names, &n->in_odst, 1, + n->in_ifps[idx]); + if (error != 0) + return error; + + error = ipf_nat6_nextaddrinit(softc, n->in_names, &n->in_nsrc, 1, + n->in_ifps[idx]); + if (error != 0) + return error; + + error = ipf_nat6_nextaddrinit(softc, n->in_names, &n->in_ndst, 1, + n->in_ifps[idx]); + if (error != 0) + return error; + + if (n->in_redir & NAT_DIVERTUDP) + ipf_nat6_builddivertmp(softn, n); + return 0; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_addrdr */ +/* Returns: Nil */ +/* Parameters: n(I) - pointer to NAT rule to add */ +/* */ +/* Adds a redirect rule to the hash table of redirect rules and the list of */ +/* loaded NAT rules. Updates the bitmask indicating which netmasks are in */ +/* use by redirect rules. */ +/* ------------------------------------------------------------------------ */ +void +ipf_nat6_addrdr(softn, n) + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + i6addr_t *mask; + ipnat_t **np; + i6addr_t j; + u_int hv; + int k; + + if ((n->in_redir & NAT_BIMAP) == NAT_BIMAP) { + k = count6bits(n->in_nsrcmsk6.i6); + mask = &n->in_nsrcmsk6; + IP6_AND(&n->in_odstip6, &n->in_odstmsk6, &j); + hv = NAT_HASH_FN6(&j, 0, softn->ipf_nat_rdrrules_sz); + + } else if (n->in_odstatype == FRI_NORMAL) { + k = count6bits(n->in_odstmsk6.i6); + mask = &n->in_odstmsk6; + IP6_AND(&n->in_odstip6, &n->in_odstmsk6, &j); + hv = NAT_HASH_FN6(&j, 0, softn->ipf_nat_rdrrules_sz); + } else { + k = 0; + hv = 0; + mask = NULL; + } + ipf_inet6_mask_add(k, mask, &softn->ipf_nat6_rdr_mask); + + np = softn->ipf_nat_rdr_rules + hv; + while (*np != NULL) + np = &(*np)->in_rnext; + n->in_rnext = NULL; + n->in_prnext = np; + n->in_hv[0] = hv; + n->in_use++; + *np = n; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_addmap */ +/* Returns: Nil */ +/* Parameters: n(I) - pointer to NAT rule to add */ +/* */ +/* Adds a NAT map rule to the hash table of rules and the list of loaded */ +/* NAT rules. Updates the bitmask indicating which netmasks are in use by */ +/* redirect rules. */ +/* ------------------------------------------------------------------------ */ +void +ipf_nat6_addmap(softn, n) + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + i6addr_t *mask; + ipnat_t **np; + i6addr_t j; + u_int hv; + int k; + + if (n->in_osrcatype == FRI_NORMAL) { + k = count6bits(n->in_osrcmsk6.i6); + mask = &n->in_osrcmsk6; + IP6_AND(&n->in_osrcip6, &n->in_osrcmsk6, &j); + hv = NAT_HASH_FN6(&j, 0, softn->ipf_nat_maprules_sz); + } else { + k = 0; + hv = 0; + mask = NULL; + } + ipf_inet6_mask_add(k, mask, &softn->ipf_nat6_map_mask); + + np = softn->ipf_nat_map_rules + hv; + while (*np != NULL) + np = &(*np)->in_mnext; + n->in_mnext = NULL; + n->in_pmnext = np; + n->in_hv[1] = hv; + n->in_use++; + *np = n; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_del_rdr */ +/* Returns: Nil */ +/* Parameters: n(I) - pointer to NAT rule to delete */ +/* */ +/* Removes a NAT rdr rule from the hash table of NAT rdr rules. */ +/* ------------------------------------------------------------------------ */ +void +ipf_nat6_delrdr(softn, n) + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + i6addr_t *mask; + int k; + + if ((n->in_redir & NAT_BIMAP) == NAT_BIMAP) { + k = count6bits(n->in_nsrcmsk6.i6); + mask = &n->in_nsrcmsk6; + } else if (n->in_odstatype == FRI_NORMAL) { + k = count6bits(n->in_odstmsk6.i6); + mask = &n->in_odstmsk6; + } else { + k = 0; + mask = NULL; + } + ipf_inet6_mask_del(k, mask, &softn->ipf_nat6_rdr_mask); + + if (n->in_rnext != NULL) + n->in_rnext->in_prnext = n->in_prnext; + *n->in_prnext = n->in_rnext; + n->in_use--; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_delmap */ +/* Returns: Nil */ +/* Parameters: n(I) - pointer to NAT rule to delete */ +/* */ +/* Removes a NAT map rule from the hash table of NAT map rules. */ +/* ------------------------------------------------------------------------ */ +void +ipf_nat6_delmap(softn, n) + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + i6addr_t *mask; + int k; + + if (n->in_osrcatype == FRI_NORMAL) { + k = count6bits(n->in_osrcmsk6.i6); + mask = &n->in_osrcmsk6; + } else { + k = 0; + mask = NULL; + } + ipf_inet6_mask_del(k, mask, &softn->ipf_nat6_map_mask); + + if (n->in_mnext != NULL) + n->in_mnext->in_pmnext = n->in_pmnext; + *n->in_pmnext = n->in_mnext; + n->in_use--; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_hostmap */ +/* Returns: struct hostmap* - NULL if no hostmap could be created, */ +/* else a pointer to the hostmapping to use */ +/* Parameters: np(I) - pointer to NAT rule */ +/* real(I) - real IP address */ +/* map(I) - mapped IP address */ +/* port(I) - destination port number */ +/* Write Locks: ipf_nat */ +/* */ +/* Check if an ip address has already been allocated for a given mapping */ +/* that is not doing port based translation. If is not yet allocated, then */ +/* create a new entry if a non-NULL NAT rule pointer has been supplied. */ +/* ------------------------------------------------------------------------ */ +static struct hostmap * +ipf_nat6_hostmap(softn, np, src, dst, map, port) + ipf_nat_softc_t *softn; + ipnat_t *np; + i6addr_t *src, *dst, *map; + u_32_t port; +{ + hostmap_t *hm; + u_int hv; + + hv = (src->i6[3] ^ dst->i6[3]); + hv += (src->i6[2] ^ dst->i6[2]); + hv += (src->i6[1] ^ dst->i6[1]); + hv += (src->i6[0] ^ dst->i6[0]); + hv += src->i6[3]; + hv += src->i6[2]; + hv += src->i6[1]; + hv += src->i6[0]; + hv += dst->i6[3]; + hv += dst->i6[2]; + hv += dst->i6[1]; + hv += dst->i6[0]; + hv %= HOSTMAP_SIZE; + for (hm = softn->ipf_hm_maptable[hv]; hm; hm = hm->hm_next) + if (IP6_EQ(&hm->hm_osrc6, src) && + IP6_EQ(&hm->hm_odst6, dst) && + ((np == NULL) || (np == hm->hm_ipnat)) && + ((port == 0) || (port == hm->hm_port))) { + softn->ipf_nat_stats.ns_hm_addref++; + hm->hm_ref++; + return hm; + } + + if (np == NULL) { + softn->ipf_nat_stats.ns_hm_nullnp++; + return NULL; + } + + KMALLOC(hm, hostmap_t *); + if (hm) { + hm->hm_next = softn->ipf_hm_maplist; + hm->hm_pnext = &softn->ipf_hm_maplist; + if (softn->ipf_hm_maplist != NULL) + softn->ipf_hm_maplist->hm_pnext = &hm->hm_next; + softn->ipf_hm_maplist = hm; + hm->hm_hnext = softn->ipf_hm_maptable[hv]; + hm->hm_phnext = softn->ipf_hm_maptable + hv; + if (softn->ipf_hm_maptable[hv] != NULL) + softn->ipf_hm_maptable[hv]->hm_phnext = &hm->hm_hnext; + softn->ipf_hm_maptable[hv] = hm; + hm->hm_ipnat = np; + np->in_use++; + hm->hm_osrcip6 = *src; + hm->hm_odstip6 = *dst; + hm->hm_nsrcip6 = *map; + hm->hm_ndstip6.i6[0] = 0; + hm->hm_ndstip6.i6[1] = 0; + hm->hm_ndstip6.i6[2] = 0; + hm->hm_ndstip6.i6[3] = 0; + hm->hm_ref = 1; + hm->hm_port = port; + hm->hm_hv = hv; + hm->hm_v = 6; + softn->ipf_nat_stats.ns_hm_new++; + } else { + softn->ipf_nat_stats.ns_hm_newfail++; + } + return hm; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_newmap */ +/* Returns: int - -1 == error, 0 == success */ +/* Parameters: fin(I) - pointer to packet information */ +/* nat(I) - pointer to NAT entry */ +/* ni(I) - pointer to structure with misc. information needed */ +/* to create new NAT entry. */ +/* */ +/* Given an empty NAT structure, populate it with new information about a */ +/* new NAT session, as defined by the matching NAT rule. */ +/* ni.nai_ip is passed in uninitialised and must be set, in host byte order,*/ +/* to the new IP address for the translation. */ +/* ------------------------------------------------------------------------ */ +int +ipf_nat6_newmap(fin, nat, ni) + fr_info_t *fin; + nat_t *nat; + natinfo_t *ni; +{ + ipf_main_softc_t *softc = fin->fin_main_soft; + ipf_nat_softc_t *softn = softc->ipf_nat_soft; + u_short st_port, dport, sport, port, sp, dp; + i6addr_t in, st_ip; + hostmap_t *hm; + u_32_t flags; + ipnat_t *np; + nat_t *natl; + int l; + + /* + * If it's an outbound packet which doesn't match any existing + * record, then create a new port + */ + l = 0; + hm = NULL; + np = ni->nai_np; + st_ip = np->in_snip6; + st_port = np->in_spnext; + flags = nat->nat_flags; + + if (flags & IPN_ICMPQUERY) { + sport = fin->fin_data[1]; + dport = 0; + } else { + sport = htons(fin->fin_data[0]); + dport = htons(fin->fin_data[1]); + } + + /* + * Do a loop until we either run out of entries to try or we find + * a NAT mapping that isn't currently being used. This is done + * because the change to the source is not (usually) being fixed. + */ + do { + port = 0; + in = np->in_nsrc.na_nextaddr; + if (l == 0) { + /* + * Check to see if there is an existing NAT + * setup for this IP address pair. + */ + hm = ipf_nat6_hostmap(softn, np, &fin->fin_src6, + &fin->fin_dst6, &in, 0); + if (hm != NULL) + in = hm->hm_nsrcip6; + } else if ((l == 1) && (hm != NULL)) { + ipf_nat_hostmapdel(softc, &hm); + } + + nat->nat_hm = hm; + + if (IP6_ISONES(&np->in_nsrcmsk6) && (np->in_spnext == 0)) { + if (l > 0) { + NBUMPSIDE6DX(1, ns_exhausted, ns_exhausted_1); + return -1; + } + } + + if ((np->in_redir == NAT_BIMAP) && + IP6_EQ(&np->in_osrcmsk6, &np->in_nsrcmsk6)) { + i6addr_t temp; + /* + * map the address block in a 1:1 fashion + */ + temp.i6[0] = fin->fin_src6.i6[0] & + ~np->in_osrcmsk6.i6[0]; + temp.i6[1] = fin->fin_src6.i6[1] & + ~np->in_osrcmsk6.i6[1]; + temp.i6[2] = fin->fin_src6.i6[2] & + ~np->in_osrcmsk6.i6[0]; + temp.i6[3] = fin->fin_src6.i6[3] & + ~np->in_osrcmsk6.i6[3]; + in = np->in_nsrcip6; + IP6_MERGE(&in, &temp, &np->in_osrc); + +#ifdef NEED_128BIT_MATH + } else if (np->in_redir & NAT_MAPBLK) { + if ((l >= np->in_ppip) || ((l > 0) && + !(flags & IPN_TCPUDP))) { + NBUMPSIDE6DX(1, ns_exhausted, ns_exhausted_2); + return -1; + } + /* + * map-block - Calculate destination address. + */ + IP6_MASK(&in, &fin->fin_src6, &np->in_osrcmsk6); + in = ntohl(in); + inb = in; + in.s_addr /= np->in_ippip; + in.s_addr &= ntohl(~np->in_nsrcmsk6); + in.s_addr += ntohl(np->in_nsrcaddr6); + /* + * Calculate destination port. + */ + if ((flags & IPN_TCPUDP) && + (np->in_ppip != 0)) { + port = ntohs(sport) + l; + port %= np->in_ppip; + port += np->in_ppip * + (inb.s_addr % np->in_ippip); + port += MAPBLK_MINPORT; + port = htons(port); + } +#endif + + } else if (IP6_ISZERO(&np->in_nsrcaddr) && + IP6_ISONES(&np->in_nsrcmsk)) { + /* + * 0/32 - use the interface's IP address. + */ + if ((l > 0) || + ipf_ifpaddr(softc, 6, FRI_NORMAL, fin->fin_ifp, + &in, NULL) == -1) { + NBUMPSIDE6DX(1, ns_new_ifpaddr, + ns_new_ifpaddr_1); + return -1; + } + + } else if (IP6_ISZERO(&np->in_nsrcip6) && + IP6_ISZERO(&np->in_nsrcmsk6)) { + /* + * 0/0 - use the original source address/port. + */ + if (l > 0) { + NBUMPSIDE6DX(1, ns_exhausted, ns_exhausted_3); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Fri Aug 16 19:23:45 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 177FA4A4; Fri, 16 Aug 2013 19:23:45 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DF49A2C1A; Fri, 16 Aug 2013 19:23:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7GJNimH020961; Fri, 16 Aug 2013 19:23:44 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7GJNiJY020960; Fri, 16 Aug 2013 19:23:44 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201308161923.r7GJNiJY020960@svn.freebsd.org> From: Xin LI Date: Fri, 16 Aug 2013 19:23:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254420 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 19:23:45 -0000 Author: delphij Date: Fri Aug 16 19:23:44 2013 New Revision: 254420 URL: http://svnweb.freebsd.org/changeset/base/254420 Log: Update vendor-sys/illumos/dist to illumos-gate 14133:4caa3904e52a: Illumos ZFS issues: 4039 zfs_rename()/zfs_link() needs stronger test for XDEV Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_vnops.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_vnops.c Fri Aug 16 18:47:18 2013 (r254419) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_vnops.c Fri Aug 16 19:23:44 2013 (r254420) @@ -21,6 +21,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013 by Delphix. All rights reserved. + * Copyright 2013 Nexenta Systems, Inc. All rights reserved. */ /* Portions Copyright 2007 Jeremy Teo */ @@ -3372,13 +3373,18 @@ zfs_rename(vnode_t *sdvp, char *snm, vno if (VOP_REALVP(tdvp, &realvp, ct) == 0) tdvp = realvp; - if (tdvp->v_vfsp != sdvp->v_vfsp || zfsctl_is_node(tdvp)) { + tdzp = VTOZ(tdvp); + ZFS_VERIFY_ZP(tdzp); + + /* + * We check z_zfsvfs rather than v_vfsp here, because snapshots and the + * ctldir appear to have the same v_vfsp. + */ + if (tdzp->z_zfsvfs != zfsvfs || zfsctl_is_node(tdvp)) { ZFS_EXIT(zfsvfs); return (SET_ERROR(EXDEV)); } - tdzp = VTOZ(tdvp); - ZFS_VERIFY_ZP(tdzp); if (zfsvfs->z_utf8 && u8_validate(tnm, strlen(tnm), NULL, U8_VALIDATE_ENTIRE, &error) < 0) { ZFS_EXIT(zfsvfs); @@ -3923,14 +3929,18 @@ zfs_link(vnode_t *tdvp, vnode_t *svp, ch return (SET_ERROR(EPERM)); } - if (svp->v_vfsp != tdvp->v_vfsp || zfsctl_is_node(svp)) { + szp = VTOZ(svp); + ZFS_VERIFY_ZP(szp); + + /* + * We check z_zfsvfs rather than v_vfsp here, because snapshots and the + * ctldir appear to have the same v_vfsp. + */ + if (szp->z_zfsvfs != zfsvfs || zfsctl_is_node(svp)) { ZFS_EXIT(zfsvfs); return (SET_ERROR(EXDEV)); } - szp = VTOZ(svp); - ZFS_VERIFY_ZP(szp); - /* Prevent links to .zfs/shares files */ if ((error = sa_lookup(szp->z_sa_hdl, SA_ZPL_PARENT(zfsvfs), From owner-svn-src-vendor@FreeBSD.ORG Fri Aug 16 19:27:30 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3EC73762; Fri, 16 Aug 2013 19:27:30 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 28BF42C54; Fri, 16 Aug 2013 19:27:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7GJRUSd021673; Fri, 16 Aug 2013 19:27:30 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7GJRTFA021657; Fri, 16 Aug 2013 19:27:29 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201308161927.r7GJRTFA021657@svn.freebsd.org> From: Xin LI Date: Fri, 16 Aug 2013 19:27:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254421 - vendor-sys/illumos/dist/uts/common/fs/zfs vendor-sys/illumos/dist/uts/common/fs/zfs/sys vendor/illumos/dist/lib/libzfs/common vendor/illumos/dist/lib/libzfs_core/common X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 19:27:30 -0000 Author: delphij Date: Fri Aug 16 19:27:29 2013 New Revision: 254421 URL: http://svnweb.freebsd.org/changeset/base/254421 Log: Update vendor/illumos/dist and vendor-sys/illumos/dist to illumos-gate 14137:f7523d207d74: Illumos ZFS issues: 3996 want a libzfs_core API to rollback to latest snapshot Modified: vendor/illumos/dist/lib/libzfs/common/libzfs_dataset.c vendor/illumos/dist/lib/libzfs_core/common/libzfs_core.c vendor/illumos/dist/lib/libzfs_core/common/libzfs_core.h Changes in other areas also in this revision: Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dsl_dataset.h vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c Modified: vendor/illumos/dist/lib/libzfs/common/libzfs_dataset.c ============================================================================== --- vendor/illumos/dist/lib/libzfs/common/libzfs_dataset.c Fri Aug 16 19:23:44 2013 (r254420) +++ vendor/illumos/dist/lib/libzfs/common/libzfs_dataset.c Fri Aug 16 19:27:29 2013 (r254421) @@ -3518,7 +3518,6 @@ zfs_rollback(zfs_handle_t *zhp, zfs_hand { rollback_data_t cb = { 0 }; int err; - zfs_cmd_t zc = { 0 }; boolean_t restore_resv = 0; uint64_t old_volsize, new_volsize; zfs_prop_t resv_prop; @@ -3550,22 +3549,15 @@ zfs_rollback(zfs_handle_t *zhp, zfs_hand (old_volsize == zfs_prop_get_int(zhp, resv_prop)); } - (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); - - if (ZFS_IS_VOLUME(zhp)) - zc.zc_objset_type = DMU_OST_ZVOL; - else - zc.zc_objset_type = DMU_OST_ZFS; - /* * We rely on zfs_iter_children() to verify that there are no * newer snapshots for the given dataset. Therefore, we can * simply pass the name on to the ioctl() call. There is still * an unlikely race condition where the user has taken a * snapshot since we verified that this was the most recent. - * */ - if ((err = zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_ROLLBACK, &zc)) != 0) { + err = lzc_rollback(zhp->zfs_name, NULL, 0); + if (err != 0) { (void) zfs_standard_error_fmt(zhp->zfs_hdl, errno, dgettext(TEXT_DOMAIN, "cannot rollback '%s'"), zhp->zfs_name); Modified: vendor/illumos/dist/lib/libzfs_core/common/libzfs_core.c ============================================================================== --- vendor/illumos/dist/lib/libzfs_core/common/libzfs_core.c Fri Aug 16 19:23:44 2013 (r254420) +++ vendor/illumos/dist/lib/libzfs_core/common/libzfs_core.c Fri Aug 16 19:27:29 2013 (r254421) @@ -20,7 +20,7 @@ */ /* - * Copyright (c) 2012 by Delphix. All rights reserved. + * Copyright (c) 2013 by Delphix. All rights reserved. * Copyright (c) 2013 Steven Hartland. All rights reserved. */ @@ -581,3 +581,27 @@ out: free((void*)(uintptr_t)zc.zc_nvlist_dst); return (error); } + +/* + * Roll back this filesystem or volume to its most recent snapshot. + * If snapnamebuf is not NULL, it will be filled in with the name + * of the most recent snapshot. + * + * Return 0 on success or an errno on failure. + */ +int +lzc_rollback(const char *fsname, char *snapnamebuf, int snapnamelen) +{ + nvlist_t *args; + nvlist_t *result; + int err; + + args = fnvlist_alloc(); + err = lzc_ioctl(ZFS_IOC_ROLLBACK, fsname, args, &result); + nvlist_free(args); + if (err == 0 && snapnamebuf != NULL) { + const char *snapname = fnvlist_lookup_string(result, "target"); + (void) strlcpy(snapnamebuf, snapname, snapnamelen); + } + return (err); +} Modified: vendor/illumos/dist/lib/libzfs_core/common/libzfs_core.h ============================================================================== --- vendor/illumos/dist/lib/libzfs_core/common/libzfs_core.h Fri Aug 16 19:23:44 2013 (r254420) +++ vendor/illumos/dist/lib/libzfs_core/common/libzfs_core.h Fri Aug 16 19:27:29 2013 (r254421) @@ -20,7 +20,7 @@ */ /* - * Copyright (c) 2012 by Delphix. All rights reserved. + * Copyright (c) 2013 by Delphix. All rights reserved. */ #ifndef _LIBZFS_CORE_H @@ -58,6 +58,7 @@ int lzc_send_space(const char *snapname, boolean_t lzc_exists(const char *dataset); +int lzc_rollback(const char *fsname, char *snapnamebuf, int snapnamelen); #ifdef __cplusplus } From owner-svn-src-vendor@FreeBSD.ORG Fri Aug 16 19:27:31 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 124D6763; Fri, 16 Aug 2013 19:27:31 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E4E332C56; Fri, 16 Aug 2013 19:27:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7GJRUoK021681; Fri, 16 Aug 2013 19:27:30 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7GJRUpJ021678; Fri, 16 Aug 2013 19:27:30 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201308161927.r7GJRUpJ021678@svn.freebsd.org> From: Xin LI Date: Fri, 16 Aug 2013 19:27:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254421 - vendor-sys/illumos/dist/uts/common/fs/zfs vendor-sys/illumos/dist/uts/common/fs/zfs/sys vendor/illumos/dist/lib/libzfs/common vendor/illumos/dist/lib/libzfs_core/common X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 19:27:31 -0000 Author: delphij Date: Fri Aug 16 19:27:29 2013 New Revision: 254421 URL: http://svnweb.freebsd.org/changeset/base/254421 Log: Update vendor/illumos/dist and vendor-sys/illumos/dist to illumos-gate 14137:f7523d207d74: Illumos ZFS issues: 3996 want a libzfs_core API to rollback to latest snapshot Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dsl_dataset.h vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c Changes in other areas also in this revision: Modified: vendor/illumos/dist/lib/libzfs/common/libzfs_dataset.c vendor/illumos/dist/lib/libzfs_core/common/libzfs_core.c vendor/illumos/dist/lib/libzfs_core/common/libzfs_core.h Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c Fri Aug 16 19:23:44 2013 (r254420) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c Fri Aug 16 19:27:29 2013 (r254421) @@ -1722,6 +1722,7 @@ dsl_dataset_handoff_check(dsl_dataset_t typedef struct dsl_dataset_rollback_arg { const char *ddra_fsname; void *ddra_owner; + nvlist_t *ddra_result; } dsl_dataset_rollback_arg_t; static int @@ -1793,9 +1794,13 @@ dsl_dataset_rollback_sync(void *arg, dmu dsl_pool_t *dp = dmu_tx_pool(tx); dsl_dataset_t *ds, *clone; uint64_t cloneobj; + char namebuf[ZFS_MAXNAMELEN]; VERIFY0(dsl_dataset_hold(dp, ddra->ddra_fsname, FTAG, &ds)); + dsl_dataset_name(ds->ds_prev, namebuf); + fnvlist_add_string(ddra->ddra_result, "target", namebuf); + cloneobj = dsl_dataset_create_sync(ds->ds_dir, "%rollback", ds->ds_prev, DS_CREATE_FLAG_NODIRTY, kcred, tx); @@ -1811,8 +1816,11 @@ dsl_dataset_rollback_sync(void *arg, dmu } /* - * If owner != NULL: + * Rolls back the given filesystem or volume to the most recent snapshot. + * The name of the most recent snapshot will be returned under key "target" + * in the result nvlist. * + * If owner != NULL: * - The existing dataset MUST be owned by the specified owner at entry * - Upon return, dataset will still be held by the same owner, whether we * succeed or not. @@ -1821,15 +1829,16 @@ dsl_dataset_rollback_sync(void *arg, dmu * notes above zfs_suspend_fs() for further details. */ int -dsl_dataset_rollback(const char *fsname, void *owner) +dsl_dataset_rollback(const char *fsname, void *owner, nvlist_t *result) { dsl_dataset_rollback_arg_t ddra; ddra.ddra_fsname = fsname; ddra.ddra_owner = owner; + ddra.ddra_result = result; return (dsl_sync_task(fsname, dsl_dataset_rollback_check, - dsl_dataset_rollback_sync, (void *)&ddra, 1)); + dsl_dataset_rollback_sync, &ddra, 1)); } struct promotenode { Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dsl_dataset.h ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dsl_dataset.h Fri Aug 16 19:23:44 2013 (r254420) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dsl_dataset.h Fri Aug 16 19:27:29 2013 (r254421) @@ -265,7 +265,7 @@ int dsl_dataset_snap_lookup(dsl_dataset_ int dsl_dataset_snap_remove(dsl_dataset_t *ds, const char *name, dmu_tx_t *tx); void dsl_dataset_set_refreservation_sync_impl(dsl_dataset_t *ds, zprop_source_t source, uint64_t value, dmu_tx_t *tx); -int dsl_dataset_rollback(const char *fsname, void *owner); +int dsl_dataset_rollback(const char *fsname, void *owner, nvlist_t *result); #ifdef ZFS_DEBUG #define dprintf_ds(ds, fmt, ...) do { \ Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c Fri Aug 16 19:23:44 2013 (r254420) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c Fri Aug 16 19:27:29 2013 (r254421) @@ -3493,29 +3493,32 @@ zfs_ioc_destroy(zfs_cmd_t *zc) } /* - * inputs: - * zc_name name of dataset to rollback (to most recent snapshot) + * fsname is name of dataset to rollback (to most recent snapshot) * - * outputs: none + * innvl is not used. + * + * outnvl: "target" -> name of most recent snapshot + * } */ +/* ARGSUSED */ static int -zfs_ioc_rollback(zfs_cmd_t *zc) +zfs_ioc_rollback(const char *fsname, nvlist_t *args, nvlist_t *outnvl) { zfsvfs_t *zfsvfs; int error; - if (getzfsvfs(zc->zc_name, &zfsvfs) == 0) { + if (getzfsvfs(fsname, &zfsvfs) == 0) { error = zfs_suspend_fs(zfsvfs); if (error == 0) { int resume_err; - error = dsl_dataset_rollback(zc->zc_name, zfsvfs); - resume_err = zfs_resume_fs(zfsvfs, zc->zc_name); + error = dsl_dataset_rollback(fsname, zfsvfs, outnvl); + resume_err = zfs_resume_fs(zfsvfs, fsname); error = error ? error : resume_err; } VFS_RELE(zfsvfs->z_vfs); } else { - error = dsl_dataset_rollback(zc->zc_name, NULL); + error = dsl_dataset_rollback(fsname, NULL, outnvl); } return (error); } @@ -5327,6 +5330,10 @@ zfs_ioctl_init(void) zfs_ioc_get_holds, zfs_secpolicy_read, DATASET_NAME, POOL_CHECK_SUSPENDED, B_FALSE, B_FALSE); + zfs_ioctl_register("rollback", ZFS_IOC_ROLLBACK, + zfs_ioc_rollback, zfs_secpolicy_rollback, DATASET_NAME, + POOL_CHECK_SUSPENDED | POOL_CHECK_READONLY, B_FALSE, B_TRUE); + /* IOCTLS that use the legacy function signature */ zfs_ioctl_register_legacy(ZFS_IOC_POOL_FREEZE, zfs_ioc_pool_freeze, @@ -5438,8 +5445,6 @@ zfs_ioctl_init(void) zfs_secpolicy_none); zfs_ioctl_register_dataset_modify(ZFS_IOC_DESTROY, zfs_ioc_destroy, zfs_secpolicy_destroy); - zfs_ioctl_register_dataset_modify(ZFS_IOC_ROLLBACK, zfs_ioc_rollback, - zfs_secpolicy_rollback); zfs_ioctl_register_dataset_modify(ZFS_IOC_RENAME, zfs_ioc_rename, zfs_secpolicy_rename); zfs_ioctl_register_dataset_modify(ZFS_IOC_RECV, zfs_ioc_recv, From owner-svn-src-vendor@FreeBSD.ORG Fri Aug 16 19:33:37 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 79856AC6; Fri, 16 Aug 2013 19:33:37 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 64EDB2CC5; Fri, 16 Aug 2013 19:33:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7GJXbei024711; Fri, 16 Aug 2013 19:33:37 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7GJXafb024707; Fri, 16 Aug 2013 19:33:36 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201308161933.r7GJXafb024707@svn.freebsd.org> From: Xin LI Date: Fri, 16 Aug 2013 19:33:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254422 - vendor-sys/illumos/dist/uts/common/sys vendor/illumos/dist/common/ctf X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 19:33:37 -0000 Author: delphij Date: Fri Aug 16 19:33:36 2013 New Revision: 254422 URL: http://svnweb.freebsd.org/changeset/base/254422 Log: Update vendor/illumos/dist and vendor-sys/illumos/dist to illumos-gate 14143:42d090a37218: Illumos DTrace issues: 3089 want ::typedef 3094 libctf should support removing a dynamic type 3095 libctf does not validate arrays correctly 3096 libctf does not validate function types correctly Modified: vendor/illumos/dist/common/ctf/ctf_create.c vendor/illumos/dist/common/ctf/ctf_error.c vendor/illumos/dist/common/ctf/ctf_impl.h vendor/illumos/dist/common/ctf/ctf_open.c Changes in other areas also in this revision: Modified: vendor-sys/illumos/dist/uts/common/sys/ctf_api.h Modified: vendor/illumos/dist/common/ctf/ctf_create.c ============================================================================== --- vendor/illumos/dist/common/ctf/ctf_create.c Fri Aug 16 19:27:29 2013 (r254421) +++ vendor/illumos/dist/common/ctf/ctf_create.c Fri Aug 16 19:33:36 2013 (r254422) @@ -24,13 +24,15 @@ * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - -#pragma ident "%Z%%M% %I% %E% SMI" +/* + * Copyright (c) 2013, Joyent, Inc. All rights reserved. + */ #include #include #include #include +#include /* * This static string is used as the template for initially populating a @@ -167,6 +169,51 @@ ctf_copy_membnames(ctf_dtdef_t *dtd, uch } /* + * Only types of dyanmic CTF containers contain reference counts. These + * containers are marked RD/WR. Because of that we basically make this a no-op + * for compatability with non-dynamic CTF sections. This is also a no-op for + * types which are not dynamic types. It is the responsibility of the caller to + * make sure it is a valid type. We help that caller out on debug builds. + * + * Note that the reference counts are not maintained for types that are not + * within this container. In other words if we have a type in a parent, that + * will not have its reference count increased. On the flip side, the parent + * will not be allowed to remove dynamic types if it has children. + */ +static void +ctf_ref_inc(ctf_file_t *fp, ctf_id_t tid) +{ + ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, tid); + + if (dtd == NULL) + return; + + if (!(fp->ctf_flags & LCTF_RDWR)) + return; + + dtd->dtd_ref++; +} + +/* + * Just as with ctf_ref_inc, this is a no-op on non-writeable containers and the + * caller should ensure that this is already a valid type. + */ +static void +ctf_ref_dec(ctf_file_t *fp, ctf_id_t tid) +{ + ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, tid); + + if (dtd == NULL) + return; + + if (!(fp->ctf_flags & LCTF_RDWR)) + return; + + ASSERT(dtd->dtd_ref >= 1); + dtd->dtd_ref--; +} + +/* * If the specified CTF container is writable and has been modified, reload * this container with the updated type definitions. In order to make this * code and the rest of libctf as simple as possible, we perform updates by @@ -180,6 +227,10 @@ ctf_copy_membnames(ctf_dtdef_t *dtd, uch * ctf_bufopen() will return a new ctf_file_t, but we want to keep the fp * constant for the caller, so after ctf_bufopen() returns, we use bcopy to * swap the interior of the old and new ctf_file_t's, and then free the old. + * + * Note that the lists of dynamic types stays around and the resulting container + * is still writeable. Furthermore, the reference counts that are on the dtd's + * are still valid. */ int ctf_update(ctf_file_t *fp) @@ -432,6 +483,7 @@ ctf_dtd_delete(ctf_file_t *fp, ctf_dtdef ctf_dtdef_t *p, **q = &fp->ctf_dthash[h]; ctf_dmdef_t *dmd, *nmd; size_t len; + int kind, i; for (p = *q; p != NULL; p = p->dtd_hash) { if (p != dtd) @@ -443,7 +495,8 @@ ctf_dtd_delete(ctf_file_t *fp, ctf_dtdef if (p != NULL) *q = p->dtd_hash; - switch (CTF_INFO_KIND(dtd->dtd_data.ctt_info)) { + kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info); + switch (kind) { case CTF_K_STRUCT: case CTF_K_UNION: case CTF_K_ENUM: @@ -454,14 +507,33 @@ ctf_dtd_delete(ctf_file_t *fp, ctf_dtdef ctf_free(dmd->dmd_name, len); fp->ctf_dtstrlen -= len; } + if (kind != CTF_K_ENUM) + ctf_ref_dec(fp, dmd->dmd_type); nmd = ctf_list_next(dmd); ctf_free(dmd, sizeof (ctf_dmdef_t)); } break; case CTF_K_FUNCTION: + ctf_ref_dec(fp, dtd->dtd_data.ctt_type); + for (i = 0; i < CTF_INFO_VLEN(dtd->dtd_data.ctt_info); i++) + if (dtd->dtd_u.dtu_argv[i] != 0) + ctf_ref_dec(fp, dtd->dtd_u.dtu_argv[i]); ctf_free(dtd->dtd_u.dtu_argv, sizeof (ctf_id_t) * CTF_INFO_VLEN(dtd->dtd_data.ctt_info)); break; + case CTF_K_ARRAY: + ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_contents); + ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_index); + break; + case CTF_K_TYPEDEF: + ctf_ref_dec(fp, dtd->dtd_data.ctt_type); + break; + case CTF_K_POINTER: + case CTF_K_VOLATILE: + case CTF_K_CONST: + case CTF_K_RESTRICT: + ctf_ref_dec(fp, dtd->dtd_data.ctt_type); + break; } if (dtd->dtd_name) { @@ -495,7 +567,9 @@ ctf_dtd_lookup(ctf_file_t *fp, ctf_id_t * Discard all of the dynamic type definitions that have been added to the * container since the last call to ctf_update(). We locate such types by * scanning the list and deleting elements that have type IDs greater than - * ctf_dtoldid, which is set by ctf_update(), above. + * ctf_dtoldid, which is set by ctf_update(), above. Note that to work properly + * with our reference counting schemes, we must delete the dynamic list in + * reverse. */ int ctf_discard(ctf_file_t *fp) @@ -508,11 +582,11 @@ ctf_discard(ctf_file_t *fp) if (!(fp->ctf_flags & LCTF_DIRTY)) return (0); /* no update required */ - for (dtd = ctf_list_next(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) { + for (dtd = ctf_list_prev(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) { if (dtd->dtd_type <= fp->ctf_dtoldid) continue; /* skip types that have been committed */ - ntd = ctf_list_next(dtd); + ntd = ctf_list_prev(dtd); ctf_dtd_delete(fp, dtd); } @@ -614,6 +688,8 @@ ctf_add_reftype(ctf_file_t *fp, uint_t f if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR) return (CTF_ERR); /* errno is set for us */ + ctf_ref_inc(fp, ref); + dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, flag, 0); dtd->dtd_data.ctt_type = (ushort_t)ref; @@ -645,16 +721,29 @@ ctf_add_array(ctf_file_t *fp, uint_t fla { ctf_dtdef_t *dtd; ctf_id_t type; + ctf_file_t *fpd; if (arp == NULL) return (ctf_set_errno(fp, EINVAL)); + fpd = fp; + if (ctf_lookup_by_id(&fpd, arp->ctr_contents) == NULL && + ctf_dtd_lookup(fp, arp->ctr_contents) == NULL) + return (ctf_set_errno(fp, ECTF_BADID)); + + fpd = fp; + if (ctf_lookup_by_id(&fpd, arp->ctr_index) == NULL && + ctf_dtd_lookup(fp, arp->ctr_index) == NULL) + return (ctf_set_errno(fp, ECTF_BADID)); + if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR) return (CTF_ERR); /* errno is set for us */ dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_ARRAY, flag, 0); dtd->dtd_data.ctt_size = 0; dtd->dtd_u.dtu_arr = *arp; + ctf_ref_inc(fp, arp->ctr_contents); + ctf_ref_inc(fp, arp->ctr_index); return (type); } @@ -662,6 +751,7 @@ ctf_add_array(ctf_file_t *fp, uint_t fla int ctf_set_array(ctf_file_t *fp, ctf_id_t type, const ctf_arinfo_t *arp) { + ctf_file_t *fpd; ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, type); if (!(fp->ctf_flags & LCTF_RDWR)) @@ -670,8 +760,22 @@ ctf_set_array(ctf_file_t *fp, ctf_id_t t if (dtd == NULL || CTF_INFO_KIND(dtd->dtd_data.ctt_info) != CTF_K_ARRAY) return (ctf_set_errno(fp, ECTF_BADID)); + fpd = fp; + if (ctf_lookup_by_id(&fpd, arp->ctr_contents) == NULL && + ctf_dtd_lookup(fp, arp->ctr_contents) == NULL) + return (ctf_set_errno(fp, ECTF_BADID)); + + fpd = fp; + if (ctf_lookup_by_id(&fpd, arp->ctr_index) == NULL && + ctf_dtd_lookup(fp, arp->ctr_index) == NULL) + return (ctf_set_errno(fp, ECTF_BADID)); + + ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_contents); + ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_index); fp->ctf_flags |= LCTF_DIRTY; dtd->dtd_u.dtu_arr = *arp; + ctf_ref_inc(fp, arp->ctr_contents); + ctf_ref_inc(fp, arp->ctr_index); return (0); } @@ -683,7 +787,9 @@ ctf_add_function(ctf_file_t *fp, uint_t ctf_dtdef_t *dtd; ctf_id_t type; uint_t vlen; + int i; ctf_id_t *vdat = NULL; + ctf_file_t *fpd; if (ctc == NULL || (ctc->ctc_flags & ~CTF_FUNC_VARARG) != 0 || (ctc->ctc_argc != 0 && argv == NULL)) @@ -696,6 +802,18 @@ ctf_add_function(ctf_file_t *fp, uint_t if (vlen > CTF_MAX_VLEN) return (ctf_set_errno(fp, EOVERFLOW)); + fpd = fp; + if (ctf_lookup_by_id(&fpd, ctc->ctc_return) == NULL && + ctf_dtd_lookup(fp, ctc->ctc_return) == NULL) + return (ctf_set_errno(fp, ECTF_BADID)); + + for (i = 0; i < ctc->ctc_argc; i++) { + fpd = fp; + if (ctf_lookup_by_id(&fpd, argv[i]) == NULL && + ctf_dtd_lookup(fp, argv[i]) == NULL) + return (ctf_set_errno(fp, ECTF_BADID)); + } + if (vlen != 0 && (vdat = ctf_alloc(sizeof (ctf_id_t) * vlen)) == NULL) return (ctf_set_errno(fp, EAGAIN)); @@ -707,6 +825,10 @@ ctf_add_function(ctf_file_t *fp, uint_t dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_FUNCTION, flag, vlen); dtd->dtd_data.ctt_type = (ushort_t)ctc->ctc_return; + ctf_ref_inc(fp, ctc->ctc_return); + for (i = 0; i < ctc->ctc_argc; i++) + ctf_ref_inc(fp, argv[i]); + bcopy(argv, vdat, sizeof (ctf_id_t) * ctc->ctc_argc); if (ctc->ctc_flags & CTF_FUNC_VARARG) vdat[vlen - 1] = 0; /* add trailing zero to indicate varargs */ @@ -825,8 +947,11 @@ ctf_add_typedef(ctf_file_t *fp, uint_t f { ctf_dtdef_t *dtd; ctf_id_t type; + ctf_file_t *fpd; - if (ref == CTF_ERR || ref < 0 || ref > CTF_MAX_TYPE) + fpd = fp; + if (ref == CTF_ERR || (ctf_lookup_by_id(&fpd, ref) == NULL && + ctf_dtd_lookup(fp, ref) == NULL)) return (ctf_set_errno(fp, EINVAL)); if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) @@ -834,6 +959,7 @@ ctf_add_typedef(ctf_file_t *fp, uint_t f dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_TYPEDEF, flag, 0); dtd->dtd_data.ctt_type = (ushort_t)ref; + ctf_ref_inc(fp, ref); return (type); } @@ -1008,6 +1134,45 @@ ctf_add_member(ctf_file_t *fp, ctf_id_t if (s != NULL) fp->ctf_dtstrlen += strlen(s) + 1; + ctf_ref_inc(fp, type); + fp->ctf_flags |= LCTF_DIRTY; + return (0); +} + +/* + * This removes a type from the dynamic section. This will fail if the type is + * referenced by another type. Note that the CTF ID is never reused currently by + * CTF. Note that if this container is a parent container then we just outright + * refuse to remove the type. There currently is no notion of searching for the + * ctf_dtdef_t in parent containers. If there is, then this constraint could + * become finer grained. + */ +int +ctf_delete_type(ctf_file_t *fp, ctf_id_t type) +{ + ctf_file_t *fpd; + ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, type); + + if (!(fp->ctf_flags & LCTF_RDWR)) + return (ctf_set_errno(fp, ECTF_RDONLY)); + + /* + * We want to give as useful an errno as possible. That means that we + * want to distinguish between a type which does not exist and one for + * which the type is not dynamic. + */ + fpd = fp; + if (ctf_lookup_by_id(&fpd, type) == NULL && + ctf_dtd_lookup(fp, type) == NULL) + return (CTF_ERR); /* errno is set for us */ + + if (dtd == NULL) + return (ctf_set_errno(fp, ECTF_NOTDYN)); + + if (dtd->dtd_ref != 0 || fp->ctf_refcnt > 1) + return (ctf_set_errno(fp, ECTF_REFERENCED)); + + ctf_dtd_delete(fp, dtd); fp->ctf_flags |= LCTF_DIRTY; return (0); } @@ -1103,6 +1268,9 @@ ctf_add_type(ctf_file_t *dst_fp, ctf_fil ctf_hash_t *hp; ctf_helem_t *hep; + if (dst_fp == src_fp) + return (src_type); + if (!(dst_fp->ctf_flags & LCTF_RDWR)) return (ctf_set_errno(dst_fp, ECTF_RDONLY)); @@ -1313,6 +1481,14 @@ ctf_add_type(ctf_file_t *dst_fp, ctf_fil if (errs) return (CTF_ERR); /* errno is set for us */ + + /* + * Now that we know that we can't fail, we go through and bump + * all the reference counts on the member types. + */ + for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); + dmd != NULL; dmd = ctf_list_next(dmd)) + ctf_ref_inc(dst_fp, dmd->dmd_type); break; } Modified: vendor/illumos/dist/common/ctf/ctf_error.c ============================================================================== --- vendor/illumos/dist/common/ctf/ctf_error.c Fri Aug 16 19:27:29 2013 (r254421) +++ vendor/illumos/dist/common/ctf/ctf_error.c Fri Aug 16 19:33:36 2013 (r254422) @@ -23,8 +23,9 @@ * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - -#pragma ident "%Z%%M% %I% %E% SMI" +/* + * Copyright (c) 2012, Joyent, Inc. + */ #include @@ -73,6 +74,8 @@ static const char *const _ctf_errlist[] "Limit on number of dynamic types reached", /* ECTF_FULL */ "Duplicate member name definition", /* ECTF_DUPMEMBER */ "Conflicting type is already defined", /* ECTF_CONFLICT */ + "Type has outstanding references", /* ECTF_REFERENCED */ + "Type is not a dynamic type" /* ECTF_NOTDYN */ }; static const int _ctf_nerr = sizeof (_ctf_errlist) / sizeof (_ctf_errlist[0]); Modified: vendor/illumos/dist/common/ctf/ctf_impl.h ============================================================================== --- vendor/illumos/dist/common/ctf/ctf_impl.h Fri Aug 16 19:27:29 2013 (r254421) +++ vendor/illumos/dist/common/ctf/ctf_impl.h Fri Aug 16 19:33:36 2013 (r254422) @@ -24,12 +24,13 @@ * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ +/* + * Copyright (c) 2012, Joyent, Inc. All rights reserved. + */ #ifndef _CTF_IMPL_H #define _CTF_IMPL_H -#pragma ident "%Z%%M% %I% %E% SMI" - #include #include #include @@ -149,6 +150,7 @@ typedef struct ctf_dtdef { char *dtd_name; /* name associated with definition (if any) */ ctf_id_t dtd_type; /* type identifier for this definition */ ctf_type_t dtd_data; /* type node (see ) */ + int dtd_ref; /* recfount for dyanmic types */ union { ctf_list_t dtu_members; /* struct, union, or enum */ ctf_arinfo_t dtu_arr; /* array */ @@ -269,7 +271,9 @@ enum { ECTF_DTFULL, /* CTF type is full (no more members allowed) */ ECTF_FULL, /* CTF container is full */ ECTF_DUPMEMBER, /* duplicate member name definition */ - ECTF_CONFLICT /* conflicting type definition present */ + ECTF_CONFLICT, /* conflicting type definition present */ + ECTF_REFERENCED, /* type has outstanding references */ + ECTF_NOTDYN /* type is not a dynamic type */ }; extern ssize_t ctf_get_ctt_size(const ctf_file_t *, const ctf_type_t *, Modified: vendor/illumos/dist/common/ctf/ctf_open.c ============================================================================== --- vendor/illumos/dist/common/ctf/ctf_open.c Fri Aug 16 19:27:29 2013 (r254421) +++ vendor/illumos/dist/common/ctf/ctf_open.c Fri Aug 16 19:33:36 2013 (r254422) @@ -24,8 +24,9 @@ * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - -#pragma ident "%Z%%M% %I% %E% SMI" +/* + * Copyright (c) 2012, Joyent, Inc. All rights reserved. + */ #include #include @@ -810,8 +811,12 @@ ctf_close(ctf_file_t *fp) if (fp->ctf_parent != NULL) ctf_close(fp->ctf_parent); - for (dtd = ctf_list_next(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) { - ntd = ctf_list_next(dtd); + /* + * Note, to work properly with reference counting on the dynamic + * section, we must delete the list in reverse. + */ + for (dtd = ctf_list_prev(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) { + ntd = ctf_list_prev(dtd); ctf_dtd_delete(fp, dtd); } From owner-svn-src-vendor@FreeBSD.ORG Fri Aug 16 19:33:37 2013 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CCCFEAC7; Fri, 16 Aug 2013 19:33:37 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B90A12CC6; Fri, 16 Aug 2013 19:33:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7GJXb7R024717; Fri, 16 Aug 2013 19:33:37 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7GJXbhI024716; Fri, 16 Aug 2013 19:33:37 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201308161933.r7GJXbhI024716@svn.freebsd.org> From: Xin LI Date: Fri, 16 Aug 2013 19:33:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254422 - vendor-sys/illumos/dist/uts/common/sys vendor/illumos/dist/common/ctf X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 19:33:37 -0000 Author: delphij Date: Fri Aug 16 19:33:36 2013 New Revision: 254422 URL: http://svnweb.freebsd.org/changeset/base/254422 Log: Update vendor/illumos/dist and vendor-sys/illumos/dist to illumos-gate 14143:42d090a37218: Illumos DTrace issues: 3089 want ::typedef 3094 libctf should support removing a dynamic type 3095 libctf does not validate arrays correctly 3096 libctf does not validate function types correctly Modified: vendor-sys/illumos/dist/uts/common/sys/ctf_api.h Changes in other areas also in this revision: Modified: vendor/illumos/dist/common/ctf/ctf_create.c vendor/illumos/dist/common/ctf/ctf_error.c vendor/illumos/dist/common/ctf/ctf_impl.h vendor/illumos/dist/common/ctf/ctf_open.c Modified: vendor-sys/illumos/dist/uts/common/sys/ctf_api.h ============================================================================== --- vendor-sys/illumos/dist/uts/common/sys/ctf_api.h Fri Aug 16 19:27:29 2013 (r254421) +++ vendor-sys/illumos/dist/uts/common/sys/ctf_api.h Fri Aug 16 19:33:36 2013 (r254422) @@ -23,6 +23,9 @@ * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ +/* + * Copyright (c) 2012, Joyent, Inc. All rights reserved. + */ /* * This header file defines the interfaces available from the CTF debugger @@ -40,8 +43,6 @@ #ifndef _CTF_API_H #define _CTF_API_H -#pragma ident "%Z%%M% %I% %E% SMI" - #include #include #include @@ -223,6 +224,8 @@ extern int ctf_add_member(ctf_file_t *, extern int ctf_set_array(ctf_file_t *, ctf_id_t, const ctf_arinfo_t *); +extern int ctf_delete_type(ctf_file_t *, ctf_id_t); + extern int ctf_update(ctf_file_t *); extern int ctf_discard(ctf_file_t *); extern int ctf_write(ctf_file_t *, int);