Commit 85881f9f authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

curl_formget: treat CURLFORM_STREAM better

If a piece is set to use a callback to get the data, it should not be
treated as data. It unfortunately also requires that curl_easy_perform()
or similar has been used as otherwise the callback function hasn't been
figured out and curl_formget won't know how to get the content.
parent 84e13f2e
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -875,7 +875,7 @@ int curl_formget(struct curl_httppost *form, void *arg,
    return (int)rc;

  for(ptr = data; ptr; ptr = ptr->next) {
    if(ptr->type == FORM_FILE) {
    if((ptr->type == FORM_FILE) || (ptr->type == FORM_CALLBACK)) {
      char buffer[8192];
      size_t nread;
      struct Form temp;
@@ -1301,8 +1301,12 @@ static size_t readfromfile(struct Form *form, char *buffer,
  size_t nread;
  bool callback = (bool)(form->data->type == FORM_CALLBACK);

  if(callback)
  if(callback) {
    if(form->fread_func == ZERO_NULL)
      return 0;
    else
      nread = form->fread_func(buffer, 1, size, form->data->line);
  }
  else {
    if(!form->fp) {
      /* this file hasn't yet been opened */