Subject: Re: CRLF requirement

From: Peter Gutmann <[email-masked]>
Date: Sat, 5 Jul 2014 14:21:13 +0000

David Krauss <[email-masked]> writes:

>Also, somehow the word Connection got munged to nnCoection. Never
>underestimate the expressive power of old-school C =97 I=92d wager that this
>is somehow the result of a typo where the backslash was omitted from =93\n=94
>in the source.

	/* The bizarre spellings are for NetApp NetCache servers, which 
	   unfortunately are widespread enough that we need to provide 
	   special-case handling for them.
	   
	   The reason why NetApp devices do this is because they think that 
	   they can manage connections better than the application that's 
	   creating them, so they rewrite "Connection: close" into something
	   that won't be recognised in order to avoid the connection 
	   actually being closed.  The reason for the 16-bit swap is because
	   the Fletcher checksum used in TCP/IP doesn't detect 16-bit word
	   swaps, so this allows the connection-control to be invalidated
	   without requiring a recalculation of the TCP checksum.  
		   
	   Someone probably got bonus pay for coming up with this */

Peter.

---

From: "Poul-Henning Kamp" <[email-masked]>
Date: Sat, 05 Jul 2014 14:39:08 +0000

In message <[email-masked].
ac.nz>, Peter Gutmann writes:

>	   The reason for the 16-bit swap is because

Well deserved IMO, that is a neat hack :-)

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
[email-masked]         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.