ldb error codes
Stefan Metzmacher
metze at samba.org
Mon Oct 31 07:37:26 GMT 2005
On Mon, Oct 31, 2005 at 11:58:20AM +1100, tridge at samba.org wrote:
> So I have a few possible proposals for fixing this:
>
> 1) change the sign of the LDB_ERR* values, and make all functions
> then return a ldb error value. For ldb_search() if the value is >=
> 0 then its a search count, if its < 0 then its an error code. Not
> pretty, but requires very little code modification.
enum's can't take negative values on AIX, so we would need to fallback
to defines, and gdb won't display the error names...
>
> 2) change ldb_search() to only return a error code, and add a
> ldb_count_messages() function. This requires changing all existing
> calls to ldb_search(). We'd also have to ensure that all backends
> NULL terminate the result list, as otherwise ldb_count_messages()
> would not be possible to implemenet.
I don't really like this, as we need to calculate the message count twice,
and when we have 1000 messages it would be 1000 cpu cycles in the for()-loop
per request, I think we should avoid this, even when modern hardware should be fast for this.
> 3) we could have a ldb_errorcode() function that returns the last
> error code.
I think that would be the easiest solution, and I would like to use it.
metze
More information about the samba-technical
mailing list