Date: Sat, 20 Aug 2011 09:41:32 GMT From: Catalin Nicutar <cnicutar@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 197905 for review Message-ID: <201108200941.p7K9fWw3003625@skunkworks.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@197905?ac=10 Change 197905 by cnicutar@cnicutar_cronos on 2011/08/20 09:40:36 Take uto_enable into account when handling connections. Affected files ... .. //depot/projects/soc2011/cnicutar_tcputo_9/src/sys/netinet/tcp_input.c#4 edit .. //depot/projects/soc2011/cnicutar_tcputo_9/src/sys/netinet/tcp_usrreq.c#4 edit .. //depot/projects/soc2011/cnicutar_tcputo_9/src/sys/netinet/tcp_var.h#7 edit Differences ... ==== //depot/projects/soc2011/cnicutar_tcputo_9/src/sys/netinet/tcp_input.c#4 (text+ko) ==== @@ -3196,8 +3196,6 @@ case TCPOPT_UTO: if (optlen != TCPOLEN_UTO) continue; - if (!V_uto_enable) - continue; to->to_flags |= TOF_UTO; bcopy((char *)cp + 2, (char *)&to->to_uto, sizeof(to->to_uto)); ==== //depot/projects/soc2011/cnicutar_tcputo_9/src/sys/netinet/tcp_usrreq.c#4 (text+ko) ==== @@ -1330,7 +1330,8 @@ return (error); INP_WLOCK_RECHECK(inp); - if (optval == 0) { + /* Silently turn it off if !V_uto_enable. */ + if (!V_uto_enable || optval <= 0) { /* Disable sending the option. */ tp->t_flags &= ~TF_SND_UTO; tp->snd_uto = 0; @@ -1353,16 +1354,18 @@ return (error); INP_WLOCK_RECHECK(inp); - if (optval <= 0) + if (!V_uto_enable || optval <= 0) /* This connection will ignore suggestions. */ tp->t_flags &= ~TF_RCV_UTO; else { tp->t_flags |= TF_RCV_UTO; /* * If optval > 1, we'll use it as the max - * acceptable suggestion. + * acceptable suggestion (or silently truncate + * it to V_uto_max_timeout). */ - tp->max_uto = (optval > 1) ? + tp->max_uto = (optval > 1 && + optval < V_uto_max_timeout) ? optval : V_uto_max_timeout; } INP_WUNLOCK(inp); ==== //depot/projects/soc2011/cnicutar_tcputo_9/src/sys/netinet/tcp_var.h#7 (text+ko) ==== @@ -262,8 +262,8 @@ #define BYTES_THIS_ACK(tp, th) (th->th_ack - tp->snd_una) -#define USING_UTO(tp) (tp)->snd_uto || \ - (((tp)->t_flags & TF_RCV_UTO) && (tp)->rcv_uto) +#define USING_UTO(tp) V_uto_enable && ((tp)->snd_uto || \ + (((tp)->t_flags & TF_RCV_UTO) && (tp)->rcv_uto)) #define UTO_VALUE(to) ((to).to_uto & UTO_MINS) ? \ ((to).to_uto & ~(UTO_MINS)) * 60 : (to).to_uto
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201108200941.p7K9fWw3003625>