ip_output.c (118622) | ip_output.c (119178) |
---|---|
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 * $FreeBSD: head/sys/netinet/ip_output.c 118622 2003-08-07 18:16:59Z hsu $ | 34 * $FreeBSD: head/sys/netinet/ip_output.c 119178 2003-08-20 14:46:40Z bms $ |
35 */ 36 37#include "opt_ipfw.h" 38#include "opt_ipdn.h" 39#include "opt_ipdivert.h" 40#include "opt_ipfilter.h" 41#include "opt_ipsec.h" 42#include "opt_mac.h" --- 429 unchanged lines hidden (view full) --- 472 error = EACCES; 473 goto bad; 474 } 475 /* don't allow broadcast messages to be fragmented */ 476 if (ip->ip_len > ifp->if_mtu) { 477 error = EMSGSIZE; 478 goto bad; 479 } | 35 */ 36 37#include "opt_ipfw.h" 38#include "opt_ipdn.h" 39#include "opt_ipdivert.h" 40#include "opt_ipfilter.h" 41#include "opt_ipsec.h" 42#include "opt_mac.h" --- 429 unchanged lines hidden (view full) --- 472 error = EACCES; 473 goto bad; 474 } 475 /* don't allow broadcast messages to be fragmented */ 476 if (ip->ip_len > ifp->if_mtu) { 477 error = EMSGSIZE; 478 goto bad; 479 } |
480 if (flags & IP_SENDONES) 481 ip->ip_dst.s_addr = INADDR_BROADCAST; |
|
480 m->m_flags |= M_BCAST; 481 } else { 482 m->m_flags &= ~M_BCAST; 483 } 484 485sendit: 486#ifdef IPSEC 487 /* get SP for this packet */ --- 980 unchanged lines hidden (view full) --- 1468 case IP_TOS: 1469 case IP_TTL: 1470 case IP_RECVOPTS: 1471 case IP_RECVRETOPTS: 1472 case IP_RECVDSTADDR: 1473 case IP_RECVTTL: 1474 case IP_RECVIF: 1475 case IP_FAITH: | 482 m->m_flags |= M_BCAST; 483 } else { 484 m->m_flags &= ~M_BCAST; 485 } 486 487sendit: 488#ifdef IPSEC 489 /* get SP for this packet */ --- 980 unchanged lines hidden (view full) --- 1470 case IP_TOS: 1471 case IP_TTL: 1472 case IP_RECVOPTS: 1473 case IP_RECVRETOPTS: 1474 case IP_RECVDSTADDR: 1475 case IP_RECVTTL: 1476 case IP_RECVIF: 1477 case IP_FAITH: |
1478 case IP_ONESBCAST: |
|
1476 error = sooptcopyin(sopt, &optval, sizeof optval, 1477 sizeof optval); 1478 if (error) 1479 break; 1480 1481 switch (sopt->sopt_name) { 1482 case IP_TOS: 1483 inp->inp_ip_tos = optval; --- 26 unchanged lines hidden (view full) --- 1510 1511 case IP_RECVIF: 1512 OPTSET(INP_RECVIF); 1513 break; 1514 1515 case IP_FAITH: 1516 OPTSET(INP_FAITH); 1517 break; | 1479 error = sooptcopyin(sopt, &optval, sizeof optval, 1480 sizeof optval); 1481 if (error) 1482 break; 1483 1484 switch (sopt->sopt_name) { 1485 case IP_TOS: 1486 inp->inp_ip_tos = optval; --- 26 unchanged lines hidden (view full) --- 1513 1514 case IP_RECVIF: 1515 OPTSET(INP_RECVIF); 1516 break; 1517 1518 case IP_FAITH: 1519 OPTSET(INP_FAITH); 1520 break; |
1521 1522 case IP_ONESBCAST: 1523 OPTSET(INP_ONESBCAST); 1524 break; |
|
1518 } 1519 break; 1520#undef OPTSET 1521 1522 case IP_MULTICAST_IF: 1523 case IP_MULTICAST_VIF: 1524 case IP_MULTICAST_TTL: 1525 case IP_MULTICAST_LOOP: --- 77 unchanged lines hidden (view full) --- 1603 case IP_TTL: 1604 case IP_RECVOPTS: 1605 case IP_RECVRETOPTS: 1606 case IP_RECVDSTADDR: 1607 case IP_RECVTTL: 1608 case IP_RECVIF: 1609 case IP_PORTRANGE: 1610 case IP_FAITH: | 1525 } 1526 break; 1527#undef OPTSET 1528 1529 case IP_MULTICAST_IF: 1530 case IP_MULTICAST_VIF: 1531 case IP_MULTICAST_TTL: 1532 case IP_MULTICAST_LOOP: --- 77 unchanged lines hidden (view full) --- 1610 case IP_TTL: 1611 case IP_RECVOPTS: 1612 case IP_RECVRETOPTS: 1613 case IP_RECVDSTADDR: 1614 case IP_RECVTTL: 1615 case IP_RECVIF: 1616 case IP_PORTRANGE: 1617 case IP_FAITH: |
1618 case IP_ONESBCAST: |
|
1611 switch (sopt->sopt_name) { 1612 1613 case IP_TOS: 1614 optval = inp->inp_ip_tos; 1615 break; 1616 1617 case IP_TTL: 1618 optval = inp->inp_ip_ttl; --- 28 unchanged lines hidden (view full) --- 1647 optval = IP_PORTRANGE_LOW; 1648 else 1649 optval = 0; 1650 break; 1651 1652 case IP_FAITH: 1653 optval = OPTBIT(INP_FAITH); 1654 break; | 1619 switch (sopt->sopt_name) { 1620 1621 case IP_TOS: 1622 optval = inp->inp_ip_tos; 1623 break; 1624 1625 case IP_TTL: 1626 optval = inp->inp_ip_ttl; --- 28 unchanged lines hidden (view full) --- 1655 optval = IP_PORTRANGE_LOW; 1656 else 1657 optval = 0; 1658 break; 1659 1660 case IP_FAITH: 1661 optval = OPTBIT(INP_FAITH); 1662 break; |
1663 1664 case IP_ONESBCAST: 1665 optval = OPTBIT(INP_ONESBCAST); 1666 break; |
|
1655 } 1656 error = sooptcopyout(sopt, &optval, sizeof optval); 1657 break; 1658 1659 case IP_MULTICAST_IF: 1660 case IP_MULTICAST_VIF: 1661 case IP_MULTICAST_TTL: 1662 case IP_MULTICAST_LOOP: --- 613 unchanged lines hidden --- | 1667 } 1668 error = sooptcopyout(sopt, &optval, sizeof optval); 1669 break; 1670 1671 case IP_MULTICAST_IF: 1672 case IP_MULTICAST_VIF: 1673 case IP_MULTICAST_TTL: 1674 case IP_MULTICAST_LOOP: --- 613 unchanged lines hidden --- |