customizable socket timeout