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
c6052ac8
Commit
c6052ac8
authored
Aug 31, 2002
by
Kurt Zeilenga
Browse files
Add mr_usable_with_at() routine. Use both in generation
of rule uses, but also in test_filter_mra()
parent
5c61f55f
Changes
3
Hide whitespace changes
Inline
Side-by-side
servers/slapd/filterentry.c
View file @
c6052ac8
...
...
@@ -270,8 +270,7 @@ static int test_mra_filter(
int
rc
;
/* check if matching is appropriate */
if
(
strcmp
(
mra
->
ma_rule
->
smr_syntax
->
ssyn_oid
,
a
->
a_desc
->
ad_type
->
sat_syntax
->
ssyn_oid
)
!=
0
)
{
if
(
!
mr_usable_with_at
(
mra
->
ma_rule
,
a
->
a_desc
->
ad_type
))
{
continue
;
}
...
...
@@ -346,8 +345,7 @@ static int test_mra_filter(
const
char
*
text
=
NULL
;
/* check if matching is appropriate */
if
(
strcmp
(
mra
->
ma_rule
->
smr_syntax
->
ssyn_oid
,
ad
->
ad_type
->
sat_syntax
->
ssyn_oid
)
!=
0
)
{
if
(
!
mr_usable_with_at
(
mra
->
ma_rule
,
ad
->
ad_type
))
{
continue
;
}
...
...
servers/slapd/mr.c
View file @
c6052ac8
...
...
@@ -383,21 +383,9 @@ matching_rule_use_init( void )
at
=
NULL
;
for
(
at_start
(
&
at
);
at
;
at_next
(
&
at
)
)
{
if
(
at
->
sat_flags
&
SLAP_AT_HIDE
)
continue
;
if
(
mr
->
smr_usage
&
SLAP_MR_EXT
&&
(
mr
->
smr_syntax
==
at
->
sat_syntax
||
mr
==
at
->
sat_equality
||
mr
==
at
->
sat_approx
)
)
{
ldap_charray_add
(
&
applies_oids
,
at
->
sat_cname
.
bv_val
);
}
else
if
(
mr
->
smr_compat_syntaxes
)
{
int
i
;
for
(
i
=
0
;
mr
->
smr_compat_syntaxes
[
i
];
i
++
)
{
if
(
at
->
sat_syntax
==
mr
->
smr_compat_syntaxes
[
i
]
)
{
ldap_charray_add
(
&
applies_oids
,
at
->
sat_cname
.
bv_val
);
break
;
}
}
if
(
mr_usable_with_at
(
mr
,
at
))
{
ldap_charray_add
(
&
applies_oids
,
at
->
sat_cname
.
bv_val
);
}
}
...
...
@@ -437,6 +425,27 @@ matching_rule_use_init( void )
return
(
0
);
}
int
mr_usable_with_at
(
MatchingRule
*
mr
,
AttributeType
*
at
)
{
if
(
mr
->
smr_usage
&
SLAP_MR_EXT
&&
(
mr
->
smr_syntax
==
at
->
sat_syntax
||
mr
==
at
->
sat_equality
||
mr
==
at
->
sat_approx
)
)
{
return
1
;
}
if
(
mr
->
smr_compat_syntaxes
)
{
int
i
;
for
(
i
=
0
;
mr
->
smr_compat_syntaxes
[
i
];
i
++
)
{
if
(
at
->
sat_syntax
==
mr
->
smr_compat_syntaxes
[
i
]
)
{
return
1
;
}
}
}
return
0
;
}
#if defined( SLAPD_SCHEMA_DN )
...
...
servers/slapd/proto-slap.h
View file @
c6052ac8
...
...
@@ -630,6 +630,9 @@ LDAP_SLAPD_F (int) matching_rule_use_init LDAP_P(( void ));
LDAP_SLAPD_F
(
int
)
mr_schema_info
(
Entry
*
e
);
LDAP_SLAPD_F
(
int
)
mru_schema_info
(
Entry
*
e
);
LDAP_SLAPD_F
(
int
)
mr_usable_with_at
(
MatchingRule
*
mr
,
AttributeType
*
at
);
/*
* mra.c
*/
...
...
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