curl_mime_data does not change Content-Length when change data after perform #1999

Closed
moteus opened this Issue Oct 19, 2017 · 2 comments

Comments

Projects
None yet
2 participants

moteus commented Oct 19, 2017

I did this

I create mime with simple text then I did perform and curl correcly send data.
After that I change data in text part but when I did perform again curl
send Content-Length for first data. If I change data without doing perform then
curl send correct Content-Length. This is my snippet on Lua, but I think
it quite easy to understand.

local easy = curl.easy()
local mime = easy:mime()

easy:setopt{
  url            = "http://127.0.0.1:7090/get";
  customrequest  = "GET";
  mimepost       = mime;
  writefunction  = function()end;
}

local part = mime:addpart()

part:data('1234567890')
easy:perform() -- here curl send Conten-Length: 136 (which is correct)

part:data('abcd')
easy:perform() -- here curl send same Conten-Length: 136 but data size is 130

I expected the following

I expected that curl send correct Content-Length

curl/libcurl version

libcurl/7.56.0 WinSSL

operating system

Windows 7 x64

Collaborator

monnerat commented Oct 20, 2017

Many tanks for the report: the bug is confirmed.
I will produce a fix and a test case in the next hours.

@monnerat monnerat closed this in cea27d3 Oct 20, 2017

monnerat added a commit that referenced this issue Oct 20, 2017

Collaborator

monnerat commented Oct 20, 2017

Fix pushed: cea27d3
Test for this case: 8351ab4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment