in6_pcb.c (275358) | in6_pcb.c (279588) |
---|---|
1/*- 2 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 3 * Copyright (c) 2010-2011 Juniper Networks, Inc. 4 * All rights reserved. 5 * 6 * Portions of this software were developed by Robert N. M. Watson under 7 * contract to Juniper Networks, Inc. 8 * --- 51 unchanged lines hidden (view full) --- 60 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 61 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 62 * SUCH DAMAGE. 63 * 64 * @(#)in_pcb.c 8.2 (Berkeley) 1/4/94 65 */ 66 67#include <sys/cdefs.h> | 1/*- 2 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 3 * Copyright (c) 2010-2011 Juniper Networks, Inc. 4 * All rights reserved. 5 * 6 * Portions of this software were developed by Robert N. M. Watson under 7 * contract to Juniper Networks, Inc. 8 * --- 51 unchanged lines hidden (view full) --- 60 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 61 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 62 * SUCH DAMAGE. 63 * 64 * @(#)in_pcb.c 8.2 (Berkeley) 1/4/94 65 */ 66 67#include <sys/cdefs.h> |
68__FBSDID("$FreeBSD: head/sys/netinet6/in6_pcb.c 275358 2014-12-01 11:45:24Z hselasky $"); | 68__FBSDID("$FreeBSD: head/sys/netinet6/in6_pcb.c 279588 2015-03-04 11:20:01Z ae $"); |
69 70#include "opt_inet.h" 71#include "opt_inet6.h" 72#include "opt_ipsec.h" 73#include "opt_pcbgroup.h" 74#include "opt_rss.h" 75 76#include <sys/param.h> --- 560 unchanged lines hidden (view full) --- 637 if ((inp->inp_vflag & INP_IPV6) == 0) { 638 INP_WUNLOCK(inp); 639 continue; 640 } 641 642 /* 643 * If the error designates a new path MTU for a destination 644 * and the application (associated with this socket) wanted to | 69 70#include "opt_inet.h" 71#include "opt_inet6.h" 72#include "opt_ipsec.h" 73#include "opt_pcbgroup.h" 74#include "opt_rss.h" 75 76#include <sys/param.h> --- 560 unchanged lines hidden (view full) --- 637 if ((inp->inp_vflag & INP_IPV6) == 0) { 638 INP_WUNLOCK(inp); 639 continue; 640 } 641 642 /* 643 * If the error designates a new path MTU for a destination 644 * and the application (associated with this socket) wanted to |
645 * know the value, notify. Note that we notify for all 646 * disconnected sockets if the corresponding application 647 * wanted. This is because some UDP applications keep sending 648 * sockets disconnected. | 645 * know the value, notify. |
649 * XXX: should we avoid to notify the value to TCP sockets? 650 */ | 646 * XXX: should we avoid to notify the value to TCP sockets? 647 */ |
651 if (cmd == PRC_MSGSIZE && (inp->inp_flags & IN6P_MTU) != 0 && 652 (IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_faddr) || 653 IN6_ARE_ADDR_EQUAL(&inp->in6p_faddr, &sa6_dst->sin6_addr))) { | 648 if (cmd == PRC_MSGSIZE) |
654 ip6_notify_pmtu(inp, (struct sockaddr_in6 *)dst, | 649 ip6_notify_pmtu(inp, (struct sockaddr_in6 *)dst, |
655 (u_int32_t *)cmdarg); 656 } | 650 *(u_int32_t *)cmdarg); |
657 658 /* 659 * Detect if we should notify the error. If no source and 660 * destination ports are specifed, but non-zero flowinfo and 661 * local address match, notify the error. This is the case 662 * when the error is delivered with an encrypted buffer 663 * by ESP. Otherwise, just compare addresses and ports 664 * as usual. --- 623 unchanged lines hidden --- | 651 652 /* 653 * Detect if we should notify the error. If no source and 654 * destination ports are specifed, but non-zero flowinfo and 655 * local address match, notify the error. This is the case 656 * when the error is delivered with an encrypted buffer 657 * by ESP. Otherwise, just compare addresses and ports 658 * as usual. --- 623 unchanged lines hidden --- |