Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Nadezhda Ivanova
OpenLDAP
Commits
172e93bf
Commit
172e93bf
authored
Apr 04, 2003
by
Pierangelo Masarati
Browse files
normalize values only if required
parent
19dc4918
Changes
2
Hide whitespace changes
Inline
Side-by-side
servers/slapd/back-ldap/back-ldap.h
View file @
172e93bf
...
...
@@ -158,9 +158,6 @@ extern int suffix_massage_config( struct rewrite_info *info,
extern
int
ldap_dnattr_rewrite
(
struct
rewrite_info
*
rwinfo
,
BerVarray
a_vals
,
void
*
cookie
);
#endif
/* ENABLE_REWRITE */
int
ldap_build_entry
(
Operation
*
op
,
LDAPMessage
*
e
,
Entry
*
ent
,
struct
berval
*
bdn
,
int
private
);
LDAP_END_DECL
#endif
/* SLAPD_LDAP_H */
servers/slapd/back-ldap/search.c
View file @
172e93bf
...
...
@@ -50,6 +50,12 @@
#include
"lutil.h"
static
int
ldap_build_entry
(
Operation
*
op
,
LDAPMessage
*
e
,
Entry
*
ent
,
struct
berval
*
bdn
,
int
flags
);
#define LDAP_BUILD_ENTRY_PRIVATE 0x01
#define LDAP_BUILD_ENTRY_NORMALIZE 0x02
static
struct
berval
dummy
=
{
0
,
NULL
};
int
...
...
@@ -234,7 +240,8 @@ fail:;
Entry
ent
;
struct
berval
bdn
;
e
=
ldap_first_entry
(
lc
->
ld
,
res
);
if
(
ldap_build_entry
(
op
,
e
,
&
ent
,
&
bdn
,
1
)
==
LDAP_SUCCESS
)
{
if
(
ldap_build_entry
(
op
,
e
,
&
ent
,
&
bdn
,
LDAP_BUILD_ENTRY_PRIVATE
)
==
LDAP_SUCCESS
)
{
Attribute
*
a
;
rs
->
sr_entry
=
&
ent
;
rs
->
sr_attrs
=
op
->
oq_search
.
rs_attrs
;
...
...
@@ -379,13 +386,13 @@ finish:;
return
rc
;
}
int
static
int
ldap_build_entry
(
Operation
*
op
,
LDAPMessage
*
e
,
Entry
*
ent
,
struct
berval
*
bdn
,
int
private
int
flags
)
{
struct
ldapinfo
*
li
=
(
struct
ldapinfo
*
)
op
->
o_bd
->
be_private
;
...
...
@@ -395,6 +402,10 @@ ldap_build_entry(
struct
berval
*
bv
;
const
char
*
text
;
int
last
;
int
private
=
flags
&
LDAP_BUILD_ENTRY_PRIVATE
;
#ifdef SLAP_NVALUES
int
normalize
=
flags
&
LDAP_BUILD_ENTRY_NORMALIZE
;
#endif
/* SLAP_NVALUES */
/* safe assumptions ... */
assert
(
ent
);
...
...
@@ -618,22 +629,26 @@ ldap_build_entry(
next_attr:
;
#ifdef SLAP_NVALUES
if
(
last
&&
attr
->
a_desc
->
ad_type
->
sat_equality
&&
attr
->
a_desc
->
ad_type
->
sat_equality
->
smr_normalize
)
{
int
i
;
attr
->
a_nvals
=
ch_malloc
((
last
+
1
)
*
sizeof
(
struct
berval
));
for
(
i
=
0
;
i
<
last
;
i
++
)
{
attr
->
a_desc
->
ad_type
->
sat_equality
->
smr_normalize
(
SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX
,
attr
->
a_desc
->
ad_type
->
sat_syntax
,
attr
->
a_desc
->
ad_type
->
sat_equality
,
&
attr
->
a_vals
[
i
],
&
attr
->
a_nvals
[
i
]
);
if
(
normalize
)
{
if
(
last
&&
attr
->
a_desc
->
ad_type
->
sat_equality
&&
attr
->
a_desc
->
ad_type
->
sat_equality
->
smr_normalize
)
{
int
i
;
attr
->
a_nvals
=
ch_malloc
((
last
+
1
)
*
sizeof
(
struct
berval
));
for
(
i
=
0
;
i
<
last
;
i
++
)
{
attr
->
a_desc
->
ad_type
->
sat_equality
->
smr_normalize
(
SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX
,
attr
->
a_desc
->
ad_type
->
sat_syntax
,
attr
->
a_desc
->
ad_type
->
sat_equality
,
&
attr
->
a_vals
[
i
],
&
attr
->
a_nvals
[
i
]
);
}
attr
->
a_nvals
[
i
].
bv_val
=
NULL
;
attr
->
a_nvals
[
i
].
bv_len
=
0
;
}
else
{
attr
->
a_nvals
=
attr
->
a_vals
;
}
attr
->
a_nvals
[
i
].
bv_val
=
NULL
;
attr
->
a_nvals
[
i
].
bv_len
=
0
;
}
else
{
attr
->
a_nvals
=
attr
->
a_vals
;
attr
->
a_nvals
=
NULL
;
}
#endif
*
attrp
=
attr
;
...
...
@@ -753,7 +768,7 @@ ldap_back_entry_get(
*
ent
=
ch_calloc
(
1
,
sizeof
(
Entry
));
rc
=
ldap_build_entry
(
op
,
e
,
*
ent
,
&
bdn
,
0
);
rc
=
ldap_build_entry
(
op
,
e
,
*
ent
,
&
bdn
,
LDAP_BUILD_ENTRY_NORMALIZE
);
if
(
rc
!=
LDAP_SUCCESS
)
{
ch_free
(
*
ent
);
...
...
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