View | Details | Raw Unified | Return to bug 265064 | Differences between
and this patch

Collapse All | Expand All

(-)sys/netinet/in_pcb.c (-4 / +12 lines)
Lines 783-789 Link Here
783
	}
783
	}
784
784
785
#ifdef INET
785
#ifdef INET
786
	laddr.s_addr = INADDR_ANY;
786
	laddr.s_addr = INADDR_ANY; /* will be used by ipv6 branch later too */
787
	if ((inp->inp_vflag & (INP_IPV4|INP_IPV6)) == INP_IPV4) {
787
	if ((inp->inp_vflag & (INP_IPV4|INP_IPV6)) == INP_IPV4) {
788
		if (lsa != NULL)
788
		if (lsa != NULL)
789
			laddr = ((struct sockaddr_in *)lsa)->sin_addr;
789
			laddr = ((struct sockaddr_in *)lsa)->sin_addr;
Lines 834-849 Link Here
834
#endif
834
#endif
835
		} else {
835
		} else {
836
#ifdef INET6
836
#ifdef INET6
837
			if ((inp->inp_vflag & INP_IPV6) != 0)
837
			if ((inp->inp_vflag & INP_IPV6) != 0) {
838
				tmpinp = in6_pcblookup_local(pcbinfo,
838
				tmpinp = in6_pcblookup_local(pcbinfo,
839
				    &inp->in6p_laddr, lport, lookupflags, cred);
839
				    &inp->in6p_laddr, lport, lookupflags, NULL);
840
#ifdef INET
841
				if (tmpinp == NULL &&
842
				    (inp->inp_flags & IN6P_IPV6_V6ONLY) == 0
843
				    && IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_laddr))
844
					tmpinp = in_pcblookup_local(pcbinfo,
845
					    laddr, lport, lookupflags, NULL);
846
#endif
847
			}
840
#endif
848
#endif
841
#if defined(INET) && defined(INET6)
849
#if defined(INET) && defined(INET6)
842
			else
850
			else
843
#endif
851
#endif
844
#ifdef INET
852
#ifdef INET
845
				tmpinp = in_pcblookup_local(pcbinfo, laddr,
853
				tmpinp = in_pcblookup_local(pcbinfo, laddr,
846
				    lport, lookupflags, cred);
854
				    lport, lookupflags, NULL);
847
#endif
855
#endif
848
		}
856
		}
849
	} while (tmpinp != NULL);
857
	} while (tmpinp != NULL);

Return to bug 265064