From 521a726865b68efd2c922e3b3786be52cbc927a8 Mon Sep 17 00:00:00 2001 From: Noriko Hosoi Date: Wed, 25 Jan 2012 13:52:09 -0800 Subject: [PATCH] Trac Ticket 35 - Log not clear enough on schema errors https://fedorahosted.org/389/ticket/35 Fix description: Cryptic error message: dse - parsing dse entry [attributeTypes] is replaced with: dse_read_one_file - Parsing entry in file /path/to/schema/03bad.ldif failed . (lineno: ##) dse_read_one_file - Invalid section [attributeTypes: ...] --- ldap/servers/slapd/dse.c | 45 +++++++++++++++++++++++++++++++++++++-------- 1 files changed, 37 insertions(+), 8 deletions(-) diff --git a/ldap/servers/slapd/dse.c b/ldap/servers/slapd/dse.c index c4fa333..68b8787 100644 --- a/ldap/servers/slapd/dse.c +++ b/ldap/servers/slapd/dse.c @@ -725,6 +725,8 @@ dse_read_one_file(struct dse *pdse, const char *filename, Slapi_PBlock *pb, if(!done) { + int lineno = 1; + int lines = 0; int dont_check_dups = 0; int str2entry_flags = SLAPI_STR2ENTRY_EXPAND_OBJECTCLASSES | SLAPI_STR2ENTRY_NOT_WELL_FORMED_LDIF ; @@ -741,16 +743,34 @@ dse_read_one_file(struct dse *pdse, const char *filename, Slapi_PBlock *pb, rc= 1; /* assume we will succeed */ while (( entrystr = dse_read_next_entry( buf, &lastp )) != NULL ) { + char *p, *q; + char errbuf[256]; + size_t estrlen = strlen(entrystr); + size_t cpylen = + (estrlen