Ответ 1
Причина довольно проста: когда SSL_Write возвращается с SSL_ERROR_WANT_WRITE или SSL_ERROR_WANT_READ, вам нужно снова повторить вызов SSL_write с ТОЧНЫМИ теми же параметрами после того, как условие выполнено (чтение/запись доступно в сокете).
Вызов его с разными параметрами приведет к ошибке ошибки повторной записи 1409F07F.
Например, когда SSL_write (ssl, ptr, size) с ptr = 0xABCDEFGH, размер = 4096 с ошибкой SSL_ERROR_WANT_READ или SSL_ERROR_WANT_WRITE, при повторном вызове SSL_write параметры ptr и размер должны быть одинаковыми. Это не эквивалентно, если ptr - другой указатель, указывающий на копию того же содержимого, что и в исходном вызове.
Однако это поведение SSL_write по умолчанию можно изменить, установив SSL_MODE_ENABLE_PARTIAL_WRITE и/или SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER.
Спасибо за @ShriramV за поясняющие комментарии, интегрированные в ответ