.\" -*- coding: UTF-8 -*- .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .de IX .. .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .if n .ds AD l .\" .\" Required to disable full justification in groff 1.23.0. .\" ======================================================================== .\" .IX Title "SSL_CTX_SET_INFO_CALLBACK 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SSL_CTX_SET_INFO_CALLBACK 3ssl "7 أبريل 2026" 3.6.2 OpenSSL .if n .ad l .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .nh .SH الاسم SSL_CTX_set_info_callback, SSL_CTX_get_info_callback, SSL_set_info_callback, SSL_get_info_callback \&\- معالجة استدعاء رد المعلومات لاتصالات SSL .SH موجز .IX Header موجز .Vb 1 \& #include \& \& void SSL_CTX_set_info_callback(SSL_CTX *ctx, \& void (*callback) (const SSL *ssl, int type, int val)); \& \& void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type, int val)); \& \& void SSL_set_info_callback(SSL *ssl, \& void (*callback) (const SSL *ssl, int type, int val)); \& \& void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type, int val)); .Ve .SH الوصف .IX Header الوصف \&\fBSSL_CTX_set_info_callback()\fP تُعيِّن دالة \fBcallback\fP، التي يمكن استخدامها للحصول على معلومات الحالة لكائنات SSL المنشأة من \fBctx\fP أثناء إعداد الاتصال واستخدامه. يُتجاوز الإعداد لـ \fBctx\fP من الإعداد لكائن SSL محدد، إذا حُدد. عندما يكون \fBcallback\fP NULL، لا تُستخدم أي دالة استدعاء رد. .PP \&\fBSSL_set_info_callback()\fP تُعيِّن دالة \fBcallback\fP، التي يمكن استخدامها للحصول على معلومات الحالة لـ \fBssl\fP أثناء إعداد الاتصال واستخدامه. عندما يكون \fBcallback\fP NULL، يُستخدم إعداد الاستدعاء الصالح حاليًا لـ \&\fBctx\fP. \fBssl\fP \fBيجب ألا\fP يكون NULL. .PP \&\fBSSL_CTX_get_info_callback()\fP تُرجع مؤشرًا إلى دالة استدعاء رد المعلومات المُعيَّنة حاليًا لـ \fBctx\fP. .PP \&\fBSSL_get_info_callback()\fP تُرجع مؤشرًا إلى دالة استدعاء رد المعلومات المُعيَّنة حاليًا لـ \fBssl\fP. .SH ملاحظات .IX Header ملاحظات عند إعداد اتصال وأثناء الاستخدام، يمكن الحصول على معلومات الحالة من محرك SSL/TLS. عند التعيين، تُستدعى دالة استدعاء رد المعلومات كلما حدث حدث مهم مثل: تغير الحالة، ظهور تنبيه، أو حدوث خطأ. .PP تُستدعى دالة الاستدعاء كـ \fBcallback(SSL *ssl, int where, int ret)\fP. تُحدد الوسيطة \fBwhere\fP معلومات حول أين (في أي سياق) دُعيت دالة الاستدعاء. إذا كان \fBret\fP هو 0، حدثت حالة خطأ. إذا عولج تنبيه، يُعيَّن SSL_CB_ALERT ويُحدد \fBret\fP معلومات التنبيه. .PP \&\fBwhere\fP هو قناع بتات مكون من البتات التالية: .IP SSL_CB_LOOP 4 .IX Item SSL_CB_LOOP دُعيت دالة الاستدعاء للإشارة إلى تغير الحالة أو حدث آخر مهم في آلة الحالة. قد يعني هذا أن دالة الاستدعاء تُستدعى أكثر من مرة لكل حالة في بعض المواقف. .IP SSL_CB_EXIT 4 .IX Item SSL_CB_EXIT دُعيت دالة الاستدعاء للإشارة إلى خروج من دالة المصافحة. سيحدث هذا بعد نهاية المصافحة، لكن قد يحدث في أوقات أخرى أيضًا مثل عند الخطأ أو عندما قد يحجب الإدخال/الإخراج ويُستخدم الوضع غير المحجب. .IP SSL_CB_READ 4 .IX Item SSL_CB_READ دُعيت دالة الاستدعاء أثناء عملية القراءة. .IP SSL_CB_WRITE 4 .IX Item SSL_CB_WRITE دُعيت دالة الاستدعاء أثناء عملية الكتابة. .IP SSL_CB_ALERT 4 .IX Item SSL_CB_ALERT استُدعي الاستدعاء بسبب إرسال أو استقبال تنبيه. .IP "SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ)" 4 .IX Item "SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ)" .PD 0 .IP "SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE)" 4 .IX Item "SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE)" .IP "SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP)" 4 .IX Item "SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP)" .IP "SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT)" 4 .IX Item "SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT)" .IP "SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP)" 4 .IX Item "SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP)" .IP "SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT)" 4 .IX Item "SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT)" .IP SSL_CB_HANDSHAKE_START 4 .IX Item SSL_CB_HANDSHAKE_START .PD استُدعي الاستدعاء لأن مصافحة جديدة بُدئت. ويحدث ذلك أيضًا عند استئناف مصافحة بعد توقف مؤقت لمعالجة البيانات المبكرة. .IP SSL_CB_HANDSHAKE_DONE 4 .IX Item SSL_CB_HANDSHAKE_DONE استُدعي الاستدعاء لأن المصافحة اكتملت. ويحدث ذلك أيضًا إذا أُوقف المصافحة مؤقتًا للسماح بتبادل البيانات المبكرة. .PP يمكن الحصول على معلومات الحالة الحالية باستخدام عائلة دوال \&\fBSSL_state_string\fP\|(3). .PP يمكن تقييم معلومات \fBret\fP باستخدام عائلة دوال \&\fBSSL_alert_type_string\fP\|(3). .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" لا توفر \&\fBSSL_set_info_callback()\fP معلومات تشخيصية. .PP \&\fBSSL_get_info_callback()\fP تُعيد الإعداد الحالي. .SH أمثلة .IX Header أمثلة دالة الاستدعاء المثالية التالية تطبع سلاسل الحالة، ومعلومات عن التنبيهات التي تُعالج، ورسائل الأخطاء إلى BIO \fBbio_err\fP. .PP .Vb 4 \& void apps_ssl_info_callback(const SSL *s, int where, int ret) \& { \& const char *str; \& int w = where & ~SSL_ST_MASK; \& \& if (w & SSL_ST_CONNECT) \& str = "SSL_connect"; \& else if (w & SSL_ST_ACCEPT) \& str = "SSL_accept"; \& else \& str = "undefined"; \& \& if (where & SSL_CB_LOOP) { \& BIO_printf(bio_err, "%s:%s\en", str, SSL_state_string_long(s)); \& } else if (where & SSL_CB_ALERT) { \& str = (where & SSL_CB_READ) ? "read" : "write"; \& BIO_printf(bio_err, "SSL3 alert %s:%s:%s\en", str, \& SSL_alert_type_string_long(ret), \& SSL_alert_desc_string_long(ret)); \& } else if (where & SSL_CB_EXIT) { \& if (ret == 0) { \& BIO_printf(bio_err, "%s:failed in %s\en", \& str, SSL_state_string_long(s)); \& } else if (ret < 0) { \& BIO_printf(bio_err, "%s:error in %s\en", \& str, SSL_state_string_long(s)); \& } \& } \& } .Ve .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBssl\fP\|(7), \fBSSL_state_string\fP\|(3), \&\fBSSL_alert_type_string\fP\|(3) .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2001\-2020 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة. .PP مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط . .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .