From: bluhm Date: Wed, 10 Apr 2024 22:10:03 +0000 (+0000) Subject: Move global variables for TCP debug onto the tcp_input() stack. X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=782ed1dafd5632258146a4c94925bfa2be012c28;p=openbsd Move global variables for TCP debug onto the tcp_input() stack. OK mvs@ --- diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index a828508b127..7bd9e07e399 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tcp_input.c,v 1.401 2024/02/13 12:22:09 bluhm Exp $ */ +/* $OpenBSD: tcp_input.c,v 1.402 2024/04/10 22:10:03 bluhm Exp $ */ /* $NetBSD: tcp_input.c,v 1.23 1996/02/13 23:43:44 christos Exp $ */ /* @@ -100,8 +100,6 @@ #include #endif -struct tcpiphdr tcp_saveti; - int tcp_mss_adv(struct mbuf *, int); int tcp_flush_queue(struct tcpcb *); @@ -109,8 +107,6 @@ int tcp_flush_queue(struct tcpcb *); #include #include -struct tcpipv6hdr tcp_saveti6; - /* for the packet header length in the mbuf */ #define M_PH_LEN(m) (((struct mbuf *)(m))->m_pkthdr.len) #define M_V6_LEN(m) (M_PH_LEN(m) - sizeof(struct ip6_hdr)) @@ -373,7 +369,13 @@ tcp_input(struct mbuf **mp, int *offp, int proto, int af) int todrop, acked, ourfinisacked; int hdroptlen = 0; short ostate; - caddr_t saveti; + union { + struct tcpiphdr tcpip; +#ifdef INET6 + struct tcpipv6hdr tcpip6; +#endif + char caddr; + } saveti; tcp_seq iss, *reuse = NULL; uint64_t now; u_long tiwin; @@ -672,15 +674,13 @@ findpcb: switch (af) { #ifdef INET6 case AF_INET6: - saveti = (caddr_t) &tcp_saveti6; - memcpy(&tcp_saveti6.ti6_i, ip6, sizeof(*ip6)); - memcpy(&tcp_saveti6.ti6_t, th, sizeof(*th)); + saveti.tcpip6.ti6_i = *ip6; + saveti.tcpip6.ti6_t = *th; break; #endif case AF_INET: - saveti = (caddr_t) &tcp_saveti; - memcpy(&tcp_saveti.ti_i, ip, sizeof(*ip)); - memcpy(&tcp_saveti.ti_t, th, sizeof(*th)); + memcpy(&saveti.tcpip.ti_i, ip, sizeof(*ip)); + saveti.tcpip.ti_t = *th; break; } } @@ -2031,7 +2031,7 @@ dodata: /* XXX */ } } if (otp) - tcp_trace(TA_INPUT, ostate, tp, otp, saveti, 0, tlen); + tcp_trace(TA_INPUT, ostate, tp, otp, &saveti.caddr, 0, tlen); /* * Return any desired output. @@ -2110,7 +2110,7 @@ drop: * Drop space held by incoming segment and return. */ if (otp) - tcp_trace(TA_DROP, ostate, tp, otp, saveti, 0, tlen); + tcp_trace(TA_DROP, ostate, tp, otp, &saveti.caddr, 0, tlen); m_freem(m); in_pcbunref(inp);