<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Thanks to Nathan for his reviews and suggestions. Here's the
revised patch...<br>
<hr size="2" width="100%">Reduce the number of DN normalization<br>
<br>
. Adding SLAPI_TARGET_SDN as well as its macros,
SLAPI_SEARCH_TARGET_<br>
SDN SLAPI_ADD_TARGET_SDN, SLAPI_MODIFY_TARGET_SDN, etc.<br>
. Adding SLAPI_MODRDN_NEWSUPERIOR_SDN.<br>
. SLAPI_TARGET_DN and SLAPI_MODRDN_NEWSUPERIOR are kept for the
back-<br>
ward compatibility. But they are marked as deprecated. They are<br>
pointing dn in SLAPI_TARGET_SDN and SLAPI_MODRDN_NEWSUPERIOR_SDN,<br>
respectively.<br>
. slapi_pblock_set(.., SLAPI_TARGET_DN/SLAPI_MODRDN_NEWSUPERIOR, dn)<br>
takes dn string and reset Slapi_DN to
SLAPI_TARGET_SDN/SLAPI_MODRDN_<br>
NEWSUPERIOR_SDN. <br>
. slapi_pblock_get(.., SLAPI_TARGET_DN/SLAPI_MODRDN_NEWSUPERIOR,
&dn)<br>
retrieves dn out of SLAPI_TARGET_SDN/SLAPI_MODRDN_NEWSUPERIOR_SDN.<br>
. Replacing slapi_dn_normalization_ext call with generating Slapi_DN<br>
APIs (e.g., slapi_sdn_new_dn_...) as much as possible and stash it<br>
in pblock using SLAPI_TARGET_SDN.<br>
. When a normalized DN string is needed, get it using
slapi_sdn_get_[n]dn<br>
from the stashed Slapi_DN.<br>
. Introduced a new field to Slapi_DN. <br>
"udn" for the original DN; "dn" is a normalized DN; "ndn" is a
case-<br>
ignored normalized DN.<br>
Taking advantage of the knowledge of the stage of the DN, call the<br>
most efficient DN creating API (e.g., slapi_sdn_new_dn_... vs.<br>
slapi_sdn_new_normdn_... vs. slapi_sdn_new_ndn_...)<br>
<br>
Others <br>
. Replacing inefficient array assignment with memset (acl.c) and
memcpy (idl_common.c).<br>
. Fixing invalid memory access in LASDnsBuild
(lib/libaccess/lasdns.cpp).<br>
. Fixing compiler warnings. <br>
<br>
</body>
</html>