ip_output.c (46393) | ip_output.c (46420) |
---|---|
1/* 2 * Copyright (c) 1982, 1986, 1988, 1990, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 17 unchanged lines hidden (view full) --- 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * @(#)ip_output.c 8.3 (Berkeley) 1/21/94 | 1/* 2 * Copyright (c) 1982, 1986, 1988, 1990, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 17 unchanged lines hidden (view full) --- 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * @(#)ip_output.c 8.3 (Berkeley) 1/21/94 |
34 * $Id: ip_output.c,v 1.88 1999/04/20 13:32:06 peter Exp $ | 34 * $Id: ip_output.c,v 1.89 1999/05/04 09:26:12 luigi Exp $ |
35 */ 36 37#define _IP_VHL 38 39#include "opt_ipfw.h" 40#include "opt_ipdn.h" 41#include "opt_ipdivert.h" 42#include "opt_ipfilter.h" --- 91 unchanged lines hidden (view full) --- 134 135#if defined(IPFIREWALL) && defined(DUMMYNET) 136 /* 137 * dummynet packet are prepended a vestigial mbuf with 138 * m_type = MT_DUMMYNET and m_data pointing to the matching 139 * rule. 140 */ 141 if (m->m_type == MT_DUMMYNET) { | 35 */ 36 37#define _IP_VHL 38 39#include "opt_ipfw.h" 40#include "opt_ipdn.h" 41#include "opt_ipdivert.h" 42#include "opt_ipfilter.h" --- 91 unchanged lines hidden (view full) --- 134 135#if defined(IPFIREWALL) && defined(DUMMYNET) 136 /* 137 * dummynet packet are prepended a vestigial mbuf with 138 * m_type = MT_DUMMYNET and m_data pointing to the matching 139 * rule. 140 */ 141 if (m->m_type == MT_DUMMYNET) { |
142 struct mbuf *tmp_m = m ; | |
143 /* 144 * the packet was already tagged, so part of the 145 * processing was already done, and we need to go down. 146 * opt, flags and imo have already been used, and now 147 * they are used to hold ifp, dst and NULL, respectively. 148 */ 149 rule = (struct ip_fw_chain *)(m->m_data) ; 150 m0 = m = m->m_next ; | 142 /* 143 * the packet was already tagged, so part of the 144 * processing was already done, and we need to go down. 145 * opt, flags and imo have already been used, and now 146 * they are used to hold ifp, dst and NULL, respectively. 147 */ 148 rule = (struct ip_fw_chain *)(m->m_data) ; 149 m0 = m = m->m_next ; |
151 free(tmp_m, M_IPFW); | |
152 ip = mtod(m, struct ip *); 153 dst = (struct sockaddr_in *)flags ; 154 ifp = (struct ifnet *)opt; 155 hlen = IP_VHL_HL(ip->ip_vhl) << 2 ; 156 opt = NULL ; 157 flags = 0 ; /* XXX is this correct ? */ 158 goto sendit; 159 } else --- 1390 unchanged lines hidden --- | 150 ip = mtod(m, struct ip *); 151 dst = (struct sockaddr_in *)flags ; 152 ifp = (struct ifnet *)opt; 153 hlen = IP_VHL_HL(ip->ip_vhl) << 2 ; 154 opt = NULL ; 155 flags = 0 ; /* XXX is this correct ? */ 156 goto sendit; 157 } else --- 1390 unchanged lines hidden --- |