Question

Nous utilisons une bibliothèque client OpenLDAP pour établir une connexion avec un serveur LDAP. Le problème est que s'il n'y a pas d'activité pendant un certain temps, le serveur (ou le pare-feu au milieu) abandonne la connexion TCP.

Notre implémentation actuelle de " keep-alive " cherche-t-il de temps en temps une baseDN - de meilleures idées?

Était-ce utile?

La solution 3

La seule alternative semble être la reconnexion:

ldap_set_option( ld, LDAP_OPT_RECONNECT, LDAP_OPT_ON );

Autres conseils

L'abandon de LDAP pourrait fonctionner:

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

Il y a eu une discussion à ce sujet sur la liste de diffusion OpenLDAP:

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

En bref: La demande d'abandon envoie un message au serveur, mais le serveur n'envoie pas de réponse au client pour les demandes d'abandon. Zéro n'est pas un MSGID valide pour les demandes LDAP. Étant donné que le zéro est un MSGID non valide et que le serveur ne répond pas aux demandes d'abandon, le serveur ignorera en théorie une demande d'abandon pour msgid zéro. Cela fournirait une activité sur le socket TCP, empêchant le pare-feu de mettre fin à la connexion.

Voir:

  • RFC 4511, Section 4.11: Abandon Operation
  • RFC 4511, Section 4.1.1.1: MessageID

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

LDAP_OPT_RECONNECT n'est pas disponible dans OpenLdap

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top