Remove unreachable code for generating RST segments from tcp_twcheck();
this code became stale when T/TCP support was removed. Discussed with: bz, sam MFC after: 1 month
This commit is contained in:
parent
ea74abd5f5
commit
8e5057ed20
@ -333,11 +333,6 @@ tcp_twcheck(struct inpcb *inp, struct tcpopt *to, struct tcphdr *th,
|
||||
struct tcptw *tw;
|
||||
int thflags;
|
||||
tcp_seq seq;
|
||||
#ifdef INET6
|
||||
int isipv6 = (mtod(m, struct ip *)->ip_v == 6) ? 1 : 0;
|
||||
#else
|
||||
const int isipv6 = 0;
|
||||
#endif
|
||||
|
||||
/* tcbinfo lock required for tcp_twclose(), tcp_tw_2msl_reset(). */
|
||||
INP_INFO_WLOCK_ASSERT(&V_tcbinfo);
|
||||
@ -417,46 +412,6 @@ tcp_twcheck(struct inpcb *inp, struct tcpopt *to, struct tcphdr *th,
|
||||
if (thflags != TH_ACK || tlen != 0 ||
|
||||
th->th_seq != tw->rcv_nxt || th->th_ack != tw->snd_nxt)
|
||||
tcp_twrespond(tw, TH_ACK);
|
||||
goto drop;
|
||||
|
||||
/*
|
||||
* Generate a RST, dropping incoming segment.
|
||||
* Make ACK acceptable to originator of segment.
|
||||
* Don't bother to respond if destination was broadcast/multicast.
|
||||
*/
|
||||
if (m->m_flags & (M_BCAST|M_MCAST))
|
||||
goto drop;
|
||||
if (isipv6) {
|
||||
#ifdef INET6
|
||||
struct ip6_hdr *ip6;
|
||||
|
||||
/* IPv6 anycast check is done at tcp6_input() */
|
||||
ip6 = mtod(m, struct ip6_hdr *);
|
||||
if (IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst) ||
|
||||
IN6_IS_ADDR_MULTICAST(&ip6->ip6_src))
|
||||
goto drop;
|
||||
#endif
|
||||
} else {
|
||||
struct ip *ip;
|
||||
|
||||
ip = mtod(m, struct ip *);
|
||||
if (IN_MULTICAST(ntohl(ip->ip_dst.s_addr)) ||
|
||||
IN_MULTICAST(ntohl(ip->ip_src.s_addr)) ||
|
||||
ip->ip_src.s_addr == htonl(INADDR_BROADCAST) ||
|
||||
in_broadcast(ip->ip_dst, m->m_pkthdr.rcvif))
|
||||
goto drop;
|
||||
}
|
||||
if (thflags & TH_ACK) {
|
||||
tcp_respond(NULL,
|
||||
mtod(m, void *), th, m, 0, th->th_ack, TH_RST);
|
||||
} else {
|
||||
seq = th->th_seq + (thflags & TH_SYN ? 1 : 0);
|
||||
tcp_respond(NULL,
|
||||
mtod(m, void *), th, m, seq, 0, TH_RST|TH_ACK);
|
||||
}
|
||||
INP_WUNLOCK(inp);
|
||||
return (0);
|
||||
|
||||
drop:
|
||||
INP_WUNLOCK(inp);
|
||||
m_freem(m);
|
||||
|
Loading…
x
Reference in New Issue
Block a user