BIO_S_BIO(3ssl) OpenSSL BIO_S_BIO(3ssl) BIO_s_bio, BIO_make_bio_pair, BIO_destroy_bio_pair, BIO_shutdown_wr, BIO_set_write_buf_size, BIO_get_write_buf_size, BIO_new_bio_pair, BIO_get_write_guarantee, BIO_ctrl_get_write_guarantee, BIO_get_read_request, BIO_ctrl_get_read_request, BIO_ctrl_reset_read_request - BIO BIO #include const BIO_METHOD *BIO_s_bio(void); int BIO_make_bio_pair(BIO *b1, BIO *b2); int BIO_destroy_bio_pair(BIO *b); int BIO_shutdown_wr(BIO *b); int BIO_set_write_buf_size(BIO *b, long size); size_t BIO_get_write_buf_size(BIO *b, long size); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); int BIO_get_write_guarantee(BIO *b); size_t BIO_ctrl_get_write_guarantee(BIO *b); int BIO_get_read_request(BIO *b); size_t BIO_ctrl_get_read_request(BIO *b); int BIO_ctrl_reset_read_request(BIO *b); BIO_s_bio() BIO. BIO BIOs / . . BIO BIO / BIO . BIO / TLS/SSL TLS/SSL . BIO_read_ex() . BIO_write_ex() . BIO_ctrl_pending() BIO_ctrl_wpending() . BIO_reset() . BIO_make_bio_pair() BIOs . BIO_destroy_pair() BIOs . . BIO_shutdown_wr() BIO b. BIO b ( ). EOF . BIO_set_write_buf_size() BIO b size. . 17K TLS . BIO_get_write_buf_size() . BIO_new_bio_pair() BIO_new() BIO_make_bio_pair() BIO_set_write_buf_size() BIOs bio1 bio2 writebuf1 writebuf2. . BIO_new_bio_pair() bio1 bio2 BIO BIO_free() . BIO_get_write_guarantee() BIO_ctrl_get_write_guarantee() BIO. BIO_write_ex() . BIO_ctrl_get_write_guarantee() BIO_get_write_guarantee() . BIO_get_read_request() BIO_ctrl_get_read_request() BIO . BIO : TLS/SSL . . . BIO_get_read_request() BIO_get_write_guarantee(). BIO_ctrl_reset_read_request() BIO_get_read_request() . BIO. BIO_free_all() SSL_free() . ( TLS/SSL) . BIO_pending() . ( select()) BIO_should_read() . BIO_write_ex() BIO_read_ex() TLS/SSL . BIO_write_ex() . BIO_read_ex() BIO_should_read() . ! BIO_eof() BIO BIO . BIO_make_bio_pair(), BIO_destroy_bio_pair(), BIO_shutdown_wr(), BIO_set_write_buf_size(), BIO_get_write_buf_size(), BIO_get_write_guarantee(), BIO_get_read_request() . BIO_new_bio_pair() 1 BIOs bio1 bio2 0 NULL bio1 bio2. . [XXXXX: ] BIO . select() SSL. BIO *internal_bio, *network_bio; ... BIO_new_bio_pair(&internal_bio, 0, &network_bio, 0); SSL_set_bio(ssl, internal_bio, internal_bio); SSL_operations(); /* e.g. SSL_read and SSL_write */ ... application | TLS-engine | | +----------> SSL_operations() | /\ || | || \/ | BIO-pair (internal_bio) | BIO-pair (network_bio) | || /\ | \/ || +-----------< BIO_operations() | | | | socket ... SSL_free(ssl); /* implicitly frees internal_bio */ BIO_free(network_bio); ... BIO . / . BIO_ctrl_pending() BIO . BIO_ctrl_get_read_request() SSL_operation() . SSL_operation() ERROR_SSL_WANT_READ . SSL_operation() . . SSL_set_bio(3), ssl(7), bio(7), BIO_should_retry(3), BIO_read_ex(3) 2000-2020 OpenSSL. . Apache 2.0 ( ""). . LICENSE . 3 . . : . 3.6.2 7 2026 BIO_S_BIO(3ssl)