Syntax *syn;
int code;
char *cname;
+ LDAP_SCHEMA_EXTENSION_ITEM **ext;
if ( at->at_names && at->at_names[0] ) {
cname = at->at_names[0];
sat->sat_equality = sat->sat_sup->sat_equality;
sat->sat_ordering = sat->sat_sup->sat_ordering;
sat->sat_substr = sat->sat_sup->sat_substr;
+ sat->sat_binary = sat->sat_sup->sat_binary;
+ sat->sat_not_h_r = sat->sat_sup->sat_not_h_r;
}
if ( at->at_syntax_oid ) {
}
}
+ if ( sat->sat_extensions ) {
+ for ( ext = sat->sat_extensions; *ext; ext++ ) {
+ if ( strcmp((*ext)->lsei_name, "X-BINARY-TRANSFER-REQUIRED") == 0 &&
+ (*ext)->lsei_values &&
+ (*ext)->lsei_values[0] &&
+ strcasecmp((*ext)->lsei_values[0], "true") == 0 ) {
+ sat->sat_binary = 1;
+ } else if ( strcmp((*ext)->lsei_name, "X-NOT-HUMAN-READABLE") == 0 &&
+ (*ext)->lsei_values &&
+ (*ext)->lsei_values[0] &&
+ strcasecmp((*ext)->lsei_values[0], "true") == 0 ) {
+ sat->sat_not_h_r = 1;
+ }
+ }
+ }
+
code = at_insert(sat,err);
return code;
}
MatchingRule *sat_ordering;
MatchingRule *sat_substr;
Syntax *sat_syntax;
+ int sat_binary;
+ int sat_not_h_r;
#ifndef SLAPD_SCHEMA_NOT_COMPAT
/* The next one is created to help in the transition */
int sat_syntax_compat;
#define is_at_single_value(at) ((at)->sat_single_value)
#define is_at_collective(at) ((at)->sat_collective)
#define is_at_no_user_mod(at) ((at)->sat_no_user_mod)
+#define is_at_binary(at) ((at)->sat_binary)
+#define is_at_h_r(at) ((at)->sat_not_h_r == 0)
typedef struct slap_object_class {
LDAP_OBJECT_CLASS soc_oclass;