From: Marc Aldorasi Date: Fri, 15 Sep 2017 17:00:05 +0000 (-0400) Subject: schannel: Support partial send for when data is too large X-Git-Tag: curl-7_56_0~53 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c8666089c82625a385e5d43df538b951635bccc8;p=thirdparty%2Fcurl.git 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 --- diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c index 83d443fd1a..9ca1431bdb 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 */