mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-30 19:49:35 -05:00
comment about helper requirements
This commit is contained in:
parent
02a85a1c93
commit
2d88c1b826
1 changed files with 32 additions and 1 deletions
|
|
@ -94,14 +94,30 @@ backsql_api_dn2odbc( Operation *op, SlapReply *rs, struct berval *dn )
|
|||
|
||||
for ( ; ba; ba = ba->ba_next ) {
|
||||
if ( ba->ba_dn2odbc ) {
|
||||
/*
|
||||
* The dn2odbc() helper is supposed to rewrite
|
||||
* the contents of bv, freeing the original value
|
||||
* with ch_free() if required and replacing it
|
||||
* with a newly allocated one using ch_malloc()
|
||||
* or companion functions.
|
||||
*
|
||||
* NOTE: it is supposed to __always__ free
|
||||
* the value of bv in case of error, and reset
|
||||
* it with BER_BVZERO() .
|
||||
*/
|
||||
rc = ( *ba->ba_dn2odbc )( op, rs, &bv );
|
||||
|
||||
if ( rc ) {
|
||||
/* in case of error, dn2odbc() must cleanup */
|
||||
assert( BER_BVISNULL( &bv ) );
|
||||
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert( !BER_BVISNULL( &bv ) );
|
||||
|
||||
*dn = bv;
|
||||
|
||||
return 0;
|
||||
|
|
@ -126,13 +142,28 @@ backsql_api_odbc2dn( Operation *op, SlapReply *rs, struct berval *dn )
|
|||
for ( ; ba; ba = ba->ba_next ) {
|
||||
if ( ba->ba_dn2odbc ) {
|
||||
rc = ( *ba->ba_odbc2dn )( op, rs, &bv );
|
||||
|
||||
/*
|
||||
* The odbc2dn() helper is supposed to rewrite
|
||||
* the contents of bv, freeing the original value
|
||||
* with ch_free() if required and replacing it
|
||||
* with a newly allocated one using ch_malloc()
|
||||
* or companion functions.
|
||||
*
|
||||
* NOTE: it is supposed to __always__ free
|
||||
* the value of bv in case of error, and reset
|
||||
* it with BER_BVZERO() .
|
||||
*/
|
||||
if ( rc ) {
|
||||
/* in case of error, odbc2dn() must cleanup */
|
||||
assert( BER_BVISNULL( &bv ) );
|
||||
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
assert( !BER_BVISNULL( &bv ) );
|
||||
|
||||
*dn = bv;
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue