s4: Patch for "libnet/libnet_samsync_ldb.c"
Matthias Dieter Wallnöfer
mdw at samba.org
Thu Dec 16 02:09:05 MST 2010
it's problematic since these "samdb_msg_*" calls are in use by some LDB
modules (rootdse, samldb, instancetype) and these expect to have LDAP
error codes returned.
For callers beside these it could make sense that the result code is
changed to NTSTATUS since they itself often return exactly this type.
All in all I don't think that it's clear which solution is better than
the other one, but I've thought about another idea: in
"ldb_msg_add_value" we make also use of the "errno" variable if we run
into a OOM. What would be if we enhance this and use it for
distinguishing between a generic and a OOM error in the LDAP error ->
NTSTATUS mapping function?
Jelmer Vernooij wrote:
> On Sat, 2010-12-11 at 12:01 +0100, Matthias Dieter Wallnöfer wrote:
>> Jelmer Vernooij wrote:
>>> On Tue, 2010-12-07 at 15:44 +0100, Matthias Dieter Wallnöfer wrote:
>>>> Regarding the other return values beside ERR_OPERATIONS_ERROR for out of
>>>> memory it's not so easy. Caller functions differ in behaviour regarding
>>>> NTSTATUS results - so I really thought it only to be used by msg_add*
>>>> calls and not for "ldb_add", "ldb_modify" ecc.
>>> Considering that, perhaps it would make more sense for the
>>> samdb_msg_add_* functions to return a NTSTATUS value directly?
>> then we cannot use them in the LDB modules anymore. Do you have another
> which LDB modules do you mean specifically, and why can't we use them
> there anymore?
More information about the samba-technical