]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/aclparse.c
s/SUBSTRINGS/SUBSTR/
[openldap] / servers / slapd / aclparse.c
index a67c0b9ad825dcd14a2e8165e008b506ab034dc1..f41c702ca6f9e3efe76ce6fc861fada46f6a4b3f 100644 (file)
@@ -279,7 +279,7 @@ parse_acl(
                                {
                                        sty = ACL_STYLE_REGEX;
                                } else if ( strcasecmp( style, "exact" ) == 0 ) {
-                                       sty = ACL_STYLE_BASE;
+                                       sty = ACL_STYLE_EXACT;
                                } else if ( strcasecmp( style, "base" ) == 0 ) {
                                        sty = ACL_STYLE_BASE;
                                } else if ( strcasecmp( style, "one" ) == 0 ) {
@@ -607,6 +607,27 @@ parse_acl(
                                        continue;
                                }
 
+                               if ( strcasecmp( left, "set" ) == 0 ) {
+                                       if( b->a_set_pat != NULL ) {
+                                               fprintf( stderr,
+                                                       "%s: line %d: set attribute already specified.\n",
+                                                       fname, lineno );
+                                               acl_usage();
+                                       }
+
+                                       if ( right == NULL || *right == '\0' ) {
+                                               fprintf( stderr,
+                                                       "%s: line %d: no set is defined\n",
+                                                       fname, lineno );
+                                               acl_usage();
+                                       }
+
+                                       b->a_set_style = sty;
+                                       b->a_set_pat = ch_strdup(right);
+
+                                       continue;
+                               }
+
 #ifdef SLAPD_ACI_ENABLED
                                if ( strcasecmp( left, "aci" ) == 0 ) {
                                        if( b->a_aci_at != NULL ) {