- AttributeType *sat;
- AttributeType *sat1;
- int code;
- char *errattr;
-
- if ( at->at_names && at->at_names[0] ) {
- errattr = at->at_names[0];
- } else {
- errattr = at->at_oid;
- }
- sat = (AttributeType *) ch_calloc( 1, sizeof(AttributeType) );
- memcpy( &sat->sat_atype, at, sizeof(LDAP_ATTRIBUTE_TYPE));
- if ( at->at_sup_oid ) {
- if ( (sat1 = at_find(at->at_sup_oid)) ) {
- sat->sat_sup = sat1;
- if ( at_append_to_list(sat, &sat1->sat_subtypes) ) {
- *err = errattr;
- return SLAP_SCHERR_OUTOFMEM;
- }
- } else {
- *err = at->at_sup_oid;
- return SLAP_SCHERR_ATTR_NOT_FOUND;
- }
- }
-
- if ( at->at_syntax_oid ) {
- if ( !strcmp(at->at_syntax_oid,
- "1.3.6.1.4.1.1466.115.121.1.15") ) {
- if ( at->at_equality_oid &&
- !strcmp(at->at_equality_oid,
- "1.3.6.1.4.1.1466.109.114.1") ) {
- sat->sat_syntax_compat = SYNTAX_CES;
- } else {
- sat->sat_syntax_compat = SYNTAX_CIS;
- }
- } else if ( !strcmp(at->at_syntax_oid,
- "1.3.6.1.4.1.1466.115.121.1.50") ) {
- sat->sat_syntax_compat = SYNTAX_CIS | SYNTAX_TEL;
- } else if ( !strcmp(at->at_syntax_oid,
- "1.3.6.1.4.1.1466.115.121.1.12") ) {
- sat->sat_syntax_compat = SYNTAX_CIS | SYNTAX_DN;
- } else if ( !strcmp(at->at_syntax_oid, "1.3.6.1.4.1.1466.115.121.1.5") ) {
- sat->sat_syntax_compat = SYNTAX_BIN;
- } else {
- sat->sat_syntax_compat = DEFAULT_SYNTAX;
- }
- } else {
- sat->sat_syntax_compat = DEFAULT_SYNTAX;
- }
-
- code = at_insert(sat,err);
- return code;
-}
-
-
-char *
-at_official_name( char * a_type )
-{
- AttributeType *atp;
-
- if ( (atp=at_find(a_type)) == NULL ) {
-
- return a_type;
-
- } else if ( atp->sat_names
- && atp->sat_names[0]
- && (*(atp->sat_names[0]) != '\0') ) {
-
- return atp->sat_names[0];
-
- } else if (atp->sat_oid && (*atp->sat_oid != '\0')) {
-
- return atp->sat_oid;
-
- } else {
-
- return a_type;
-
- }
-
-}/* char * at_official_name() */
-