return 0;
if (ctx->obuf_len <= 0) {
ret = BIO_ctrl(b->next_bio, cmd, num, ptr);
+ BIO_copy_next_retry(b);
break;
}
}
}
ret = BIO_ctrl(b->next_bio, cmd, num, ptr);
+ BIO_copy_next_retry(b);
break;
case BIO_CTRL_DUP:
dbio = (BIO *)ptr;
return 0;
if (ctx->obuf_len <= 0) {
ret = BIO_ctrl(b->next_bio, cmd, num, ptr);
+ BIO_copy_next_retry(b);
break;
}
}
}
ret = BIO_ctrl(b->next_bio, cmd, num, ptr);
+ BIO_copy_next_retry(b);
break;
case BIO_CTRL_DUP:
dbio = (BIO *)ptr;
case BIO_CTRL_FLUSH:
ret = bio_brotli_flush(b);
- if (ret > 0)
+ if (ret > 0) {
ret = BIO_flush(next);
+ BIO_copy_next_retry(b);
+ }
break;
case BIO_C_SET_BUFF_SIZE:
case BIO_CTRL_FLUSH:
ret = bio_zlib_flush(b);
- if (ret > 0)
+ if (ret > 0) {
ret = BIO_flush(next);
+ BIO_copy_next_retry(b);
+ }
break;
case BIO_C_SET_BUFF_SIZE:
case BIO_CTRL_FLUSH:
ret = bio_zstd_flush(b);
- if (ret > 0)
+ if (ret > 0) {
ret = BIO_flush(next);
+ BIO_copy_next_retry(b);
+ }
break;
case BIO_C_SET_BUFF_SIZE:
}
/* Finally flush the underlying BIO */
ret = BIO_ctrl(next, cmd, num, ptr);
+ BIO_copy_next_retry(b);
break;
case BIO_C_DO_STATE_MACHINE:
/* Finally flush the underlying BIO */
ret = BIO_ctrl(next, cmd, num, ptr);
+ BIO_copy_next_retry(b);
break;
case BIO_C_GET_CIPHER_STATUS:
ret = (long)ctx->ok;
/* Finally flush the underlying BIO */
ret = BIO_ctrl(next, cmd, num, ptr);
+ BIO_copy_next_retry(b);
break;
case BIO_C_DO_STATE_MACHINE:
BIO_clear_retry_flags(b);