ERR_GET_ERROR(3SSL)

الاسم
ERR_get_error, ERR_peek_error, ERR_peek_last_error, ERR_get_error_line, ERR_peek_error_line, ERR_peek_last_error_line, ERR_peek_error_func, ERR_peek_last_error_func, ERR_peek_error_data, ERR_peek_last_error_data, ERR_get_error_all, ERR_peek_error_all, ERR_peek_last_error_all, ERR_get_error_line_data, ERR_peek_error_line_data, ERR_peek_last_error_line_data - الحصول على رمز الخطأ والبيانات

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

 unsigned long ERR_get_error(void);
 unsigned long ERR_peek_error(void);
 unsigned long ERR_peek_last_error(void);

 unsigned long ERR_peek_error_line(const char **file, int *line);
 unsigned long ERR_peek_last_error_line(const char **file, int *line);

 unsigned long ERR_peek_error_func(const char **func);
 unsigned long ERR_peek_last_error_func(const char **func);

 unsigned long ERR_peek_error_data(const char **data, int *flags);
 unsigned long ERR_peek_last_error_data(const char **data, int *flags);

 unsigned long ERR_get_error_all(const char **file, int *line,
                                 const char **func,
                                 const char **data, int *flags);
 unsigned long ERR_peek_error_all(const char **file, int *line,
                                  const char **func,
                                  const char **data, int *flags);
 unsigned long ERR_peek_last_error_all(const char **file, int *line,
                                       const char *func,
                                       const char **data, int *flags);

الدوال التالية أصبحت مهجورة منذ OpenSSL 3.0، ويمكن إخفاؤها تماماً عن طريق تعريف OPENSSL_API_COMPAT بقيمة إصدار مناسبة، انظر openssl_user_macros(7):

 unsigned long ERR_get_error_line(const char **file, int *line);
 unsigned long ERR_get_error_line_data(const char **file, int *line,
                                       const char **data, int *flags);
 unsigned long ERR_peek_error_line_data(const char **file, int *line,
                                        const char **data, int *flags);
 unsigned long ERR_peek_last_error_line_data(const char **file, int *line,
                                             const char **data, int *flags);

الوصف
تُرجع ERR_get_error() أقدم رمز خطأ من طابور أخطاء الخيط وتُزيل المُدخلة. يُمكن استدعاء هذه الدالة مرارًا حتى لا تبقى رموز خطأ لإرجاعها.

تُرجع ERR_peek_error() أقدم رمز خطأ من طابور أخطاء الخيط دون تعديله.

تُرجع ERR_peek_last_error() أحدث رمز خطأ من طابور أخطاء الخيط دون تعديله.

انظر ERR_GET_LIB(3) للحصول على معلومات محددة إضافية مثل سبب الخطأ، و ERR_error_string(3) لرسائل خطأ قابلة للقراءة البشرية.

ERR_get_error_all() هي نفس ERR_get_error()، لكن عند النجاح تُخزّن بالإضافة إلى ذلك اسم الملف ورقم السطر والدالة حيث حدث الخطأ في *file و*line و*func، ونصًا إضافيًا وأعلامًا في *data و*flags. إذا كان أي من هذه المعاملات NULL، فلن يُغيَّر. يُشار إلى اسم الملف غير المُعيَّن بـ ""، أي سلسلة محارف فارغة. يُشار إلى رقم السطر غير المُعيَّن بـ 0. يُشار إلى اسم الدالة غير المُعيَّن بـ ""، أي سلسلة محارف فارغة.

المؤشر الذي تُعيده هذه الدوال والدوال أدناه بهذه الطريقة صالح حتى تُستبدل المُدخلة المُقابلة في طابور الأخطاء.

ERR_peek_error_line() و ERR_peek_last_error_line() هما نفس ERR_peek_error() و ERR_peek_last_error()، لكن عند النجاح تُخزّنان بالإضافة إلى ذلك اسم الملف ورقم السطر حيث حدث الخطأ في *file و*line، طالما أنهما ليسا NULL. يُشار إلى اسم الملف غير المُعيَّن بـ ""، أي سلسلة محارف فارغة. يُشار إلى رقم السطر غير المُعيَّن بـ 0.

ERR_peek_error_func() و ERR_peek_last_error_func() هما نفس ERR_peek_error() و ERR_peek_last_error()، لكن عند النجاح تُخزّنان بالإضافة إلى ذلك اسم الدالة حيث حدث الخطأ في *func، ما لم يكن NULL. يُشار إلى اسم الدالة غير المُعيَّن بـ "".

ERR_peek_error_data() و ERR_peek_last_error_data() هما نفس ERR_peek_error() و ERR_peek_last_error()، لكن عند النجاح تُخزّنان بالإضافة إلى ذلك بيانات وأعلامًا إضافية مرتبطة برمز الخطأ في *data و*flags، طالما أنهما ليسا NULL. يُشار إلى البيانات غير المُعيَّنة بـ "". في هذه الحالة، القيمة المُعطاة للعلم غير ذات صلة (وتساوي 0). *data يحتوي على سلسلة محارف إذا كان *flags&ERR_TXT_STRING صحيحًا.

ERR_peek_error_all() و ERR_peek_last_error_all() هما مزيج من كل ما سبق.

ERR_get_error_line() و ERR_get_error_line_data() و ERR_peek_error_line_data() و ERR_peek_last_error_line_data() هي متغيرات أقدم من ERR_get_error_all() و ERR_peek_error_all() و ERR_peek_last_error_all()، وقد تُعطي نتائج مُربكة. لا ينبغي استخدامها بعد الآن، ولذلك هي مُهمَلة.

يجب على التطبيق ألا يُحرر مؤشر *data (أو أي مؤشرات أخرى تُعيدها هذه الدوال) باستخدام OPENSSL_free() لأن التحرير يُدار آليًا بواسطة مكتبة الأخطاء.

القيم المُرجعة
رمز الخطأ، أو 0 إذا لم يكن هناك خطأ في الطابور.

انظر أيضًا
ERR_error_string(3), ERR_GET_LIB(3)

التاريخ
ERR_peek_error_func() و ERR_peek_last_error_func() و ERR_peek_error_data() و ERR_peek_last_error_data() و ERR_peek_error_all() و ERR_peek_last_error_all() أُضيفت في OpenSSL 3.0.

أُهملت الدوال ERR_get_error_line() و ERR_get_error_line_data() و ERR_peek_error_line_data() و ERR_peek_last_error_line_data() في OpenSSL 3.0.

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