In a certain minority of cases (namely with Nagle off) the Host: header will not be in the first packet.
Some improvements on last commit.
Seems the while(0) wasn't behaving the way I'd hoped.