SSL_FREE(3ssl)

الاسم
SSL_free - تحرير بنية SSL مخصصة

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

 void SSL_free(SSL *ssl);

الوصف
SSL_free() تُنقص عدد المراجع لـ ssl، وتُزيل بنية SSL المشار إليها بواسطة ssl وتُحرر الذاكرة المخصصة إذا بلغ عدد المراجع 0. إذا كان ssl فارغًا (NULL) فلا يُفعل شيء.

ملاحظات
SSL_free() تستدعي أيضًا إجراءات التحرير للعناصر المتأثرة بشكل غير مباشر، إذا كان ذلك مناسبًا: BIO التخزين المؤقت، BIOs القراءة والكتابة، قوائم المُعمِّيات المنشأة خصيصًا لـ ssl هذا، SSL_SESSION. لا تُحرر صراحةً هذه العناصر المُحررة بشكل غير مباشر قبل أو بعد استدعاء SSL_free()، لأن محاولة تحرير الأشياء مرتين قد تؤدي إلى فشل البرنامج.

جلسة ssl لها عدد مراجع من مستخدمين: كائن SSL، الذي يُزال عدد مراجعه بواسطة SSL_free() وذاكرة التخزين المؤقت الداخلية للجلسة. إذا اعتُبرت الجلسة سيئة، لأن SSL_shutdown(3) لم يُستدعَ للاتصال وSSL_set_shutdown(3) لم يُستخدم لتعيين حالة SSL_SENT_SHUTDOWN، ستُزال الجلسة أيضًا من ذاكرة التخزين المؤقت للجلسة كما هو مطلوب بواسطة RFC2246.

عند استخدامه لتحرير كائن SSL لدفق QUIC، يُعاد تعيين أجزاء الإرسال والاستقبال الخاصة بالدفق ما لم تكن تلك الأجزاء قد اختُتمت بشكل طبيعي:

•   إذا كان للدفق جزء إرسال (بمعنى آخر، إذا كان ثنائي الاتجاه أو دفقًا أحادي الاتجاه بدأ محليًا) ولم يُختتم ذلك الجزء عبر استدعاء SSL_stream_conclude(3) أو SSL_stream_reset(3) على كائن SSL لدفق QUIC، فإن استدعاء SSL_free() يُعيد تعيين جزء الإرسال من الدفق آليًا كما لو استُدعيت SSL_stream_reset(3) مع رمز خطأ تطبيق QUIC بقيمة 0.

•   إذا كان للدفق جزء استقبال (بمعنى آخر، إذا كان ثنائي الاتجاه أو دفقًا أحادي الاتجاه بدأ عن بُعد)، ولم يختتم النظير ذلك الجزء من الدفق بشكل طبيعي بعد (مثل عبر استدعاء SSL_stream_conclude(3) من نهايته)، فإن استدعاء SSL_free() يطلب آليًا إعادة تعيين جزء الاستقبال من الدفق باستخدام إطار QUIC STOP_SENDING مع رمز خطأ تطبيق QUIC بقيمة 0. لاحظ أنه وفقًا لبروتوكول QUIC، سيؤدي هذا آليًا إلى جعل النظير يُعيد تعيين ذلك الجزء من الدفق بدوره (وهو جزء الإرسال الخاص به).

يحتفظ كائن SSL لدفق QUIC بمرجع لكائن SSL لاتصال QUIC داخليًا، لذلك يمكن تحرير كائن SSL لدفق QUIC وكائن SSL لاتصال QUIC الأصلي بأي ترتيب.

القيم المُرجعة
SSL_free() لا توفر معلومات تشخيصية.

SSL_new(3), SSL_clear(3), SSL_shutdown(3), SSL_set_shutdown(3), ssl(7)

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