X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Faclparse.c;h=fddae6b13a5eec2f6a9fbe8fdb2e6db8a78150b0;hb=b94a77687075b0eb2d54d087b8b956d197c1023c;hp=d7a99c0351d55a7169bba68e7806d0ff09ffac51;hpb=8866a28fb3dda4425a731bf99bf3fd6dae7f5157;p=openldap diff --git a/servers/slapd/aclparse.c b/servers/slapd/aclparse.c index d7a99c0351..fddae6b13a 100644 --- a/servers/slapd/aclparse.c +++ b/servers/slapd/aclparse.c @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2004 The OpenLDAP Foundation. + * Copyright 1998-2005 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -45,7 +45,11 @@ static char *style_strings[] = { "one", "subtree", "children", + "level", "attrof", + "anonymous", + "users", + "self", "ip", "path", NULL @@ -62,10 +66,7 @@ static void print_acl(Backend *be, AccessControl *a); static void print_access(Access *b); #endif -#ifdef LDAP_DEVEL -static int -check_scope( BackendDB *be, AccessControl *a ); -#endif /* LDAP_DEVEL */ +static int check_scope( BackendDB *be, AccessControl *a ); #ifdef SLAP_DYNACL static int @@ -160,7 +161,6 @@ regtest(const char *fname, int lineno, char *pat) { regfree(&re); } -#ifdef LDAP_DEVEL /* * Experimental * @@ -181,6 +181,10 @@ check_scope( BackendDB *be, AccessControl *a ) dn = be->be_nsuffix[0]; + if ( BER_BVISEMPTY( &dn ) ) { + return ACL_SCOPE_OK; + } + if ( !BER_BVISEMPTY( &a->acl_dn_pat ) || a->acl_dn_style != ACL_STYLE_REGEX ) { @@ -295,7 +299,6 @@ regex_done:; return ACL_SCOPE_UNKNOWN; } -#endif /* LDAP_DEVEL */ void parse_acl( @@ -303,8 +306,7 @@ parse_acl( const char *fname, int lineno, int argc, - char **argv -) + char **argv ) { int i; char *left, *right, *style, *next; @@ -506,7 +508,7 @@ parse_acl( a->acl_attrs[0].an_desc->ad_cname.bv_val ); a->acl_attrval_style = ACL_STYLE_BASE; } - + } else { fprintf( stderr, "%s: line %d: unknown val.