1) We need to call stream_set_timeout($handle) to handle socket read timeout, because fsockopen($whoisHost, 43, $errno, $errstr, $this->timeout) is only for establishing connection, not for reading/writing
2) Seems like feof not working correctly on timeout. It continues to return FALSE event after timeout. fread returns empty string and infinite loop occurs. This is very dangerous bug
This commit fixes two issues
1) We need to call stream_set_timeout($handle) to handle socket read timeout, because fsockopen($whoisHost, 43, $errno, $errstr, $this->timeout) is only for establishing connection, not for reading/writing 2) Seems like feof not working correctly on timeout. It continues to return FALSE event after timeout. fread returns empty string and infinite loop occurs. This is very dangerous bug