Skip to content
Snippets Groups Projects
Commit ce581462 authored by Howard Chu's avatar Howard Chu
Browse files

More streamlining.

parent 5f4db0b4
No related branches found
No related tags found
No related merge requests found
......@@ -40,7 +40,8 @@ typedef struct gluenode {
} gluenode;
typedef struct glueinfo {
BackendDB *be;
BackendInfo bi;
BackendDB bd;
int nodes;
gluenode n[1];
} glueinfo;
......@@ -55,7 +56,7 @@ glue_back_select (
const char *dn
)
{
glueinfo *gi = *(glueinfo **) (be->bd_info+1);
glueinfo *gi = (glueinfo *) be->bd_info;
struct berval bv;
int i;
......@@ -114,7 +115,7 @@ glue_back_db_open (
BackendDB *be
)
{
glueinfo *gi = *(glueinfo **) (be->bd_info+1);
glueinfo *gi = (glueinfo *) be->bd_info;
static int glueOpened = 0;
int rc = 0;
......@@ -122,10 +123,10 @@ glue_back_db_open (
glueOpened = 1;
gi->be->be_acl = be->be_acl;
gi->bd.be_acl = be->be_acl;
if (gi->be->bd_info->bi_db_open)
rc = gi->be->bd_info->bi_db_open(gi->be);
if (gi->bd.bd_info->bi_db_open)
rc = gi->bd.bd_info->bi_db_open(&gi->bd);
return rc;
}
......@@ -135,7 +136,7 @@ glue_back_db_close (
BackendDB *be
)
{
glueinfo *gi = *(glueinfo **) (be->bd_info+1);
glueinfo *gi = (glueinfo *) be->bd_info;
static int glueClosed = 0;
if (glueClosed) return 0;
......@@ -143,8 +144,8 @@ glue_back_db_close (
glueClosed = 1;
/* Close the master */
if (gi->be->bd_info->bi_db_close)
gi->be->bd_info->bi_db_close( gi->be );
if (gi->bd.bd_info->bi_db_close)
gi->bd.bd_info->bi_db_close( &gi->bd );
return 0;
}
......@@ -154,11 +155,10 @@ glue_back_db_destroy (
BackendDB *be
)
{
glueinfo *gi = *(glueinfo **) (be->bd_info+1);
glueinfo *gi = (glueinfo *) be->bd_info;
if (gi->be->bd_info->bi_db_destroy)
gi->be->bd_info->bi_db_destroy( gi->be );
free (gi->be);
if (gi->bd.bd_info->bi_db_destroy)
gi->bd.bd_info->bi_db_destroy( &gi->bd );
free (gi);
return 0;
}
......@@ -290,7 +290,7 @@ glue_back_search (
int attrsonly
)
{
glueinfo *gi = *(glueinfo **) (b0->bd_info+1);
glueinfo *gi = (glueinfo *) b0->bd_info;
BackendDB *be;
int i, rc = 0, t2limit = 0, s2limit = 0;
long stoptime = 0;
......@@ -431,7 +431,7 @@ glue_tool_entry_first (
BackendDB *b0
)
{
glueinfo *gi = *(glueinfo **) (b0->bd_info+1);
glueinfo *gi = (glueinfo *) b0->bd_info;
int i;
/* If we're starting from scratch, start at the most general */
......@@ -456,7 +456,7 @@ glue_tool_entry_next (
BackendDB *b0
)
{
glueinfo *gi = *(glueinfo **) (b0->bd_info+1);
glueinfo *gi = (glueinfo *) b0->bd_info;
int i;
ID rc;
......@@ -544,7 +544,7 @@ glue_tool_sync (
BackendDB *b0
)
{
glueinfo *gi = *(glueinfo **) (b0->bd_info+1);
glueinfo *gi = (glueinfo *) b0->bd_info;
int i;
/* just sync everyone */
......@@ -598,18 +598,10 @@ glue_sub_init( )
*/
b1->be_flags |= SLAP_BFLAG_GLUE_INSTANCE;
gi = (glueinfo *)ch_malloc(sizeof(glueinfo));
/* Space for a copy of the backend, our
* own backendInfo structure, and a pointer
* to our glueinfo
*/
gi->be = (BackendDB *)ch_malloc(
sizeof(BackendDB) + sizeof(BackendInfo) +
sizeof(glueinfo *) );
bi = (BackendInfo *)(gi->be+1);
*gi->be = *b1;
gi->nodes = 0;
*bi = *b1->bd_info;
gi->bd = *b1;
gi->bi = *b1->bd_info;
bi = (BackendInfo *)gi;
bi->bi_open = glue_back_open;
bi->bi_close = glue_back_close;
bi->bi_db_open = glue_back_db_open;
......@@ -642,15 +634,10 @@ glue_sub_init( )
/* One more node for the master */
gi = (glueinfo *)ch_realloc(gi,
sizeof(glueinfo) + gi->nodes * sizeof(gluenode));
gi->n[gi->nodes].be = gi->be;
gi->n[gi->nodes].be = &gi->bd;
dnParent( &b1->be_nsuffix[0], &gi->n[gi->nodes].pdn );
gi->nodes++;
b1->bd_info = bi;
/* Save a pointer to our private info. Don't use
* be_private or bi_private, to avoid having to fix
* that up before calling the real backend.
*/
*(glueinfo **)(bi+1) = gi;
}
}
/* If there are any unresolved subordinates left, something is wrong */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment