3 * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
4 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
10 #include <ac/stdlib.h>
11 #include <ac/string.h>
17 * LDAP Who Am I? (Extended) Operation <draft-zeilenga-ldap-authzid-xx.txt>
20 int ldap_parse_whoami(
23 struct berval **authzid )
29 assert( LDAP_VALID( ld ) );
30 assert( res != NULL );
31 assert( authzid != NULL );
35 rc = ldap_parse_extended_result( ld, res, &retoid, authzid, 0 );
37 if( rc != LDAP_SUCCESS ) {
38 ldap_perror( ld, "ldap_parse_whoami" );
42 ber_memfree( retoid );
47 ldap_whoami( LDAP *ld,
55 assert( LDAP_VALID( ld ) );
56 assert( msgidp != NULL );
58 rc = ldap_extended_operation( ld, LDAP_EXOP_X_WHO_AM_I,
59 NULL, sctrls, cctrls, msgidp );
67 struct berval **authzid,
69 LDAPControl **cctrls )
75 rc = ldap_whoami( ld, sctrls, cctrls, &msgid );
76 if ( rc != LDAP_SUCCESS ) return rc;
78 if ( ldap_result( ld, msgid, 1, (struct timeval *) NULL, &res ) == -1 ) {
82 rc = ldap_parse_whoami( ld, res, authzid );
83 if( rc != LDAP_SUCCESS ) {
88 return( ldap_result2error( ld, res, 1 ) );