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
This commit is contained in:
Marc Aldorasi 2017-09-15 13:00:05 -04:00 committed by Jay Satiro
parent 843200c5b9
commit c8666089c8
1 changed files with 1 additions and 2 deletions

View File

@ -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 */