Calling settimeout before connect instead of after. From the tcpsock:connect docs: "It is important here to call the settimeout method before calling this method."
Removing lines that prevent HEAD requests to function properly. Responses to HEAD requests are without a body by definition, so the driver should return as normal instead of nil.