سؤال

نحن نستخدم مكتبة عميل OpenLDAP للاتصال بخادم LDAP.تكمن المشكلة في أنه إذا لم يكن هناك أي نشاط لبعض الوقت، فسيقوم الخادم (أو جدار الحماية في المنتصف) بقطع اتصال TCP.

إن تطبيقنا الحالي لـ "البقاء على قيد الحياة" يبحث فقط عن baseDN من وقت لآخر - هل هناك أي أفكار أفضل؟

هل كانت مفيدة؟

المحلول 3

والبديل الوحيد ويبدو أن إعادة الاتصال:

ldap_set_option( ld, LDAP_OPT_RECONNECT, LDAP_OPT_ON );

نصائح أخرى

قد يعمل التخلي عن LDAP:

if (ldap_abandon(ld, 0, sctrls, cctrls) != LDAP_SUCCESS)
    {
       /* handle ldap error */
    };

كان هناك نقاش حول هذا الأمر في القائمة البريدية لـ OpenLDAP:

http://www.openldap.org/lists/openldap-devel/200905/msg00008.html

باختصار:يرسل طلب التخلي رسالة إلى الخادم، ولكن الخادم لا يرسل استجابة إلى العميل لطلبات التخلي.الصفر ليس MSGID صالحًا لطلبات LDAP.نظرًا لأن الصفر هو MSGID غير صالح ولا يستجيب الخادم لطلبات التخلي، فمن الناحية النظرية سيتجاهل الخادم طلب التخلي عن msgid صفر.وهذا من شأنه أن يوفر نشاطًا على مقبس TCP، مما يمنع جدار الحماية من قطع الاتصال.

يرى:

  • RFC 4511، القسم 4.11:التخلي عن العملية
  • RFC 4511، القسم 4.1.1.1:معرف الرسالة

http://tools.ietf.org/html/rfc4511

وLDAP_OPT_RECONNECT غير متوفرة في ب OpenLDAP

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top