X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fproto-slap.h;h=41594bb3678b73ccd2982f33cdb64d611e66e5fc;hb=2c94c7915a52f8df4323c8193ec424df568f0fc1;hp=c05dbb21c1ee3e771a892944695dcd3085cd92fa;hpb=20af643fc472b489fc0a9bc9bab79d81c24ed007;p=openldap diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index c05dbb21c1..41594bb367 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -58,8 +58,8 @@ LDAP_SLAPD_F (AttributeDescription *) ad_dup LDAP_P(( LDAP_SLAPD_F (void) ad_destroy LDAP_P(( AttributeDescription * )); #define ad_cmp(l,r) (((l)->ad_cname.bv_len < (r)->ad_cname.bv_len) \ - ? strcasecmp((l)->ad_cname.bv_val, (r)->ad_cname.bv_val ) \ - : ((l)->ad_cname.bv_len - (r)->ad_cname.bv_len )) + ? -1 : (((l)->ad_cname.bv_len > (r)->ad_cname.bv_len) \ + ? strcasecmp((l)->ad_cname.bv_val, (r)->ad_cname.bv_val ) : 1 )) LDAP_SLAPD_F (int) is_ad_subtype LDAP_P(( AttributeDescription *sub, @@ -346,9 +346,8 @@ LDAP_SLAPD_F (void) slapd_clr_read LDAP_P((ber_socket_t s, int wake)); /* * dn.c */ -#define dn_match(dn1, dn2) \ - (((dn1)->bv_len == (dn2)->bv_len) \ - && (strcmp((dn1)->bv_val, (dn2)->bv_val) == 0)) + +#define dn_match(dn1, dn2) ( ber_bvcmp((dn1), (dn2)) == 0 ) LDAP_SLAPD_F (int) dnValidate LDAP_P(( Syntax *syntax, @@ -403,6 +402,8 @@ LDAP_SLAPD_F (void) build_new_dn LDAP_P(( struct berval * parent_dn, struct berval * newrdn )); +LDAP_SLAPD_F (int) dnParent LDAP_P(( const char *dn, const char **pdn )); + #define SLAP_DN_MIGRATION #ifdef SLAP_DN_MIGRATION /* These routines are deprecated!!! */ @@ -521,25 +522,13 @@ LDAP_SLAPD_F (int) lock_fclose LDAP_P(( FILE *fp, FILE *lfp )); /* * modify.c - * should be relocated to separate file */ -LDAP_SLAPD_F( void ) slap_mod_free( Modification *mod, int freeit ); -LDAP_SLAPD_F( void ) slap_mods_free( Modifications *mods ); -LDAP_SLAPD_F( void ) slap_modlist_free( LDAPModList *ml ); - LDAP_SLAPD_F( int ) slap_mods_check( Modifications *ml, int update, const char **text, char *textbuf, size_t textlen ); -LDAP_SLAPD_F( int ) slap_modlist2mods( - LDAPModList *ml, - int update, - Modifications **mods, - const char **text, - char *textbuf, size_t textlen ); - LDAP_SLAPD_F( int ) slap_mods_opattrs( Operation *op, Modifications *mods, @@ -547,6 +536,13 @@ LDAP_SLAPD_F( int ) slap_mods_opattrs( const char **text, char *textbuf, size_t textlen ); +/* + * mods.c + */ +LDAP_SLAPD_F( void ) slap_mod_free( Modification *mod, int freeit ); +LDAP_SLAPD_F( void ) slap_mods_free( Modifications *mods ); +LDAP_SLAPD_F( void ) slap_modlist_free( LDAPModList *ml ); + /* * module.c */ @@ -622,17 +618,22 @@ LDAP_SLAPD_F (int) is_object_subclass LDAP_P(( ObjectClass *sup )); LDAP_SLAPD_F (int) is_entry_objectclass LDAP_P(( - Entry *, ObjectClass *oc )); + Entry *, ObjectClass *oc, int set_flags )); #define is_entry_alias(e) \ - is_entry_objectclass((e), slap_schema.si_oc_alias) + (((e)->e_ocflags & SLAP_OC__END) ? ((e)->e_ocflags & SLAP_OC_ALIAS) : \ + is_entry_objectclass((e), slap_schema.si_oc_alias, 1)) #define is_entry_referral(e) \ - is_entry_objectclass((e), slap_schema.si_oc_referral) + (((e)->e_ocflags & SLAP_OC__END) ? ((e)->e_ocflags & SLAP_OC_REFERRAL) : \ + is_entry_objectclass((e), slap_schema.si_oc_referral, 1)) #define is_entry_subentry(e) \ - is_entry_objectclass((e), slap_schema.si_oc_subentry) + (((e)->e_ocflags & SLAP_OC__END) ? ((e)->e_ocflags & SLAP_OC_SUBENTRY) : \ + is_entry_objectclass((e), slap_schema.si_oc_subentry, 1)) #define is_entry_collectiveAttributes(e) \ - is_entry_objectclass((e), slap_schema.si_oc_collectiveAttributes) + (((e)->e_ocflags & SLAP_OC__END) ? ((e)->e_ocflags & SLAP_OC_COLLECTIVEATTRIBUTES) : \ + is_entry_objectclass((e), slap_schema.si_oc_collectiveAttributes, 1)) #define is_entry_dynamicObject(e) \ - is_entry_objectclass((e), slap_schema.si_oc_dynamicObject) + (((e)->e_ocflags & SLAP_OC__END) ? ((e)->e_ocflags & SLAP_OC_DYNAMICOBJECT) : \ + is_entry_objectclass((e), slap_schema.si_oc_dynamicObject, 1)) LDAP_SLAPD_F (int) oc_schema_info( Entry *e );