SSL_PENDING(3SSL)

الاسم
SSL_pending, SSL_has_pending - التحقق من البايتات القابلة للقراءة المخزنة مؤقتًا في كائن SSL

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

 int SSL_pending(const SSL *ssl);
 int SSL_has_pending(const SSL *s);

الوصف
تُستقبل البيانات في كتل كاملة تُعرف بالسجلات من النظير. يُعالَج السجل الكامل (مثل فك التعمية) دفعة واحدة ويُخزَّن مؤقتًا بواسطة OpenSSL حتى يُقرأ بواسطة التطبيق عبر استدعاء SSL_read_ex(3) أو SSL_read(3).

تُرجع SSL_pending() عدد البايتات التي عولجت وخُزنت مؤقتًا والمتاحة داخل ssl للقراءة الفورية.

إذا وُضعت علامة read_ahead لكائن SSL (انظر SSL_CTX_set_read_ahead(3))، فقد قُرئت بايتات بروتوكول إضافية (وراء السجل الحالي) تحتوي على سجلات TLS/SSL إضافية. ينطبق هذا أيضًا على DTLS وخط الأنابيب (انظر SSL_CTX_set_split_send_fragment(3)). ستُخزَّن هذه البايتات الإضافية مؤقتًا بواسطة OpenSSL لكنها ستبقى غير معالجة حتى الحاجة إليها. نظرًا لأن هذه البايتات لا تزال في حالة غير معالجة، ستتجاهلها SSL_pending(). لذلك، من الممكن ألا تكون بايتات إضافية قابلة للقراءة من BIO الأساسي (لأن OpenSSL قرأها بالفعل) وأن تُرجع SSL_pending() 0، على الرغم من توفر بايتات بيانات تطبيق قابلة للقراءة (لأن البيانات في سجلات مخزنة مؤقتًا غير معالجة).

تُرجع SSL_has_pending() 1 إذا كان لدى s بيانات مخزنة مؤقتًا (سواء معالجة أو غير معالجة) و0 بخلاف ذلك. لاحظ أنه من الممكن أن تُرجع SSL_has_pending() 1، ثم يُرجع استدعاء لاحق لـ SSL_read_ex() أو SSL_read() لا بيانات لأن البيانات المخزنة مؤقتًا غير المعالجة عند معالجتها لم تُنتج بيانات تطبيق (على سبيل المثال يمكن أن يحدث هذا أثناء إعادة التفاوض). من الممكن أيضًا في هذا السيناريو أن تستمر SSL_has_pending() في إرجاع 1 حتى بعد استدعاء SSL_read_ex() أو SSL_read() لأن البيانات المخزنة مؤقتًا وغير المعالجة ليست قابلة للمعالجة بعد (مثلًا لأن OpenSSL استقبل فقط سجلًا جزئيًا حتى الآن).

القيم المُرجعة
تُرجع SSL_pending() عدد بايتات بيانات التطبيق المخزنة مؤقتًا والمعالجة المعلقة والمتاحة للقراءة الفورية. تُرجع SSL_has_pending() 1 إذا كانت هناك بيانات سجل مخزنة مؤقتًا في كائن SSL و0 بخلاف ذلك.

انظر أيضًا
SSL_read_ex(3), SSL_read(3), SSL_CTX_set_read_ahead(3), SSL_CTX_set_split_send_fragment(3), ssl(7)

التاريخ
أُضيفت دالة SSL_has_pending() في OpenSSL 1.1.0.

حقوق النسخ
حقوق النشر 2000-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.