Go to the documentation of this file.
69 #include "../internal.h"
95 for (; bio != NULL; bio = next_bio) {
355 while (last_bio->
next_bio != NULL) {
390 if (bio->
method != NULL) {
402 }
while (bio != NULL);
408 if (
indent > max_indent) {
445 if (
len < prefix_len) {
453 size_t done = prefix_len;
461 assert(
todo < INT_MAX);
466 }
else if (
n == -1) {
474 if (len < kChunkSize || len > max_len) {
478 if (new_buf == NULL) {
499 if (out_eof_on_first_read != NULL) {
500 *out_eof_on_first_read = first_read &&
ret == 0;
522 static const size_t kInitialHeaderLen = 2;
523 int eof_on_first_read;
525 if (eof_on_first_read) {
539 if ((
tag & 0x1f) == 0x1f) {
545 size_t len, header_len;
546 if ((length_byte & 0x80) == 0) {
549 header_len = kInitialHeaderLen;
551 const size_t num_bytes = length_byte & 0x7f;
553 if ((
tag & 0x20 ) != 0 && num_bytes == 0) {
563 if (num_bytes == 0 || num_bytes > 4) {
572 header_len = kInitialHeaderLen + num_bytes;
575 for (
unsigned i = 0;
i < num_bytes;
i++) {
577 len32 |=
header[kInitialHeaderLen +
i];
586 if ((len32 >> ((num_bytes-1)*8)) == 0) {
595 if (
len + header_len <
len ||
596 len + header_len > max_len ||
664 int (*
write)(
BIO *,
const char *,
int)) {
670 int (*
read)(
BIO *,
char *,
int)) {
676 int (*gets)(
BIO *,
char *,
int)) {
682 long (*ctrl)(
BIO *,
int,
long,
void *)) {
size_t BIO_ctrl_pending(const BIO *bio)
int BIO_test_flags(const BIO *bio, int flags)
long(* bio_info_cb)(BIO *bio, int event, const char *parg, int cmd, long larg, long return_value)
#define CRYPTO_STATIC_MUTEX_INIT
#define BIO_CTRL_WPENDING
void BIO_set_retry_write(BIO *bio)
int BIO_write_all(BIO *bio, const void *data, size_t len)
long(* callback_ctrl)(BIO *, int, bio_info_cb)
static int print_bio(const char *str, size_t len, void *bio)
static int bio_read_full(BIO *bio, uint8_t *out, int *out_eof_on_first_read, size_t len)
void BIO_set_data(BIO *bio, void *ptr)
#define BIO_R_UNINITIALIZED
#define CRYPTO_STATIC_MUTEX_unlock_write
int BIO_read(BIO *bio, void *buf, int len)
#define OPENSSL_PUT_ERROR(library, reason)
#define BIO_FLAGS_SHOULD_RETRY
int BIO_meth_set_ctrl(BIO_METHOD *method, long(*ctrl)(BIO *, int, long, void *))
void BIO_free_all(BIO *bio)
int BIO_get_retry_reason(const BIO *bio)
int(* bwrite)(BIO *, const char *, int)
static constexpr size_t kChunkSize
zend_class_entry * method_type
#define ERR_print_errors_cb
void * BIO_get_data(BIO *bio)
long BIO_int_ctrl(BIO *b, int cmd, long larg, int iarg)
int BIO_meth_set_read(BIO_METHOD *method, int(*read)(BIO *, char *, int))
int BIO_meth_set_destroy(BIO_METHOD *method, int(*destroy)(BIO *))
size_t BIO_pending(const BIO *bio)
long(* ctrl)(BIO *, int, long, void *)
static void * OPENSSL_memset(void *dst, int c, size_t n)
size_t BIO_wpending(const BIO *bio)
BIO * BIO_new(const BIO_METHOD *method)
OPENSSL_EXPORT size_t BIO_number_read(const BIO *bio)
void BIO_clear_flags(BIO *bio, int flags)
void BIO_set_init(BIO *bio, int init)
#define BIO_FLAGS_IO_SPECIAL
void BIO_meth_free(BIO_METHOD *method)
#define ASN1_R_DECODE_ERROR
void BIO_set_shutdown(BIO *bio, int shutdown)
#define ASN1_R_HEADER_TOO_LONG
int BIO_gets(BIO *bio, char *buf, int len)
void ERR_print_errors(BIO *bio)
int BIO_set_close(BIO *bio, int close_flag)
def create(intercept_call)
long BIO_callback_ctrl(BIO *bio, int cmd, bio_info_cb fp)
int BIO_should_retry(const BIO *bio)
#define ASN1_R_NOT_ENOUGH_DATA
static void * tag(intptr_t t)
const BIO_METHOD * method
void BIO_copy_next_retry(BIO *bio)
BIO * BIO_push(BIO *bio, BIO *appended_bio)
OPENSSL_EXPORT size_t BIO_number_written(const BIO *bio)
#define CRYPTO_STATIC_MUTEX_lock_write
int BIO_get_new_index(void)
static void * OPENSSL_memcpy(void *dst, const void *src, size_t n)
struct absl::base_internal::@2940::AllocList::Header header
int BIO_method_type(const BIO *bio)
int BIO_write(BIO *bio, const void *in, int inl)
int BIO_puts(BIO *bio, const char *in)
int BIO_should_read(const BIO *bio)
int BIO_meth_set_gets(BIO_METHOD *method, int(*gets)(BIO *, char *, int))
#define OPENSSL_DECLARE_ERROR_REASON(lib, reason)
BIO * BIO_find_type(BIO *bio, int type)
void BIO_set_retry_read(BIO *bio)
int BIO_meth_set_puts(BIO_METHOD *method, int(*puts)(BIO *, const char *))
int BIO_meth_set_create(BIO_METHOD *method, int(*create)(BIO *))
int BIO_should_io_special(const BIO *bio)
static int bio_read_all(BIO *bio, uint8_t **out, size_t *out_len, const uint8_t *prefix, size_t prefix_len, size_t max_len)
int BIO_get_retry_flags(BIO *bio)
int BIO_read_asn1(BIO *bio, uint8_t **out, size_t *out_len, size_t max_len)
int read(izstream &zs, T *x, Items items)
char * BIO_ptr_ctrl(BIO *b, int cmd, long larg)
static const int kRetryFlags
#define BIO_CTRL_SET_CLOSE
UniquePtr< SSL_SESSION > ret
void BIO_clear_retry_flags(BIO *bio)
static const char prefix[]
int BIO_indent(BIO *bio, unsigned indent, unsigned max_indent)
long BIO_ctrl(BIO *bio, int cmd, long larg, void *parg)
void BIO_set_retry_special(BIO *bio)
int BIO_set_write_buffer_size(BIO *bio, int buffer_size)
static struct CRYPTO_STATIC_MUTEX g_index_lock
BIO_METHOD * BIO_meth_new(int type, const char *name)
#define CRYPTO_refcount_inc
void BIO_set_flags(BIO *bio, int flags)
int BIO_should_write(const BIO *bio)
int BIO_get_shutdown(BIO *bio)
int BIO_get_init(BIO *bio)
CRYPTO_refcount_t references
void BIO_set_retry_reason(BIO *bio, int reason)
static std::function< void(void *, Slot *)> destroy
int(* bread)(BIO *, char *, int)
int(* bgets)(BIO *, char *, int)
#define BIO_R_UNSUPPORTED_METHOD
#define ERR_R_MALLOC_FAILURE
int BIO_meth_set_write(BIO_METHOD *method, int(*write)(BIO *, const char *, int))
#define CRYPTO_refcount_dec_and_test_zero
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:38