]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/ad.c
Added ppolicy_hide_lockout keyword
[openldap] / servers / slapd / ad.c
index 8543c9b2a4fb2041b32254e133a06ba48fa4f368..89f2c96b6f91db8547262fb2df314c3c7285b06b 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2003 The OpenLDAP Foundation.
+ * Copyright 1998-2004 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -531,13 +531,16 @@ int ad_inlist(
                }
 
                /*
-                * EXTENSION: see if requested description is +objectClass
+                * EXTENSION: see if requested description is @objectClass
                 * if so, return attributes which the class requires/allows
+                * else if requested description is !objectClass, return
+                * attributes which the class does not require/allow
                 */
                oc = attrs->an_oc;
                if( oc == NULL && attrs->an_name.bv_val ) {
                        switch( attrs->an_name.bv_val[0] ) {
-                       case '+': /* new way */
+                       case '@': /* @objectClass */
+                       case '+': /* +objectClass (deprecated) */
                        case '!': { /* exclude */
                                        struct berval ocname;
                                        ocname.bv_len = attrs->an_name.bv_len - 1;
@@ -728,16 +731,16 @@ an_find(
 }
 
 /*
- * Convert a delimited string into a list of AttributeNames; 
- * add on to an existing list if it was given.  If the string
- * is not a valid attribute name, if a '-' is prepended it is 
- * skipped and the remaining name is tried again; if a '+' is
- * prepended, an objectclass name is searched instead; if a
- * '!' is prepended, the objectclass name is negated.
+ * Convert a delimited string into a list of AttributeNames; add
+ * on to an existing list if it was given.  If the string is not
+ * a valid attribute name, if a '-' is prepended it is skipped
+ * and the remaining name is tried again; if a '@' (or '+') is
+ * prepended, an objectclass name is searched instead; if a '!'
+ * is prepended, the objectclass name is negated.
  * 
- * NOTE: currently, if a valid attribute name is not found,
- * the same string is also checked as valid objectclass name;
- * however, this behavior is deprecated.
+ * NOTE: currently, if a valid attribute name is not found, the
+ * same string is also checked as valid objectclass name; however,
+ * this behavior is deprecated.
  */
 AttributeName *
 str2anlist( AttributeName *an, char *in, const char *brkstr )
@@ -792,7 +795,8 @@ str2anlist( AttributeName *an, char *in, const char *brkstr )
                                        }
                                } break;
 
-                       case '+':
+                       case '@':
+                       case '+': /* (deprecated) */
                        case '!': {
                                        struct berval ocname;
                                        ocname.bv_len = anew->an_name.bv_len - 1;