Module: wine Branch: master Commit: dec243fd2a7065e315e5fb7f5228a2f72591f90b URL: http://source.winehq.org/git/wine.git/?a=commit;h=dec243fd2a7065e315e5fb7f52...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Jan 31 11:46:31 2017 +0100
inetcomm: Don't include headers in data stream in create_sub_body.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/inetcomm/mimeole.c | 30 ++++++++++++++++-------------- dlls/inetcomm/tests/mimeole.c | 4 +--- 2 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/dlls/inetcomm/mimeole.c b/dlls/inetcomm/mimeole.c index 679930d..91c902f 100644 --- a/dlls/inetcomm/mimeole.c +++ b/dlls/inetcomm/mimeole.c @@ -2027,19 +2027,27 @@ end:
static body_t *create_sub_body(MimeMessage *msg, IStream *pStm, BODYOFFSETS *offset, body_t *parent) { + ULARGE_INTEGER start, length; MimeBody *mime_body; HRESULT hr; body_t *body; - ULARGE_INTEGER cur; - LARGE_INTEGER zero; + LARGE_INTEGER pos; + + pos.QuadPart = offset->cbHeaderStart; + IStream_Seek(pStm, pos, STREAM_SEEK_SET, NULL);
mime_body = mimebody_create(); IMimeBody_Load(&mime_body->IMimeBody_iface, pStm); - zero.QuadPart = 0; - hr = IStream_Seek(pStm, zero, STREAM_SEEK_CUR, &cur); - offset->cbBodyStart = cur.u.LowPart + offset->cbHeaderStart; + + pos.QuadPart = 0; + hr = IStream_Seek(pStm, pos, STREAM_SEEK_CUR, &start); + offset->cbBodyStart = start.QuadPart; if (parent) MimeBody_set_offsets(mime_body, offset); - IMimeBody_SetData(&mime_body->IMimeBody_iface, IET_BINARY, NULL, NULL, &IID_IStream, pStm); + + length.QuadPart = offset->cbBodyEnd - offset->cbBodyStart; + create_sub_stream(pStm, start, length, (IStream**)&mime_body->data); + mime_body->data_iid = IID_IStream; + body = new_body_entry(mime_body, msg->next_index++, parent);
if(IMimeBody_IsContentType(&mime_body->IMimeBody_iface, "multipart", NULL) == S_OK) @@ -2064,14 +2072,8 @@ static body_t *create_sub_body(MimeMessage *msg, IStream *pStm, BODYOFFSETS *off LIST_FOR_EACH_ENTRY_SAFE(cur, cursor2, &offset_list, offset_entry_t, entry) { body_t *sub_body; - IStream *sub_stream; - ULARGE_INTEGER start, length; - - start.QuadPart = cur->offsets.cbHeaderStart; - length.QuadPart = cur->offsets.cbBodyEnd - cur->offsets.cbHeaderStart; - create_sub_stream(pStm, start, length, &sub_stream); - sub_body = create_sub_body(msg, sub_stream, &cur->offsets, body); - IStream_Release(sub_stream); + + sub_body = create_sub_body(msg, pStm, &cur->offsets, body); list_add_tail(&body->children, &sub_body->entry); list_remove(&cur->entry); HeapFree(GetProcessHeap(), 0, cur); diff --git a/dlls/inetcomm/tests/mimeole.c b/dlls/inetcomm/tests/mimeole.c index 0765396..16ad06c 100644 --- a/dlls/inetcomm/tests/mimeole.c +++ b/dlls/inetcomm/tests/mimeole.c @@ -693,9 +693,7 @@ static void test_CreateMessage(void) hr = IMimeBody_IsContentType(attachment, "multipart", NULL); ok(hr == S_FALSE, "ret %08x\n", hr);
- hr = IMimeBody_GetCurrentEncoding(attachment, &encoding); - ok(hr == S_OK, "ret %08x\n", hr); - todo_wine ok(encoding == IET_7BIT, "ret %d\n", encoding); + test_current_encoding(attachment, IET_7BIT);
prop.vt = VT_LPSTR; hr = IMimeBody_GetProp(attachment, "Content-Transfer-Encoding", 0, &prop);