libs/web: merge luci.http.protocol fix from Fonosfera
See http://trac.fonosfera.org/fon-ng/changeset/2102/trunk/luci/libs/http .
This commit is contained in:
parent
ec5487649e
commit
c4d0dd19b7
1 changed files with 10 additions and 12 deletions
|
@ -434,23 +434,21 @@ function mimedecode_message_body( src, msg, filecb )
|
|||
until not spos
|
||||
|
||||
if found then
|
||||
if #data > 78 then
|
||||
lchunk = data:sub( #data - 78 + 1, #data )
|
||||
data = data:sub( 1, #data - 78 )
|
||||
|
||||
if store then
|
||||
store( field, data, false )
|
||||
else
|
||||
return nil, "Invalid MIME section header"
|
||||
end
|
||||
else
|
||||
lchunk, data = data, nil
|
||||
end
|
||||
-- We found at least some boundary. Save
|
||||
-- the unparsed remaining data for the
|
||||
-- next chunk.
|
||||
lchunk, data = data, nil
|
||||
else
|
||||
-- There was a complete chunk without a boundary. Parse it as headers or
|
||||
-- append it as data, depending on our current state.
|
||||
if inhdr then
|
||||
lchunk, eof = parse_headers( data, field )
|
||||
inhdr = not eof
|
||||
else
|
||||
-- We're inside data, so append the data. Note that we only append
|
||||
-- lchunk, not all of data, since there is a chance that chunk
|
||||
-- contains half a boundary. Assuming that each chunk is at least the
|
||||
-- boundary in size, this should prevent problems
|
||||
store( field, lchunk, false )
|
||||
lchunk, chunk = chunk, nil
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue