mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-02-18 10:07:56 -05:00
work around syncprov interoperation issues; minor cleanup
This commit is contained in:
parent
16e42fc78c
commit
3751f0325d
12 changed files with 60 additions and 20 deletions
|
|
@ -1494,7 +1494,7 @@ done:;
|
|||
}
|
||||
|
||||
if ( !BER_BVISNULL( &p.e_nname ) ) {
|
||||
entry_clean( &p );
|
||||
backsql_entry_clean( op, &p );
|
||||
}
|
||||
|
||||
Debug( LDAP_DEBUG_TRACE, "<==backsql_add(\"%s\"): %d \"%s\"\n",
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ error_return:;
|
|||
}
|
||||
|
||||
if ( !BER_BVISNULL( &e.e_nname ) ) {
|
||||
entry_clean( &e );
|
||||
backsql_entry_clean( op, &e );
|
||||
}
|
||||
|
||||
if ( bsi.bsi_attrs != NULL ) {
|
||||
|
|
|
|||
|
|
@ -181,7 +181,7 @@ return_results:;
|
|||
}
|
||||
|
||||
if ( !BER_BVISNULL( &e.e_nname ) ) {
|
||||
entry_clean( &e );
|
||||
backsql_entry_clean( op, &e );
|
||||
}
|
||||
|
||||
if ( bsi.bsi_attrs != NULL ) {
|
||||
|
|
|
|||
|
|
@ -474,11 +474,11 @@ done:;
|
|||
}
|
||||
|
||||
if ( !BER_BVISNULL( &d.e_nname ) ) {
|
||||
entry_clean( &d );
|
||||
backsql_entry_clean( op, &d );
|
||||
}
|
||||
|
||||
if ( !BER_BVISNULL( &p.e_nname ) ) {
|
||||
entry_clean( &p );
|
||||
backsql_entry_clean( op, &p );
|
||||
}
|
||||
|
||||
return rs->sr_err;
|
||||
|
|
|
|||
|
|
@ -862,7 +862,7 @@ backsql_id2entry( backsql_srch_info *bsi, backsql_entryID *eid )
|
|||
&bsi->bsi_oc->bom_oc->soc_cname,
|
||||
bsi->bsi_op->o_tmpmemctx );
|
||||
if ( rc != LDAP_SUCCESS ) {
|
||||
entry_clean( bsi->bsi_e );
|
||||
backsql_entry_clean( op, bsi->bsi_e );
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
@ -966,7 +966,7 @@ next:;
|
|||
"structural_class() failed %d (%s)\n",
|
||||
bsi->bsi_e->e_name.bv_val,
|
||||
rc, text ? text : "" );
|
||||
entry_clean( bsi->bsi_e );
|
||||
backsql_entry_clean( op, bsi->bsi_e );
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
@ -977,7 +977,7 @@ next:;
|
|||
"to entry\n",
|
||||
bsi->bsi_e->e_name.bv_val, soc.bv_val,
|
||||
bsi->bsi_oc->bom_oc->soc_cname.bv_val );
|
||||
entry_clean( bsi->bsi_e );
|
||||
backsql_entry_clean( op, bsi->bsi_e );
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
|
|
@ -987,7 +987,7 @@ next:;
|
|||
&bsi->bsi_oc->bom_oc->soc_cname,
|
||||
bsi->bsi_op->o_tmpmemctx );
|
||||
if ( rc != LDAP_SUCCESS ) {
|
||||
entry_clean( bsi->bsi_e );
|
||||
backsql_entry_clean( op, bsi->bsi_e );
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ sql_back_initialize(
|
|||
bi->bi_chk_referrals = 0;
|
||||
bi->bi_operational = backsql_operational;
|
||||
bi->bi_entry_get_rw = backsql_entry_get;
|
||||
bi->bi_entry_release_rw = backsql_entry_release;
|
||||
|
||||
bi->bi_connection_init = 0;
|
||||
bi->bi_connection_destroy = backsql_connection_destroy;
|
||||
|
|
|
|||
|
|
@ -158,7 +158,7 @@ backsql_modify( Operation *op, SlapReply *rs )
|
|||
if ( BACKSQL_CHECK_SCHEMA( bi ) ) {
|
||||
char textbuf[ SLAP_TEXT_BUFLEN ] = { '\0' };
|
||||
|
||||
entry_clean( &m );
|
||||
backsql_entry_clean( op, &m );
|
||||
|
||||
bsi.bsi_e = &m;
|
||||
rs->sr_err = backsql_id2entry( &bsi, &bsi.bsi_base_id );
|
||||
|
|
@ -212,7 +212,7 @@ done:;
|
|||
}
|
||||
|
||||
if ( !BER_BVISNULL( &m.e_nname ) ) {
|
||||
entry_clean( &m );
|
||||
backsql_entry_clean( op, &m );
|
||||
}
|
||||
|
||||
if ( bsi.bsi_attrs != NULL ) {
|
||||
|
|
|
|||
|
|
@ -449,7 +449,7 @@ backsql_modrdn( Operation *op, SlapReply *rs )
|
|||
if ( BACKSQL_CHECK_SCHEMA( bi ) ) {
|
||||
char textbuf[ SLAP_TEXT_BUFLEN ] = { '\0' };
|
||||
|
||||
entry_clean( &r );
|
||||
backsql_entry_clean( op, &r );
|
||||
(void)backsql_free_entryID( op, &e_id, 0 );
|
||||
|
||||
bsi.bsi_e = &r;
|
||||
|
|
@ -574,15 +574,15 @@ done:;
|
|||
}
|
||||
|
||||
if ( !BER_BVISNULL( &r.e_nname ) ) {
|
||||
entry_clean( &r );
|
||||
backsql_entry_clean( op, &r );
|
||||
}
|
||||
|
||||
if ( !BER_BVISNULL( &p.e_nname ) ) {
|
||||
entry_clean( &p );
|
||||
backsql_entry_clean( op, &p );
|
||||
}
|
||||
|
||||
if ( !BER_BVISNULL( &n.e_nname ) ) {
|
||||
entry_clean( &n );
|
||||
backsql_entry_clean( op, &n );
|
||||
}
|
||||
|
||||
Debug( LDAP_DEBUG_TRACE, "<==backsql_modrdn()\n", 0, 0, 0 );
|
||||
|
|
|
|||
|
|
@ -169,6 +169,8 @@ int backsql_init_search( backsql_srch_info *bsi,
|
|||
Operation *op, SlapReply *rs, AttributeName *attrs,
|
||||
unsigned flags );
|
||||
|
||||
void backsql_entry_clean( Operation *op, Entry *e );
|
||||
|
||||
/*
|
||||
* sql-wrap.h
|
||||
*/
|
||||
|
|
@ -283,6 +285,7 @@ extern BI_op_delete backsql_delete;
|
|||
|
||||
extern BI_operational backsql_operational;
|
||||
extern BI_entry_get_rw backsql_entry_get;
|
||||
extern BI_entry_release_rw backsql_entry_release;
|
||||
|
||||
extern BI_connection_destroy backsql_connection_destroy;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
DROP TABLE ldap_referrals;
|
||||
DROP TABLE ldap_entry_objclasses;
|
||||
DROP TABLE ldap_attr_mappings;
|
||||
DROP TABLE ldap_entries;
|
||||
|
|
|
|||
|
|
@ -3,3 +3,4 @@ DROP TABLE institutes;
|
|||
DROP TABLE documents;
|
||||
DROP TABLE authors_docs;
|
||||
DROP TABLE phones;
|
||||
DROP TABLE referrals;
|
||||
|
|
|
|||
|
|
@ -2096,7 +2096,7 @@ backsql_search( Operation *op, SlapReply *rs )
|
|||
} else {
|
||||
rs->sr_err = LDAP_OTHER;
|
||||
}
|
||||
entry_clean( &user_entry2 );
|
||||
backsql_entry_clean( op, &user_entry2 );
|
||||
}
|
||||
if ( bsi2.bsi_attrs != NULL ) {
|
||||
op->o_tmpfree( bsi2.bsi_attrs,
|
||||
|
|
@ -2218,7 +2218,7 @@ backsql_search( Operation *op, SlapReply *rs )
|
|||
|
||||
next_entry:;
|
||||
if ( e == &user_entry ) {
|
||||
entry_clean( &user_entry );
|
||||
backsql_entry_clean( op, &user_entry );
|
||||
}
|
||||
|
||||
next_entry2:;
|
||||
|
|
@ -2245,10 +2245,10 @@ send_results:;
|
|||
send_ldap_result( op, rs );
|
||||
}
|
||||
|
||||
entry_clean( &base_entry );
|
||||
backsql_entry_clean( op, &base_entry );
|
||||
|
||||
/* in case we got here accidentally */
|
||||
entry_clean( &user_entry );
|
||||
backsql_entry_clean( op, &user_entry );
|
||||
|
||||
if ( rs->sr_v2ref ) {
|
||||
ber_bvarray_free( rs->sr_v2ref );
|
||||
|
|
@ -2390,3 +2390,39 @@ return_results:;
|
|||
return rc;
|
||||
}
|
||||
|
||||
void
|
||||
backsql_entry_clean(
|
||||
Operation *op,
|
||||
Entry *e )
|
||||
{
|
||||
void *ctx;
|
||||
|
||||
ctx = ldap_pvt_thread_pool_context();
|
||||
|
||||
if ( ctx == NULL || ctx == op->o_tmpmemctx ) {
|
||||
if ( !BER_BVISNULL( &e->e_name ) ) {
|
||||
op->o_tmpfree( e->e_name.bv_val, op->o_tmpmemctx );
|
||||
BER_BVZERO( &e->e_name );
|
||||
}
|
||||
|
||||
if ( !BER_BVISNULL( &e->e_nname ) ) {
|
||||
op->o_tmpfree( e->e_nname.bv_val, op->o_tmpmemctx );
|
||||
BER_BVZERO( &e->e_nname );
|
||||
}
|
||||
}
|
||||
|
||||
entry_clean( e );
|
||||
}
|
||||
|
||||
int
|
||||
backsql_entry_release(
|
||||
Operation *op,
|
||||
Entry *e,
|
||||
int rw )
|
||||
{
|
||||
backsql_entry_clean( op, e );
|
||||
|
||||
ch_free( e );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue