BIO_SOCKET_WAIT(3SSL)

الاسم
BIO_socket_wait، BIO_wait، BIO_do_connect_retry - دوال مساعدة اتصال BIO

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

 #ifndef OPENSSL_NO_SOCK
 int BIO_socket_wait(int fd, int for_read, time_t max_time);
 #endif
 int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds);
 int BIO_do_connect_retry(BIO *bio, int timeout, int nap_milliseconds);

الوصف
تنتظر الدالة BIO_socket_wait() على المقبس fd للقراءة إذا كان for_read لا يساوي 0، وإلا للكتابة، على الأكثر حتى max_time. تنجح فورًا إذا كان max_time == 0 (أي لا مهلة زمنية معطاة).

تنتظر الدالة BIO_wait() على الأكثر حتى max_time على bio المعطى (القائم على المقابس عادةً)، للقراءة إذا كان من المفترض أن يقرأ bio، وإلا للكتابة. تستخدمها BIO_do_connect_retry() ويمكن استخدامها مع BIO_read(3). تنجح فورًا إذا كان max_time == 0 (أي لا مهلة زمنية معطاة). إذا لم تكن المقابس متوفرة، تدعم الاستقصاء بالنجاح بعد النوم على الأكثر nap_milliseconds المعطى لتجنب حلقة انشغال ضيقة. عبر nap_milliseconds يحدد المستدعي دقة الاستقصاء.

تتصل الدالة BIO_do_connect_retry() عبر bio المعطى. تعيد محاولة BIO_do_connect() بقدر الحاجة للوصول إلى نتيجة محددة، أي نجاح الاتصال، أو بلوغ المهلة الزمنية، أو حدوث خطأ. بالنسبة لـ BIOs غير المحظورة وربما غير القائمة على المقابس، تستقصي كل nap_milliseconds وتنام بين ذلك باستخدام BIO_wait(). إذا كان nap_milliseconds < 0، يُستخدم المبدئي 100 مللي ثانية. إذا كانت وسيطة timeout > 0، يشير هذا إلى أقصى عدد من الثواني للانتظار حتى يُؤسس الاتصال أو يحدث خطأ محدد. القيمة 0 تُمكّن الانتظار إلى أجل غير مسمى (أي لا مهلة زمنية)، بينما القيمة < 0 تعني أن BIO_do_connect() تُحاول مرة واحدة فقط. قد تستدعي الدالة، بشكل مباشر أو غير مباشر، ERR_clear_error().

القيم المُرجعة
تُرجع BIO_socket_wait() وBIO_wait() وBIO_do_connect_retry() -1 عند الخطأ، و0 عند المهلة الزمنية، و1 عند النجاح.

انظر أيضًا
BIO_do_connect(3)، BIO_read(3)

التاريخ
أُضيفت BIO_socket_wait() وBIO_wait() وBIO_do_connect_retry() في OpenSSL 3.0.

حقوق النسخ
حقوق النشر 2019-2020 لمؤلفي مشروع 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.