socket_timeout
void socket_timeout(int signum);
signal(SIGALRM, socket_timeout);
OSSL_TIME socket_timeout;
data->socket_timeout = ossl_ms2time(timeout);
data->socket_timeout = ossl_time_from_timeval(tv);
if (ossl_time_is_zero(data->socket_timeout)
|| ossl_time_compare(data->socket_timeout, timeleft) >= 0) {
int timeout = (int)ossl_time2ms(data->socket_timeout);
struct timeval tv = ossl_time_to_timeval(data->socket_timeout);