From c8666089c82625a385e5d43df538b951635bccc8 Mon Sep 17 00:00:00 2001 From: Marc Aldorasi Date: Fri, 15 Sep 2017 13:00:05 -0400 Subject: [PATCH] schannel: Support partial send for when data is too large Schannel can only encrypt a certain amount of data at once. Instead of failing when too much data is to be sent at once, send as much data as we can and let the caller send the remaining data by calling send again. Bug: https://curl.haxx.se/mail/lib-2014-07/0033.html Closes https://github.com/curl/curl/pull/1890 --- lib/vtls/schannel.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c index 83d443fd1..9ca1431bd 100644 --- a/lib/vtls/schannel.c +++ b/lib/vtls/schannel.c @@ -1047,8 +1047,7 @@ schannel_send(struct connectdata *conn, int sockindex, /* check if the buffer is longer than the maximum message length */ if(len > BACKEND->stream_sizes.cbMaximumMessage) { - *err = CURLE_SEND_ERROR; - return -1; + len = BACKEND->stream_sizes.cbMaximumMessage; } /* calculate the complete message length and allocate a buffer for it */