From: Daniel Stenberg Date: Thu, 26 Oct 2000 21:57:12 +0000 (+0000) Subject: Georg Horn provided a fix for the timeout signal stuff. Finally the timeout X-Git-Tag: upstream/7.37.1~17531 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9d0d8280e984ca265bb61f075020d85e9a5b9ad8;p=platform%2Fupstream%2Fcurl.git Georg Horn provided a fix for the timeout signal stuff. Finally the timeout switch should work under most unixes (requires sigaction()) --- diff --git a/lib/url.c b/lib/url.c index 32faa34..c941e99 100644 --- a/lib/url.c +++ b/lib/url.c @@ -686,6 +686,9 @@ CURLcode curl_connect(CURL *curl, CURLconnect **in_connect) char resumerange[12]=""; struct UrlData *data = curl; struct connectdata *conn; +#ifdef HAVE_SIGACTION + struct sigaction sigact; +#endif if(!data || (data->handle != STRUCT_OPEN)) return CURLE_BAD_FUNCTION_ARGUMENT; /* TBD: make error codes */ @@ -711,8 +714,11 @@ CURLcode curl_connect(CURL *curl, CURLconnect **in_connect) buf = data->buffer; /* this is our buffer */ -#if 0 - signal(SIGALRM, alarmfunc); +#ifdef HAVE_SIGACTION + sigaction(SIGALRM, NULL, &sigact); + sigact.sa_handler = alarmfunc; + sigact.sa_flags &= ~SA_RESTART; + sigaction(SIGALRM, &sigact, NULL); #endif /* Parse */ @@ -1393,11 +1399,9 @@ CURLcode curl_connect(CURL *curl, CURLconnect **in_connect) failf(data, "Attempt to connect to broadcast address without socket broadcast flag or local firewall rule violated: %d",errno); break; #endif -#ifdef EINTR case EINTR: failf(data, "Connection timeouted"); break; -#endif #if 0 case EAFNOSUPPORT: failf(data, "Incorrect address family: %d",errno);