BTW, one optimization I intended to implement but haven't
the time is to allow:
struct berval bv = { 0, NULL }
struct berval *bvp = &bv;
rc = dnPretty( NULL, &dn, &bvp );
rc = dnNormalize( NULL, &dn, &bvp );
That is, allow call to provide, optionally, a
pre-allocated struct berval instead of relying
on the caller to malloc on up. Of course, in
some cases, the existing behavior is preferred.
Kurt