From: Daniel Stenberg Date: Mon, 5 Aug 2002 17:04:39 +0000 (+0000) Subject: Make SessionHandle keep record if it is used with the multi interface or X-Git-Tag: curl-7_10~135 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=108cb14d1f01deb5e5704c70c0feb8e2fd8d2175;p=curl Make SessionHandle keep record if it is used with the multi interface or the easy interface, it CANNOT be used by a mixture. --- diff --git a/lib/multi.c b/lib/multi.c index d6ede8235..2e6a408b4 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -263,10 +263,13 @@ CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles) case CURLM_STATE_INIT: /* init this transfer. */ easy->result=Curl_pretransfer(easy->easy_handle); + if(CURLE_OK == easy->result) { /* after init, go CONNECT */ easy->state = CURLM_STATE_CONNECT; result = CURLM_CALL_MULTI_PERFORM; + + easy->easy_handle->state.used_interface = Curl_if_multi; } break; case CURLM_STATE_CONNECT: diff --git a/lib/transfer.c b/lib/transfer.c index f266a4a3b..ae9d621c8 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -1156,6 +1156,8 @@ CURLcode Curl_perform(struct SessionHandle *data) struct connectdata *conn=NULL; char *newurl = NULL; /* possibly a new URL to follow to! */ + data->state.used_interface = Curl_if_easy; + res = Curl_pretransfer(data); if(res) return res; diff --git a/lib/urldata.h b/lib/urldata.h index cb0e3dec9..57ac15529 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -488,6 +488,12 @@ typedef enum { #define MAX_CURL_PASSWORD_LENGTH 256 struct UrlState { + enum { + Curl_if_none, + Curl_if_easy, + Curl_if_multi + } used_interface; + /* buffers to store authentication data in, as parsed from input options */ char user[MAX_CURL_USER_LENGTH]; char passwd[MAX_CURL_PASSWORD_LENGTH];