Back to index

openldap  2.4.31
Functions
addentry.c File Reference
#include "portable.h"
#include <stdio.h>
#include <ac/stdlib.h>
#include <ac/socket.h>
#include <ac/string.h>
#include <ac/time.h>
#include "ldap-int.h"

Go to the source code of this file.

Functions

LDAPMessage * ldap_delete_result_entry (LDAPMessage **list, LDAPMessage *e)
void ldap_add_result_entry (LDAPMessage **list, LDAPMessage *e)

Function Documentation

void ldap_add_result_entry ( LDAPMessage **  list,
LDAPMessage *  e 
)

Definition at line 61 of file addentry.c.

{
       assert( list != NULL );
       assert( e != NULL );

       e->lm_chain = *list;
       if ( *list )
              e->lm_chain_tail = (*list)->lm_chain_tail;
       else
              e->lm_chain_tail = e;
       *list = e;
}
LDAPMessage* ldap_delete_result_entry ( LDAPMessage **  list,
LDAPMessage *  e 
)

Definition at line 33 of file addentry.c.

{
       LDAPMessage   *tmp, *prev = NULL;

       assert( list != NULL );
       assert( e != NULL );

       for ( tmp = *list; tmp != NULL && tmp != e; tmp = tmp->lm_chain )
              prev = tmp;

       if ( tmp == NULL )
              return( NULL );

       if ( prev == NULL ) {
              if ( tmp->lm_chain )
                     tmp->lm_chain->lm_chain_tail = (*list)->lm_chain_tail;
              *list = tmp->lm_chain;
       } else {
              prev->lm_chain = tmp->lm_chain;
              if ( prev->lm_chain == NULL )
                     (*list)->lm_chain_tail = prev;
       }
       tmp->lm_chain = NULL;

       return( tmp );
}