SSL_SET_BIO(3SSL)

الاسم
SSL_set_bio, SSL_set0_rbio, SSL_set0_wbio - وصل كائن SSL مع BIO

موجز
 #include <openssl/ssl.h>

 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);

الوصف
SSL_set0_rbio() يصل BIO rbio لعمليات القراءة لكائن ssl. يرث محرك SSL سلوك rbio. إذا كان BIO غير محظور، فسيكون لكائن ssl أيضًا سلوك غير محظور. تنقل هذه الدالة ملكية rbio إلى ssl. ستُحرر آليًا باستخدام BIO_free_all(3) عند تحرير ssl. عند استدعاء هذه الدالة، سيُحرر أي rbio موجود سابقًا عبر استدعاء BIO_free_all(3) (يشمل ذلك الحالة التي يُضبط فيها rbio على نفس القيمة السابقة).

إذا استُخدم BIO مخصص، يجب على rbio تنفيذ إما BIO_meth_set_read_ex(3) أو BIO_meth_set_read(3).

SSL_set0_wbio() يعمل بنفس طريقة SSL_set0_rbio() باستثناء أنه يصل BIO wbio لعمليات الكتابة لكائن ssl. لاحظ أنه إذا كان rbio و wbio متطابقين، فإن SSL_set0_rbio() و SSL_set0_wbio() تأخذ كل منهما ملكية مرجع واحد. لذلك، قد يكون من الضروري زيادة عدد المراجع المتاحة باستخدام BIO_up_ref(3) قبل استدعاء دوال set0.

إذا استُخدم BIO مخصص، يجب على wbio تنفيذ BIO_meth_set_write_ex(3) أو BIO_meth_set_write(3). بالإضافة إلى ذلك، يجب تنفيذ BIO_flush(3) باستخدام BIO_CTRL_FLUSH و BIO_meth_set_ctrl(3). إذا لم يكن التنظيف ضروريًا مع wbio، يجب على BIO_flush(3) إرجاع واحد وعدم فعل شيء.

SSL_set_bio() مشابه لـ SSL_set0_rbio() و SSL_set0_wbio() باستثناء أنه يصل كلاً من rbio و wbio في نفس الوقت، وينقل ملكية rbio و wbio إلى ssl وفقًا لمجموعة القواعد التالية:

•   إذا لم يتغير أي من rbio أو wbio عن قيمهما السابقة، فلا يُفعل شيء.

•   إذا كان المعاملان rbio و wbio مختلفين وكلاهما مختلف عن قيمهما المضبوطة سابقًا، فسيُستهلك مرجع واحد لـ rbio ومرجع واحد لـ wbio.

•   إذا كان المعاملان rbio و wbio متطابقين و rbio ليس نفس القيمة المضبوطة سابقًا، فسيُستهلك مرجع واحد.

•   إذا كان المعاملان rbio و wbio متطابقين و rbio هو نفس القيمة المضبوطة سابقًا، فلا تُستهلك مراجع إضافية.

•   إذا كان المعاملان rbio و wbio مختلفين و rbio هو نفس القيمة المضبوطة سابقًا، فسيُستهلك مرجع واحد لـ wbio ولا تُستهلك مراجع لـ rbio.

•   إذا كان المعاملان rbio و wbio مختلفين و wbio هو نفس القيمة المضبوطة سابقًا وكانت قيم rbio و wbio القديمة متطابقة مع بعضها، فسيُستهلك مرجع واحد لـ rbio ولا تُستهلك مراجع لـ wbio.

•   إذا كان المعاملان rbio و wbio مختلفين و wbio هو نفس القيمة المضبوطة سابقًا وكانت قيم rbio و wbio القديمة مختلفة عن بعضها، فسيُستهلك مرجع واحد لـ rbio ومرجع واحد لـ wbio.

بسبب هذا التعقيد، يجب تجنب هذه الدالة؛ استخدم SSL_set0_rbio() و SSL_set0_wbio() بدلاً من ذلك.

عند ضبط BIO جديد على كائن SSL لاتصال QUIC، سيُعطّل الوضع المحظور على كائن SSL إذا لم يستطع BIO دعم الوضع المحظور. إذا ضُبط BIO آخر لاحقًا على كائن SSL يمكنه دعم الوضع المحظور، فلن يُعاد تمكين الوضع المحظور آليًا. لمزيد من المعلومات، انظر SSL_set_blocking_mode(3).

القيم المُرجعة
SSL_set_bio() و SSL_set0_rbio() و SSL_set0_wbio() لا يمكنها الفشل.

انظر أيضًا
SSL_get_rbio(3), SSL_connect(3), SSL_accept(3), SSL_shutdown(3), ssl(7), bio(7)

التاريخ
أُضيفت SSL_set0_rbio() و SSL_set0_wbio() في OpenSSL 1.1.0.

حقوق النسخ
حقوق النشر 2000-2023 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة.

مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط <https://www.openssl.org/source/license.html>.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.