Kamen Mazdrashki kamen.mazdrashki at
Wed Nov 11 14:16:40 MST 2009

On Wed, Nov 11, 2009 at 22:53, Andrew Bartlett <abartlet at> wrote:
> On Wed, 2009-11-11 at 15:04 +0200, Kamen Mazdrashki wrote:
>> Main purpose of _drs_util_verify_attids() is to verify decoded OID
>> is real one - i.e. decoding ATTID based on drsuapi_prefixMap leads
>> to an OID that actually exists.
> Doesn't loading the schema already check that?  (If not, should we not
> do the checks there?).
No. _drs_util_verify_attids() is to verify ATTIDs got from GetNCChanges
are properly decoded using the prefixMap we got from GetNCChanges.
Which helped me to find out w2k8-r2 does not make same ATTIDs as
described in MD-DRSR.pdf.

>> So please, don't remove it.
>> The cache i've implemented lowers execution time significantly.
> And this cache is simply a duplicate of the schema we already load.  If
> we must keep this code, then at least let us use the schema, which does
> a binary, rather than a linear, search of the possible names.
Yes, you are right. 
By the time I was implementing this tiny cache I wasn't aware you are
implementing schema loading - hence we collide :).

> But I still can't see how it validates anything extra.
As I noted above - it verifies ATTIDs received against the drsuapi_prefixMap
we receive.
The whole ideia was that DSSYNC test to use alternative implementation
for "drsuapi_prefixMap  + ATTID => OID" encoding/decoding so that we
can catch regressions in dsdb implementation.

Kamen Mazdrashki
kamen.mazdrashki at

More information about the samba-technical mailing list