[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Getting more meaningful error out of back-config



On Monday 07 May 2007 21:26, Pierangelo Masarati wrote:
> Howard Chu wrote:
> > Ralf Haferkamp wrote:
> >> Hi,
> >>
> >> I'd like to improve the error messages that back-config returns via
> >> LDAP to the client. Currently in many case you only get back a very
> >> generic error messages. E.g. when trying to add a second monitor
> >> database you just get:
> >> Error code LDAP_OTHER with the diagnostic message set to
> >> "<olcDatabase> failed init". To find out what really went wrong you
> >> need to dig up the logfiles.
> >>
> >> One way to get more meaningful error messages to the client would be
> >> by adding an additional const char** text parameter to the _db_init
> >> functions (and probably some other of the BI_db_func() functions as
> >> well), similiar to what is done in many other case when error messages
> >> need to be passed to the caller.
> >>
> >> Does somebody have better ideas how to achieve this?
> >
> > That sounds like a good enough approach. Go ahead...
>
> What about passing a SlapReply *, or a specific type?  SlapReply already
> contains sr_err and sr_text, and other useful parameters that could be
> filled by functions for the purpose of being returned to a client (I can
> figure out possible uses of sr_matched and of sr_ctrls for future
> extensibility).  Probably, a REP_INTERNAL should be added to the REP_*
> enum, to clearly distinguish responses to internal operations not
> related to the protocol.

After having some time to look again at this I think the easiest approach 
would be to just pass the ConfigArgs pointer down to the BI_db_func functions 
(_db_init, _db_open and _db_close). That way they could directly print into 
the ca->msg field which finally ends up in sr_text of the SlapReply 
structure.

regards,
	Ralf

-- 
SUSE LINUX Products GmbH, Maxfeldstrasse 5, D-90409 Nuernberg
T: +49-911-74053-0
F: +49-911-74053575 - Ralf.Haferkamp@suse.com