Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Joe Martin
OpenLDAP
Commits
dd86a356
Commit
dd86a356
authored
Feb 06, 2009
by
Quanah Gibson-Mount
Browse files
ITS#5925
parent
4a2bcaef
Changes
5
Hide whitespace changes
Inline
Side-by-side
CHANGES
View file @
dd86a356
...
...
@@ -22,6 +22,7 @@ OpenLDAP 2.4.14 Engineering
Fixed slapd connection assert (ITS#5835)
Fixed slapd epoll handling (ITS#5886)
Fixed slapd frontend/backend options handling (ITS#5857)
Fixed slapd glue with MMR (ITS#5925)
Fixed slapd manageDSAit with glue entries (ITS#5921)
Fixed slapd syncrepl rename handling (ITS#5809)
Fixed slapd syncrepl MMR when adding new server (ITS#5850)
...
...
servers/slapd/backglue.c
View file @
dd86a356
...
...
@@ -942,6 +942,15 @@ glue_tool_sync (
return
0
;
}
typedef
struct
glue_Addrec
{
struct
glue_Addrec
*
ga_next
;
BackendDB
*
ga_be
;
}
glue_Addrec
;
/* List of added subordinates */
static
glue_Addrec
*
ga_list
;
static
int
ga_adding
;
static
int
glue_db_init
(
BackendDB
*
be
,
...
...
@@ -994,6 +1003,9 @@ glue_db_init(
SLAP_DBFLAGS
(
be
)
|=
SLAP_DBFLAG_GLUE_INSTANCE
;
if
(
ga_list
)
glue_sub_attach
(
1
);
return
0
;
}
...
...
@@ -1068,21 +1080,19 @@ glue_sub_del( BackendDB *b0 )
return
rc
;
}
typedef
struct
glue_Addrec
{
struct
glue_Addrec
*
ga_next
;
BackendDB
*
ga_be
;
}
glue_Addrec
;
/* List of added subordinates */
static
glue_Addrec
*
ga_list
;
/* Attach all the subordinate backends to their superior */
int
glue_sub_attach
()
glue_sub_attach
(
int
online
)
{
glue_Addrec
*
ga
,
*
gnext
=
NULL
;
int
rc
=
0
;
if
(
ga_adding
)
return
0
;
ga_adding
=
1
;
/* For all the subordinate backends */
for
(
ga
=
ga_list
;
ga
!=
NULL
;
ga
=
gnext
)
{
BackendDB
*
be
;
...
...
@@ -1122,11 +1132,20 @@ glue_sub_attach()
&
gi
->
gi_n
[
gi
->
gi_nodes
].
gn_pdn
);
gi
->
gi_nodes
++
;
on
->
on_bi
.
bi_private
=
gi
;
ga
->
ga_be
->
be_flags
|=
SLAP_DBFLAG_GLUE_LINKED
;
break
;
}
if
(
!
be
)
{
Debug
(
LDAP_DEBUG_ANY
,
"glue: no superior found for sub %s!
\n
"
,
ga
->
ga_be
->
be_suffix
[
0
].
bv_val
,
0
,
0
);
/* allow this for now, assume a superior will
* be added later
*/
if
(
online
)
{
rc
=
0
;
gnext
=
ga_list
;
break
;
}
rc
=
LDAP_NO_SUCH_OBJECT
;
}
ch_free
(
ga
);
...
...
@@ -1135,6 +1154,8 @@ glue_sub_attach()
ga_list
=
gnext
;
ga_adding
=
0
;
return
rc
;
}
...
...
@@ -1160,7 +1181,7 @@ glue_sub_add( BackendDB *be, int advert, int online )
ga_list
=
ga
;
if
(
online
)
rc
=
glue_sub_attach
();
rc
=
glue_sub_attach
(
online
);
return
rc
;
}
...
...
servers/slapd/main.c
View file @
dd86a356
...
...
@@ -792,7 +792,7 @@ unhandled_option:;
}
}
if
(
glue_sub_attach
(
)
!=
0
)
{
if
(
glue_sub_attach
(
0
)
!=
0
)
{
Debug
(
LDAP_DEBUG_ANY
,
"subordinate config error
\n
"
,
0
,
0
,
0
);
...
...
servers/slapd/proto-slap.h
View file @
dd86a356
...
...
@@ -426,7 +426,7 @@ LDAP_SLAPD_V(BackendInfo) slap_binfo[];
*/
LDAP_SLAPD_F
(
int
)
glue_sub_init
(
void
);
LDAP_SLAPD_F
(
int
)
glue_sub_attach
(
void
);
LDAP_SLAPD_F
(
int
)
glue_sub_attach
(
int
online
);
LDAP_SLAPD_F
(
int
)
glue_sub_add
(
BackendDB
*
be
,
int
advert
,
int
online
);
LDAP_SLAPD_F
(
int
)
glue_sub_del
(
BackendDB
*
be
);
...
...
servers/slapd/slapcommon.c
View file @
dd86a356
...
...
@@ -564,7 +564,7 @@ slap_tool_init(
}
if
(
use_glue
)
{
rc
=
glue_sub_attach
();
rc
=
glue_sub_attach
(
0
);
if
(
rc
!=
0
)
{
fprintf
(
stderr
,
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment