SSL_SET_BIO(3ssl) OpenSSL SSL_SET_BIO(3ssl) NUME SSL_set_bio, SSL_set0_rbio, SSL_set0_wbio - conecteaza obiectul SSL cu un BIO SINOPSIS #include void SSL_set_bio(SSL *ssl, BIO *rbio, BIO *wbio); void SSL_set0_rbio(SSL *s, BIO *rbio); void SSL_set0_wbio(SSL *s, BIO *wbio); DESCRIERE SSL_set0_rbio() conecteaza BIO rbio pentru operaiile de citire ale obiectului ssl. Motorul SSL motenete comportamentul rbio. Daca BIO este neblocant, atunci i obiectul ssl va avea un comportament neblocant. Aceasta funcie transfera proprietatea rbio catre ssl. Acesta va fi eliberat automat folosind BIO_free_all(3) cand ssl este eliberat. La apelarea acestei funcii, orice rbio existent care a fost definit anterior va fi, de asemenea, eliberat printr-un apel la BIO_free_all(3) (aceasta include cazul in care rbio este definit la aceeai valoare ca cea anteriora). Daca se utilizeaza un BIO personalizat, rbio trebuie sa implementeze fie BIO_meth_set_read_ex(3), fie BIO_meth_set_read(3). SSL_set0_wbio() funcioneaza la fel ca SSL_set0_rbio(), cu excepia faptului ca conecteaza BIO wbio pentru operaiile de scriere ale obiectului ssl. Reinei ca, daca rbio i wbio sunt identice, atunci SSL_set0_rbio() i SSL_set0_wbio() preiau fiecare proprietatea asupra unei referine. Prin urmare, poate fi necesar sa cretei numarul de referine disponibile utilizand BIO_up_ref(3) inainte de a apela funciile set0. Daca se utilizeaza un BIO personalizat, wbio trebuie sa implementeze BIO_meth_set_write_ex(3) sau BIO_meth_set_write(3). In plus, trebuie sa implementeze BIO_flush(3) utilizand BIO_CTRL_FLUSH i BIO_meth_set_ctrl(3). Daca golirea nu este necesara cu wbio, BIO_flush(3) ar trebui sa returneze unu i sa nu faca nimic. SSL_set_bio() este similara cu SSL_set0_rbio() i SSL_set0_wbio(), cu excepia faptului ca conecteaza simultan atat rbio, cat i wbio i transfera proprietatea asupra rbio i wbio catre ssl in conformitate cu urmatorul set de reguli: o Daca nici rbio nici wbio nu s-au modificat faa de valorile anterioare, atunci nu se face nimic. o Daca parametrii rbio i wbio sunt diferii i ambii sunt diferii de valorile stabilite anterior, atunci se consuma o referina pentru rbio i o referina pentru wbio. o Daca parametrii rbio i wbio sunt identici, iar rbio nu este identic cu valoarea stabilita anterior, atunci se consuma o referina. o Daca parametrii rbio i wbio sunt identici i rbio este identic cu valoarea stabilita anterior, atunci nu se consuma referine suplimentare. o Daca parametrii rbio i wbio sunt diferii i rbio este identic cu valoarea stabilita anterior, atunci se consuma o referina pentru wbio i nu se consuma nicio referina pentru rbio. o Daca parametrii rbio i wbio sunt diferii, iar wbio este identic cu valoarea stabilita anterior, iar valorile vechi ale rbio i wbio erau identice intre ele, atunci se consuma o referina pentru rbio i nu se consuma nicio referina pentru wbio. o Daca parametrii rbio i wbio sunt diferii, iar wbio este identic cu valoarea stabilita anterior, iar valorile vechi ale rbio i wbio erau diferite intre ele, atunci se consuma o referina pentru rbio i o referina pentru wbio. Datorita acestei complexitai, aceasta funcie trebuie evitata; utilizai in schimb SSL_set0_rbio() i SSL_set0_wbio(). In cazul in care un nou BIO este definit pe un obiect SSL al conexiunii QUIC, modul de blocare va fi dezactivat pe acel obiect SSL daca BIO nu poate gestiona modul de blocare. Daca ulterior este definit un alt BIO pe obiectul SSL care poate gestiona modul de blocare, modul de blocare nu va fi reactivat automat. Pentru mai multe informaii, consultai SSL_set_blocking_mode(3). VALORI RETURNATE SSL_set_bio(), SSL_set0_rbio() i SSL_set0_wbio() nu pot eua. CONSULTAI I SSL_get_rbio(3), SSL_connect(3), SSL_accept(3), SSL_shutdown(3), ssl(7), bio(7) ISTORIC SSL_set0_rbio() i SSL_set0_wbio() au fost adaugate in OpenSSL 1.1.0. DREPTURI DE AUTOR Drepturi de autor 2000-2023 The OpenSSL Project Authors. Toate drepturile rezervate. Liceniat sub Licena Apache 2.0 (,,License"). Nu avei voie sa utilizai acest fiier decat in conformitate cu licena. Putei obine o copie din fiierul LICENSE din distribuia sursei sau de la . TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . 3.6.2 7 aprilie 2026 SSL_SET_BIO(3ssl)