Back to index

lightning-sunbird  0.9+nobinonly
Functions
getentry.c File Reference
#include "ldap-int.h"

Go to the source code of this file.

Functions

LDAPMessage *LDAP_CALL ldap_first_entry (LDAP *ld, LDAPMessage *chain)
LDAPMessage *LDAP_CALL ldap_next_entry (LDAP *ld, LDAPMessage *entry)
int LDAP_CALL ldap_count_entries (LDAP *ld, LDAPMessage *chain)
int LDAP_CALL ldap_get_entry_controls (LDAP *ld, LDAPMessage *entry, LDAPControl ***serverctrlsp)

Function Documentation

int LDAP_CALL ldap_count_entries ( LDAP *  ld,
LDAPMessage *  chain 
)

Definition at line 89 of file getentry.c.

{
       int    i;

       if ( !NSLDAPI_VALID_LDAP_POINTER( ld )) {
              return( -1 );
       }

       for ( i = 0; chain != NULL; chain = chain->lm_chain ) {
              if ( chain->lm_msgtype == LDAP_RES_SEARCH_ENTRY ) {
                     ++i;
              }
       }

       return( i );
}

Here is the caller graph for this function:

LDAPMessage* LDAP_CALL ldap_first_entry ( LDAP *  ld,
LDAPMessage *  chain 
)

Definition at line 55 of file getentry.c.

{
       if ( !NSLDAPI_VALID_LDAP_POINTER( ld ) || chain == NULLMSG ) {
              return( NULLMSG );
       }

       if ( chain->lm_msgtype == LDAP_RES_SEARCH_ENTRY ) {
              return( chain );
       }

       return( ldap_next_entry( ld, chain ));
}

Here is the call graph for this function:

Here is the caller graph for this function:

int LDAP_CALL ldap_get_entry_controls ( LDAP *  ld,
LDAPMessage *  entry,
LDAPControl ***  serverctrlsp 
)

Definition at line 109 of file getentry.c.

{
       int           rc;
       BerElement    tmpber;

       LDAPDebug( LDAP_DEBUG_TRACE, "ldap_get_entry_controls\n", 0, 0, 0 );

       if ( !NSLDAPI_VALID_LDAP_POINTER( ld )) {
              return( LDAP_PARAM_ERROR );
       }

       if ( !NSLDAPI_VALID_LDAPMESSAGE_ENTRY_POINTER( entry )
           || serverctrlsp == NULL ) {
              rc = LDAP_PARAM_ERROR;
              goto report_error_and_return;
       }

       *serverctrlsp = NULL;
       tmpber = *entry->lm_ber;    /* struct copy */

       /* skip past dn and entire attribute/value list */ 
       if ( ber_scanf( &tmpber, "{xx" ) == LBER_ERROR ) {
              rc = LDAP_DECODING_ERROR;
              goto report_error_and_return;
       }

       rc = nsldapi_get_controls( &tmpber, serverctrlsp );

report_error_and_return:
       LDAP_SET_LDERRNO( ld, rc, NULL, NULL );
       return( rc );
}

Here is the call graph for this function:

Here is the caller graph for this function:

LDAPMessage* LDAP_CALL ldap_next_entry ( LDAP *  ld,
LDAPMessage *  entry 
)

Definition at line 71 of file getentry.c.

{
       if ( !NSLDAPI_VALID_LDAP_POINTER( ld ) || entry == NULLMSG ) {
              return( NULLMSG );
       }

       for ( entry = entry->lm_chain; entry != NULLMSG;
           entry = entry->lm_chain ) {
              if ( entry->lm_msgtype == LDAP_RES_SEARCH_ENTRY ) {
                     return( entry );
              }
       }

       return( NULLMSG );
}

Here is the caller graph for this function: