.\" -*- 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 "BIO_S_ACCEPT 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH BIO_S_ACCEPT 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 الاسم BIO_s_accept, BIO_set_accept_name, BIO_set_accept_port, BIO_get_accept_name, BIO_get_accept_port, BIO_new_accept, BIO_set_nbio_accept, BIO_set_tfo_accept, BIO_set_accept_bios, BIO_get_peer_name, BIO_get_peer_port, BIO_get_accept_ip_family, BIO_set_accept_ip_family, BIO_set_bind_mode, BIO_get_bind_mode, BIO_do_accept \- BIO القبول .SH موجز .IX Header موجز .Vb 1 \& #include \& \& const BIO_METHOD *BIO_s_accept(void); \& \& long BIO_set_accept_name(BIO *b, char *name); \& char *BIO_get_accept_name(BIO *b); \& \& long BIO_set_accept_port(BIO *b, char *port); \& char *BIO_get_accept_port(BIO *b); \& \& BIO *BIO_new_accept(char *host_port); \& \& long BIO_set_nbio_accept(BIO *b, int n); \& long BIO_set_tfo_accept(BIO *b, int n); \& long BIO_set_accept_bios(BIO *b, char *bio); \& \& char *BIO_get_peer_name(BIO *b); \& char *BIO_get_peer_port(BIO *b); \& long BIO_get_accept_ip_family(BIO *b); \& long BIO_set_accept_ip_family(BIO *b, long family); \& \& long BIO_set_bind_mode(BIO *b, long mode); \& long BIO_get_bind_mode(BIO *b); \& \& int BIO_do_accept(BIO *b); .Ve .SH الوصف .IX Header الوصف \&\fBBIO_s_accept()\fP تُرجع أسلوب BIO القبول. هذه غلاف حول إجراءات قبول مقبس TCP/IP للمنصة. .PP باستخدام BIOs القبول، يمكن قبول اتصالات TCP/IP ونقل البيانات باستخدام إجراءات BIO فقط. بهذه الطريقة، تُخفى أي عمليات خاصة بالمنصة بواسطة تجريد BIO. .PP عمليات القراءة والكتابة على BIO القبول ستُجري الإدخال/الإخراج على الاتصال الأساسي. إذا لم يُؤسس اتصال ووُصل المنفذ (انظر أدناه) بشكل صحيح، فإن BIO ينتظر اتصالاً وارداً. .PP BIOs القبول تدعم \fBBIO_puts()\fP ولكن لا تدعم \fBBIO_gets()\fP. .PP إذا وُضع علم الإغلاق على BIO القبول، فإن أي اتصال نشط على تلك السلسلة يُغلق ويُغلق المقبس عند تحرير BIO. .PP استدعاء \fBBIO_reset()\fP على BIO القبول سيغلق أي اتصال نشط ويعيد تعيين BIO إلى حالة ينتظر فيها اتصالاً وارداً آخر. .PP \&يمكن استدعاء \fBBIO_get_fd()\fP و \fBBIO_set_fd()\fP لاسترجاع أو تعيين مقبس القبول. انظر \fBBIO_s_fd\fP\|(3) .PP \&\fBBIO_set_accept_name()\fP تستخدم السلسلة \fBname\fP لتعيين اسم القبول. يُعرض الاسم كسلسلة بالصيغة "host:port"، حيث "host" هي الواجهة المستخدمة و"port" هو المنفذ. يمكن أن يكون المضيف "*" أو فارغاً، وهو ما يُفسر على أنه أي واجهة. إذا كان المضيف عنوان IPv6، فيجب وضعه بين قوسين، مثلاً "[::1]:https". "port" له نفس الصيغة كالمنفذ المحدد في \fBBIO_set_conn_port()\fP لـ BIOs الاتصال، أي يمكن أن يكون سلسلة منفذ رقمية أو سلسلة للبحث باستخدام \fBgetservbyname()\fP وجدول سلاسل. .PP \&\fBBIO_set_accept_port()\fP تستخدم السلسلة \fBport\fP لتعيين منفذ القبول لـ BIO \fIb\fP. "port" له نفس الصيغة كالمنفذ المحدد في \&\fBBIO_set_conn_port()\fP لـ BIOs الاتصال، أي يمكن أن يكون سلسلة منفذ رقمية أو سلسلة للبحث باستخدام \fBgetservbyname()\fP وجدول سلاسل. إذا كان المنفذ المعطى هو \f(CW0\fP، فإن منفذاً عشوائياً متاحاً يُختار. يمكن الاستعلام عنه باستخدام \fBBIO_sock_info()\fP و \fBBIO_ADDR_service_string\fP\|(3). .PP \&\fBBIO_new_accept()\fP تدمج \fBBIO_new()\fP و \fBBIO_set_accept_name()\fP في استدعاء واحد: أي أنها تنشئ BIO قبول جديد بالمنفذ \&\fBhost_port\fP. .PP \&\fBBIO_set_nbio_accept()\fP تعين مقبس القبول إلى وضع الحظر (المبدئي) إذا كان \fBn\fP هو 0 أو وضع عدم الحظر إذا كان \fBn\fP هو 1. .PP \&\fBBIO_set_tfo_accept()\fP تُفعّل TCP Fast Open على مقبس القبول إذا كان \fBn\fP هو 1 أو تُعطّل TCP Fast Open إذا كان \fBn\fP هو 0 (المبدئي). تعيين القيمة إلى 1 يعادل تعيين \fBBIO_SOCK_TFO\fP في \fBBIO_set_bind_mode()\fP. .PP \&\fBBIO_set_accept_bios()\fP يمكن استخدامها لتعيين سلسلة من BIOs التي ستُنسخ وتُضاف إلى بداية السلسلة عند استلام اتصال وارد. هذا مفيد إذا، مثلاً، كان BIO تخزين مؤقت أو SSL مطلوباً لكل اتصال. يجب ألا تُحرر سلسلة BIOs بعد هذا الاستدعاء، ستُحرر آلياً عند تحرير BIO القبول. .PP \&\fBBIO_get_accept_ip_family()\fP تُرجع عائلة IP المقبولة بواسطة BIO \fIb\fP، والتي قد تكون \fBBIO_FAMILY_IPV4\fP أو \fBBIO_FAMILY_IPV6\fP أو \fBBIO_FAMILY_IPANY\fP. .PP \&\fBBIO_set_accept_ip_family()\fP يضبط عائلة IP \fIfamily\fP المقبولة من BIO \fIb\fP. المبدئي هو \fBBIO_FAMILY_IPANY\fP. .PP \&\fBBIO_set_bind_mode()\fP و \fBBIO_get_bind_mode()\fP يضبطان ويسترجعان وضع الربط الحالي. إذا ضُبط \fBBIO_BIND_NORMAL\fP (المبدئي) فلا يمكن ربط مقبس آخر بنفس المنفذ. إذا ضُبط \&\fBBIO_BIND_REUSEADDR\fP فيمكن للمقابس الأخرى الربط بنفس المنفذ. إذا ضُبط \fBBIO_BIND_REUSEADDR_IF_UNUSED\fP فيُحاول أولاً استخدام BIO_BIN_NORMAL، وإذا فشل ذلك والمنفذ غير مستخدم، فتُجرى محاولة ثانية باستخدام \fBBIO_BIND_REUSEADDR\fP. إذا ضُبط \fBBIO_SOCK_TFO\fP، فسيُهيأ المقبس لقبول اتصالات TCP Fast Open. .PP \&\fBBIO_do_accept()\fP يخدم دالتين. عند استدعائه أولاً، بعد إعداد BIO القبول، سيحاول إنشاء مقبس القبول وربط عنوان به. الاستدعاءات الثانية واللاحقة لـ \fBBIO_do_accept()\fP ستنتظر اتصالاً وارداً، أو تطلب إعادة محاولة في وضع غير محظور. .SH ملاحظات .IX Header ملاحظات عندما يكون BIO القبول في نهاية سلسلة، سينتظر اتصالاً وارداً قبل معالجة استدعاءات الإدخال/الإخراج. عندما لا يكون BIO القبول في نهاية سلسلة، يمرر استدعاءات الإدخال/الإخراج إلى BIO التالي في السلسلة. .PP عند إنشاء اتصال، يُنشأ BIO مقبس جديد للاتصال ويُلحق بالسلسلة. أي أن السلسلة أصبحت الآن accept\->socket. هذا يعني فعلياً أن محاولة الإدخال/الإخراج على مقبس قبول أولي ستنتظر اتصالاً وارداً ثم تؤدي الإدخال/الإخراج عليه. .PP إذا ضُبطت أي BIOs إضافية باستخدام \fBBIO_set_accept_bios()\fP فتُوضع بين المقبس وBIO القبول، أي أن السلسلة ستكون accept\->otherbios\->socket. .PP إذا أراد خادم معالجة اتصالات متعددة (كما هو الحال عادة)، فيجب جعل BIO القبول متاحاً لاتصالات واردة إضافية. يمكن فعل ذلك بانتظار اتصال ثم استدعاء: .PP .Vb 1 \& connection = BIO_pop(accept); .Ve .PP بعد هذا الاستدعاء، سيحتوي \fBconnection\fP على BIO للاتصال المُنشأ حديثاً وسيصبح \fBaccept\fP الآن BIO واحداً مرة أخرى يمكن استخدامه لانتظار اتصالات واردة إضافية. إذا لم تُقبل اتصالات إضافية، يمكن تحرير \fBaccept\fP باستخدام \fBBIO_free()\fP. .PP إذا عولج اتصال واحد فقط، فمن الممكن أداء الإدخال/الإخراج باستخدام BIO القبول نفسه. هذا غير مرغوب فيه غالباً لأن BIO القبول سيظل يقبل اتصالات واردة إضافية. يمكن حل هذا باستخدام \fBBIO_pop()\fP (انظر أعلاه) وتحرير BIO القبول بعد الاتصال الأولي. .PP إذا كان مقبس القبول الأساسي غير محظور واستُدعي \fBBIO_do_accept()\fP لانتظار اتصال وارد، فمن الممكن لـ \&\fBBIO_should_io_special()\fP مع السبب BIO_RR_ACCEPT. إذا حدث هذا، فهو مؤشر على أن محاولة القبول ستحظر: يجب على التطبيق اتخاذ إجراء مناسب لانتظار حتى يقبل المقبس الأساسي اتصالاً ويعيد محاولة الاستدعاء. .PP \&\fBBIO_set_accept_name()\fP, \fBBIO_get_accept_name()\fP, \fBBIO_set_accept_port()\fP, \&\fBBIO_get_accept_port()\fP, \fBBIO_set_nbio_accept()\fP, \fBBIO_set_accept_bios()\fP, \&\fBBIO_get_peer_name()\fP, \fBBIO_get_peer_port()\fP, \&\fBBIO_get_accept_ip_family()\fP, \fBBIO_set_accept_ip_family()\fP, \&\fBBIO_set_bind_mode()\fP, \fBBIO_get_bind_mode()\fP و \fBBIO_do_accept()\fP هي وحدات ماكرو. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&\fBBIO_do_accept()\fP, \&\fBBIO_set_accept_name()\fP, \fBBIO_set_accept_port()\fP, \fBBIO_set_nbio_accept()\fP, \&\fBBIO_set_accept_bios()\fP, \fBBIO_set_accept_ip_family()\fP, و \fBBIO_set_bind_mode()\fP تُرجع 1 للنجاح و <= 0 للفشل. .PP \&\fBBIO_get_accept_name()\fP تُرجع اسم القبول أو NULL عند الخطأ. \&\fBBIO_get_peer_name()\fP تُرجع اسم النظير أو NULL عند الخطأ. .PP \&\fBBIO_get_accept_port()\fP تُرجع منفذ القبول كسلسلة أو NULL عند الخطأ. \&\fBBIO_get_peer_port()\fP تُرجع منفذ النظير كسلسلة أو NULL عند الخطأ. \&\fBBIO_get_accept_ip_family()\fP تُرجع عائلة IP أو <= 0 عند الخطأ. .PP \&\fBBIO_get_bind_mode()\fP تُرجع مجموعة أعلام \fBBIO_BIND\fP، أو <= 0 عند الفشل. .PP \&\fBBIO_new_accept()\fP تُرجع BIO أو NULL عند الخطأ. .SH أمثلة .IX Header أمثلة هذا المثال يقبل اتصالين على المنفذ 4444، ويرسل رسائل عبر كل منهما، ويغلق كليهما أخيراً. .PP .Vb 1 \& BIO *abio, *cbio, *cbio2; \& \& /* الاستدعاء الأول لـ BIO_do_accept() يضبط BIO القبول */ \& abio = BIO_new_accept("4444"); \& if (BIO_do_accept(abio) <= 0) { \& fprintf(stderr, "خطأ في إعداد القبول\en"); \& ERR_print_errors_fp(stderr); \& exit(1); \& } \& \& /* انتظار اتصال وارد */ \& if (BIO_do_accept(abio) <= 0) { \& fprintf(stderr, "خطأ في قبول الاتصال\en"); \& ERR_print_errors_fp(stderr); \& exit(1); \& } \& fprintf(stderr, "تم إنشاء الاتصال 1\en"); \& \& /* استرجاع BIO للاتصال */ \& cbio = BIO_pop(abio); \& BIO_puts(cbio, "الاتصال 1: إرسال بيانات على الاتصال الأولي\en"); \& fprintf(stderr, "أُرسلت البيانات على الاتصال 1\en"); \& \& /* انتظار اتصال آخر */ \& if (BIO_do_accept(abio) <= 0) { \& fprintf(stderr, "خطأ في قبول الاتصال\en"); \& ERR_print_errors_fp(stderr); \& exit(1); \& } \& fprintf(stderr, "تم إنشاء الاتصال 2\en"); \& \& /* إغلاق BIO القبول لرفض اتصالات إضافية */ \& cbio2 = BIO_pop(abio); \& BIO_free(abio); \& BIO_puts(cbio2, "الاتصال 2: إرسال بيانات على الثاني\en"); \& fprintf(stderr, "أُرسلت البيانات على الاتصال 2\en"); \& \& BIO_puts(cbio, "الاتصال 1: تم إنشاء الاتصال الثاني\en"); \& \& /* إغلاق الاتصالين المُنشأين */ \& BIO_free(cbio); \& BIO_free(cbio2); .Ve .SH التاريخ .IX Header التاريخ \&\fBBIO_set_tfo_accept()\fP أُضيف في OpenSSL 3.2. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2000\-2022 لمؤلفي مشروع 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 .