Hallo,

Ich möchte LDAP Daten für eine Anwendung aus unserem DC Server auslesen. Die Verbindung funkitioniert und auch das Auslesen ALLER Filter|Attribute scheint zu funktionieren.
Wenn ich aber lediglich ein paar wenige Attribute auslesen (AttrVal und AttrPtr) möchte erhalte ich keine Ergebnisse.
Was ich im Internet recherchiert habe ist, dass die Attribute mit X'00' abgeschlossen sein müssen und dass das finale Attribut mit *NULL das Ende der Daten kennzeichnet! Ob das auch für die API auf der IBM i zutrifft weiss ich leider nicht!

Hier einmal meine Beispiele:
AttrVal(1) = 'manager' + x'00';
AttrVal(2) = 'employeeID' + x'00';
AttrVal(3) = 'employeeNbr' + x'00';

Dazu die Pointer:
AttrPtr(1) = %addr(AttrVal(1));
AttrPtr(2) = %addr(AttrVal(2));
AttrPtr(3) = %addr(AttrVal(3));

Da das AttrPtr Array per default mit *NULL initialisiert wird, habe ich mir die Initialisierung des 4. Eintrages mit *NULL erspart!

Der Auftruf von LDAP_SEARCH_ST sieht dann wie folgt aus:
attrsonly = 0;
Als Filter fungiert der Benutzername:
filter = '(sn=Benutzername);

rc = ldap_search_st(ld :
%trimr(my_base_dn) :
ldap_scope_base :

Filter :
%addr(attrPtr) :
attrsonly :
%addr(timeout) :

result);

Meine Frage an euch Spezialisten ist nun was ich falsch mache. Ich bin für jede Hilfe dankbar die ich zum Thema erhalten kann.
Wenn jemand auch einen Link zum Thema Pointer und API hat wäre ich zusätzlich dankbar.

Vielen Dank im Voraus
Hermann