From: Jong Hyuk Choi Date: Wed, 25 Jun 2003 16:22:08 +0000 (+0000) Subject: not returning glue entries unless manageDSAit is set X-Git-Tag: OPENLDAP_REL_ENG_2_1_MP~865 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=5d203d0cc571cbe894f76557fc9724ccfc5a857d;p=openldap not returning glue entries unless manageDSAit is set --- diff --git a/servers/slapd/back-bdb/search.c b/servers/slapd/back-bdb/search.c index b2f75748de..57cc3614b8 100644 --- a/servers/slapd/back-bdb/search.c +++ b/servers/slapd/back-bdb/search.c @@ -1082,6 +1082,13 @@ id2entry_retry: goto loop_continue; } +#ifdef LDAP_SYNCREPL + if ( !manageDSAit && is_entry_glue( e ) ) + { + goto loop_continue; + } +#endif + /* if it matches the filter and scope, send it */ #if defined(LDAP_CLIENT_UPDATE) || defined(LDAP_SYNC) if (IS_PSEARCH) { diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index dff51b9dcb..e94158bf44 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -715,6 +715,12 @@ LDAP_SLAPD_F (int) is_entry_objectclass LDAP_P(( (((e)->e_ocflags & SLAP_OC__END) \ ? (((e)->e_ocflags & SLAP_OC_DYNAMICOBJECT) != 0) \ : is_entry_objectclass((e), slap_schema.si_oc_dynamicObject, 1)) +#ifdef LDAP_SYNCREPL +#define is_entry_glue(e) \ + (((e)->e_ocflags & SLAP_OC__END) \ + ? (((e)->e_ocflags & SLAP_OC_GLUE) != 0) \ + : is_entry_objectclass((e), slap_schema.si_oc_glue, 1)) +#endif LDAP_SLAPD_F (int) oc_schema_info( Entry *e ); diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h index 2708e9cb6f..3306910b2e 100644 --- a/servers/slapd/slap.h +++ b/servers/slapd/slap.h @@ -647,8 +647,9 @@ typedef struct slap_object_class { #define SLAP_OC_SUBENTRY 0x0004 #define SLAP_OC_DYNAMICOBJECT 0x0008 #define SLAP_OC_COLLECTIVEATTRIBUTESUBENTRY 0x0010 -#define SLAP_OC__MASK 0x001F -#define SLAP_OC__END 0x0020 +#define SLAP_OC_GLUE 0x0020 +#define SLAP_OC__MASK 0x003F +#define SLAP_OC__END 0x0040 #define SLAP_OC_OPERATIONAL 0x4000 #ifdef LDAP_DEVEL #define SLAP_OC_HIDE 0x0000