/* $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
}
/*
- * 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;
}
/*
- * 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 )
}
} break;
- case '+':
+ case '@':
+ case '+': /* (deprecated) */
case '!': {
struct berval ocname;
ocname.bv_len = anew->an_name.bv_len - 1;