Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
openldap
OpenLDAP
Commits
32399d9b
Commit
32399d9b
authored
Feb 27, 2003
by
Kurt Zeilenga
Browse files
axe mr_ptr in favor or schema_prep
parent
82c403cb
Changes
3
Hide whitespace changes
Inline
Side-by-side
servers/slapd/schema_init.c
View file @
32399d9b
...
...
@@ -87,21 +87,6 @@
#define telephoneNumberSubstringsIndexer caseIgnoreIA5SubstringsIndexer
#define telephoneNumberSubstringsFilter caseIgnoreIA5SubstringsFilter
static
MatchingRule
*
caseExactMatchingRule
;
static
MatchingRule
*
caseExactSubstringsMatchingRule
;
static
MatchingRule
*
integerFirstComponentMatchingRule
;
static
const
struct
MatchingRulePtr
{
const
char
*
oid
;
MatchingRule
**
mr
;
}
mr_ptr
[]
=
{
/* must match OIDs below */
{
"2.5.13.5"
,
&
caseExactMatchingRule
},
{
"2.5.13.7"
,
&
caseExactSubstringsMatchingRule
},
{
"2.5.13.29"
,
&
integerFirstComponentMatchingRule
}
};
static
char
*
bvcasechr
(
struct
berval
*
bv
,
unsigned
char
c
,
ber_len_t
*
len
)
{
ber_len_t
i
;
...
...
@@ -1102,7 +1087,7 @@ caseExactIgnoreSubstringsMatch(
char
*
nav
=
NULL
;
unsigned
casefold
;
casefold
=
(
mr
!=
caseExactSubstringsMatch
ingRule
)
casefold
=
(
mr
!=
slap_schema
.
si_mr_
caseExactSubstringsMatch
)
?
LDAP_UTF8_CASEFOLD
:
LDAP_UTF8_NOCASEFOLD
;
if
(
UTF8bvnormalize
(
value
,
&
left
,
casefold
)
==
NULL
)
{
...
...
@@ -1272,7 +1257,7 @@ static int caseExactIgnoreIndexer(
slen
=
syntax
->
ssyn_oidlen
;
mlen
=
mr
->
smr_oidlen
;
casefold
=
(
mr
!=
caseExactMatch
ingRule
)
casefold
=
(
mr
!=
slap_schema
.
si_mr_
caseExactMatch
)
?
LDAP_UTF8_CASEFOLD
:
LDAP_UTF8_NOCASEFOLD
;
for
(
i
=
0
;
values
[
i
].
bv_val
!=
NULL
;
i
++
)
{
...
...
@@ -1349,7 +1334,7 @@ static int caseExactIgnoreFilter(
slen
=
syntax
->
ssyn_oidlen
;
mlen
=
mr
->
smr_oidlen
;
casefold
=
(
mr
!=
caseExactMatch
ingRule
)
casefold
=
(
mr
!=
slap_schema
.
si_mr_
caseExactMatch
)
?
LDAP_UTF8_CASEFOLD
:
LDAP_UTF8_NOCASEFOLD
;
UTF8bvnormalize
(
(
struct
berval
*
)
assertedValue
,
&
value
,
casefold
);
...
...
@@ -1415,7 +1400,7 @@ static int caseExactIgnoreSubstringsIndexer(
/* we should have at least one value at this point */
assert
(
i
>
0
);
casefold
=
(
mr
!=
caseExactSubstringsMatch
ingRule
)
casefold
=
(
mr
!=
slap_schema
.
si_mr_
caseExactSubstringsMatch
)
?
LDAP_UTF8_CASEFOLD
:
LDAP_UTF8_NOCASEFOLD
;
tvalues
=
ch_malloc
(
sizeof
(
struct
berval
)
*
(
i
+
1
)
);
...
...
@@ -1616,7 +1601,7 @@ static int caseExactIgnoreSubstringsFilter(
struct
berval
*
value
;
struct
berval
digest
;
casefold
=
(
mr
!=
caseExactSubstringsMatch
ingRule
)
casefold
=
(
mr
!=
slap_schema
.
si_mr_
caseExactSubstringsMatch
)
?
LDAP_UTF8_CASEFOLD
:
LDAP_UTF8_NOCASEFOLD
;
sa
=
UTF8SubstringsassertionNormalize
(
assertedValue
,
casefold
);
...
...
@@ -1875,7 +1860,7 @@ integerMatch(
/* Skip leading space/sign/zeroes, and get the sign of the *value number */
v
=
value
->
bv_val
;
vlen
=
value
->
bv_len
;
if
(
mr
==
integerFirstComponentMatch
ingRule
)
{
if
(
mr
==
slap_schema
.
si_mr_
integerFirstComponentMatch
)
{
char
*
tmp
=
memchr
(
v
,
'$'
,
vlen
);
if
(
tmp
)
vlen
=
tmp
-
v
;
...
...
@@ -4847,7 +4832,7 @@ slap_schema_init( void )
mrule_defs
[
i
].
mrd_compat_syntaxes
==
NULL
)
{
fprintf
(
stderr
,
"slap_schema_init: I
n
goring unusable matching rule %s
\n
"
,
"slap_schema_init: Ig
n
oring unusable matching rule %s
\n
"
,
mrule_defs
[
i
].
mrd_desc
);
continue
;
}
...
...
@@ -4862,9 +4847,6 @@ slap_schema_init( void )
}
}
for
(
i
=
0
;
i
<
(
int
)(
sizeof
(
mr_ptr
)
/
sizeof
(
mr_ptr
[
0
]));
i
++
)
*
mr_ptr
[
i
].
mr
=
mr_find
(
mr_ptr
[
i
].
oid
);
res
=
slap_schema_load
();
schema_init_done
=
1
;
return
res
;
...
...
@@ -4877,8 +4859,6 @@ schema_destroy( void )
oidm_destroy
();
oc_destroy
();
at_destroy
();
for
(
i
=
0
;
i
<
(
int
)(
sizeof
(
mr_ptr
)
/
sizeof
(
mr_ptr
[
0
]));
i
++
)
*
mr_ptr
[
i
].
mr
=
NULL
;
mr_destroy
();
mru_destroy
();
syn_destroy
();
...
...
servers/slapd/schema_prep.c
View file @
32399d9b
...
...
@@ -796,10 +796,17 @@ static struct slap_schema_mr_map {
char
*
ssmm_name
;
size_t
ssmm_offset
;
}
mr_map
[]
=
{
{
"caseExactMatch"
,
offsetof
(
struct
slap_internal_schema
,
si_mr_caseExactMatch
)
},
{
"caseExactSubstringsMatch"
,
offsetof
(
struct
slap_internal_schema
,
si_mr_caseExactSubstringsMatch
)
},
{
"distinguishedNameMatch"
,
offsetof
(
struct
slap_internal_schema
,
si_mr_distinguishedNameMatch
)
},
{
"integerMatch"
,
offsetof
(
struct
slap_internal_schema
,
si_mr_integerMatch
)
},
{
"integerFirstComponentMatch"
,
offsetof
(
struct
slap_internal_schema
,
si_mr_integerFirstComponentMatch
)
},
{
NULL
,
0
}
};
...
...
servers/slapd/slap.h
View file @
32399d9b
...
...
@@ -790,7 +790,10 @@ struct slap_internal_schema {
/* Matching Rules */
MatchingRule
*
si_mr_distinguishedNameMatch
;
MatchingRule
*
si_mr_caseExactMatch
;
MatchingRule
*
si_mr_caseExactSubstringsMatch
;
MatchingRule
*
si_mr_integerMatch
;
MatchingRule
*
si_mr_integerFirstComponentMatch
;
/* Syntaxes */
Syntax
*
si_syn_octetString
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment