]> git.sur5r.net Git - openldap/commitdiff
ITS#3996 fix glue/syncprov interaction
authorHoward Chu <hyc@openldap.org>
Tue, 27 Sep 2005 15:10:57 +0000 (15:10 +0000)
committerHoward Chu <hyc@openldap.org>
Tue, 27 Sep 2005 15:10:57 +0000 (15:10 +0000)
servers/slapd/backglue.c
servers/slapd/init.c
servers/slapd/main.c
servers/slapd/proto-slap.h
servers/slapd/slapcommon.c

index 29a781102fa8e2a6d918f6fc7f895dde946d4208..db732652a42da840f6b2d1ec7a2a3ee2f50b0382 100644 (file)
@@ -837,7 +837,7 @@ typedef struct glue_Addrec {
 static glue_Addrec *ga_list;
 
 /* Attach all the subordinate backends to their superior */
-static int
+int
 glue_sub_attach()
 {
        glue_Addrec *ga, *gnext = NULL;
@@ -939,8 +939,5 @@ glue_sub_init()
        glue.on_bi.bi_chk_referrals = glue_chk_referrals;
        glue.on_bi.bi_chk_controls = glue_chk_controls;
 
-       rc = overlay_register( &glue );
-       if ( rc ) return rc;
-
-       return glue_sub_attach();
+       return overlay_register( &glue );
 }
index 6b4589730810492f39cd09979ae97816f7482bd6..ab5f17b7a72cdeca721a9ff64d37b98e92e571c4 100644 (file)
@@ -216,6 +216,15 @@ slap_init( int mode, const char *name )
                return 1;
        }
 
+       if ( glue_sub_init() ) {
+               ldap_debug |= 1;
+               Debug( LDAP_DEBUG_ANY,
+                   "%s: glue/subordinate init failed\n",
+                   name, 0, 0 );
+
+               return 1;
+       }
+
        if ( acl_init() ) {
                ldap_debug |= 1;
                Debug( LDAP_DEBUG_ANY,
index 81fbed49f46f3908b573d304eee901a0d1160e66..3f9b948f7762e7c82651037be4a27b88a7da8f72 100644 (file)
@@ -631,7 +631,7 @@ unhandled_option:;
                }
        }
 
-       if ( glue_sub_init( ) != 0 ) {
+       if ( glue_sub_attach( ) != 0 ) {
                Debug( LDAP_DEBUG_ANY,
                    "subordinate config error\n",
                    0, 0, 0 );
index 5261751f7f93fdd61e07a22b2cb1d1ac3d011d7c..e110c3865fe2f411224fce6931c7d9a5ce57cfed 100644 (file)
@@ -395,6 +395,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_add( BackendDB *be, int advert, int online );
 LDAP_SLAPD_F (int) glue_sub_del( BackendDB *be );
 
index bbdb5bb3e3556b8c5aa6f35df750c4682ef5177d..eb82e2da38502e6f50cbb0c4dbe139bc9e3582ed 100644 (file)
@@ -424,7 +424,7 @@ slap_tool_init(
                break;
        }
 
-       rc = glue_sub_init();
+       rc = glue_sub_attach();
 
        if ( rc != 0 ) {
                fprintf( stderr, "%s: subordinate configuration error\n", progname );