Back to index

openldap  2.4.31
Functions
params.c File Reference
#include <portable.h>
#include "rewrite-int.h"

Go to the source code of this file.

Functions

int rewrite_param_set (struct rewrite_info *info, const char *name, const char *value)
int rewrite_param_get (struct rewrite_info *info, const char *name, struct berval *value)
static void rewrite_param_free (void *tmp)
int rewrite_param_destroy (struct rewrite_info *info)

Function Documentation

Definition at line 128 of file params.c.

{
       int count;

       assert( info != NULL );
       
#ifdef USE_REWRITE_LDAP_PVT_THREADS
       ldap_pvt_thread_rdwr_wlock( &info->li_params_mutex );
#endif /* USE_REWRITE_LDAP_PVT_THREADS */
       
       count = avl_free( info->li_params, rewrite_param_free );
       info->li_params = NULL;

#ifdef USE_REWRITE_LDAP_PVT_THREADS
       ldap_pvt_thread_rdwr_wunlock( &info->li_params_mutex );
#endif /* USE_REWRITE_LDAP_PVT_THREADS */

       return REWRITE_SUCCESS;
}

Here is the call graph for this function:

Here is the caller graph for this function:

static void rewrite_param_free ( void tmp) [static]

Definition at line 109 of file params.c.

{
       struct rewrite_var *var = ( struct rewrite_var * )tmp;
       assert( var != NULL );

       assert( var->lv_name != NULL );
       assert( var->lv_value.bv_val != NULL );

       free( var->lv_name );
       free( var->lv_value.bv_val );
       free( var );
}

Here is the caller graph for this function:

int rewrite_param_get ( struct rewrite_info info,
const char *  name,
struct berval value 
)

Definition at line 71 of file params.c.

{
       struct rewrite_var *var;
       int rc = REWRITE_SUCCESS;

       assert( info != NULL );
       assert( name != NULL );
       assert( value != NULL );

       value->bv_val = NULL;
       value->bv_len = 0;
       
#ifdef USE_REWRITE_LDAP_PVT_THREADS
       ldap_pvt_thread_rdwr_rlock( &info->li_params_mutex );
#endif /* USE_REWRITE_LDAP_PVT_THREADS */
       
       var = rewrite_var_find( info->li_params, name );
       if ( var != NULL ) {
              value->bv_val = strdup( var->lv_value.bv_val );
              value->bv_len = var->lv_value.bv_len;
       }

       if ( var == NULL || value->bv_val == NULL ) {
              rc = REWRITE_ERR;
       }
       
#ifdef USE_REWRITE_LDAP_PVT_THREADS
       ldap_pvt_thread_rdwr_runlock( &info->li_params_mutex );
#endif /* USE_REWRITE_LDAP_PVT_THREADS */

       return REWRITE_SUCCESS;
}

Here is the call graph for this function:

Here is the caller graph for this function:

int rewrite_param_set ( struct rewrite_info info,
const char *  name,
const char *  value 
)

Definition at line 28 of file params.c.

{
       struct rewrite_var *var;
       int rc = REWRITE_SUCCESS;

       assert( info != NULL );
       assert( name != NULL );
       assert( value != NULL );

#ifdef USE_REWRITE_LDAP_PVT_THREADS
       ldap_pvt_thread_rdwr_wlock( &info->li_params_mutex );
#endif /* USE_REWRITE_LDAP_PVT_THREADS */

       var = rewrite_var_find( info->li_params, name );
       if ( var != NULL ) {
              assert( var->lv_value.bv_val != NULL );
              free( var->lv_value.bv_val );
              var->lv_value.bv_val = strdup( value );
              var->lv_value.bv_len = strlen( value );

       } else {
              var = rewrite_var_insert( &info->li_params, name, value );
       }

       if ( var == NULL || var->lv_value.bv_val == NULL ) {
              rc = REWRITE_ERR;
       }
       
#ifdef USE_REWRITE_LDAP_PVT_THREADS
       ldap_pvt_thread_rdwr_wunlock( &info->li_params_mutex );
#endif /* USE_REWRITE_LDAP_PVT_THREADS */

       return rc;
}

Here is the call graph for this function:

Here is the caller graph for this function: