Commit 108cb14d authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Make SessionHandle keep record if it is used with the multi interface or

the easy interface, it CANNOT be used by a mixture.
parent b98308b5
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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:
+2 −0
Original line number Diff line number Diff line
@@ -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;
+6 −0
Original line number Diff line number Diff line
@@ -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];