From owner-cvs-src@FreeBSD.ORG Tue Oct 19 21:14:57 2004 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DBD7D16A5AA; Tue, 19 Oct 2004 21:14:57 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CEE1343D3F; Tue, 19 Oct 2004 21:14:57 +0000 (GMT) (envelope-from andre@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i9JLEvk8001575; Tue, 19 Oct 2004 21:14:57 GMT (envelope-from andre@repoman.freebsd.org) Received: (from andre@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i9JLEvjQ001574; Tue, 19 Oct 2004 21:14:57 GMT (envelope-from andre) Message-Id: <200410192114.i9JLEvjQ001574@repoman.freebsd.org> From: Andre Oppermann Date: Tue, 19 Oct 2004 21:14:57 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/modules/ipdivert Makefile src/sys/netinet in_proto.c ip_divert.c ip_divert.h ip_fw2.c ip_fw_pfil.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Oct 2004 21:14:58 -0000 andre 2004-10-19 21:14:57 UTC FreeBSD src repository Modified files: sys/netinet in_proto.c ip_divert.c ip_divert.h ip_fw2.c ip_fw_pfil.c Added files: sys/modules/ipdivert Makefile Log: Convert IPDIVERT into a loadable module. This makes use of the dynamic loadability of protocols. The call to divert_packet() is done through a function pointer. All semantics of IPDIVERT remain intact. If IPDIVERT is not loaded ipfw will refuse to install divert rules and natd will complain about 'protocol not supported'. Once it is loaded both will work and accept rules and open the divert socket. The module can only be unloaded if no divert sockets are open. It does not close any divert sockets when an unload is requested but will return EBUSY instead. Revision Changes Path 1.1 +8 -0 src/sys/modules/ipdivert/Makefile (new) 1.75 +0 -13 src/sys/netinet/in_proto.c 1.101 +67 -8 src/sys/netinet/ip_divert.c 1.4 +10 -4 src/sys/netinet/ip_divert.h 1.82 +2 -4 src/sys/netinet/ip_fw2.c 1.11 +13 -8 src/sys/netinet/ip_fw_pfil.c