From 7c78ec0e145064696552d750eaaa70f00a0882e8 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 12 Jul 2005 05:56:06 +0000 Subject: r8342: allow ldb_ldif_read_string() to continue in the string, so you can read multiple records (This used to be commit 4b11c00421b5152fd7d4be0be0db983bb310021d) --- source4/lib/gendb.c | 2 +- source4/lib/ldb/common/ldb_ldif.c | 9 ++++++--- source4/lib/ldb/include/ldb.h | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) (limited to 'source4') diff --git a/source4/lib/gendb.c b/source4/lib/gendb.c index de3e49e652..92bbd8155c 100644 --- a/source4/lib/gendb.c +++ b/source4/lib/gendb.c @@ -99,7 +99,7 @@ int gendb_add_ldif(struct ldb_context *ldb, const char *ldif_string) { struct ldb_ldif *ldif; int ret; - ldif = ldb_ldif_read_string(ldb, ldif_string); + ldif = ldb_ldif_read_string(ldb, &ldif_string); if (ldif == NULL) return -1; ret = ldb_add(ldb, ldif->msg); talloc_free(ldif); diff --git a/source4/lib/ldb/common/ldb_ldif.c b/source4/lib/ldb/common/ldb_ldif.c index 79ec857cbd..463bae483b 100644 --- a/source4/lib/ldb/common/ldb_ldif.c +++ b/source4/lib/ldb/common/ldb_ldif.c @@ -728,11 +728,14 @@ static int fgetc_string(void *private_data) return EOF; } -struct ldb_ldif *ldb_ldif_read_string(struct ldb_context *ldb, const char *s) +struct ldb_ldif *ldb_ldif_read_string(struct ldb_context *ldb, const char **s) { struct ldif_read_string_state state; - state.s = s; - return ldb_ldif_read(ldb, fgetc_string, &state); + struct ldb_ldif *ldif; + state.s = *s; + ldif = ldb_ldif_read(ldb, fgetc_string, &state); + *s = state.s; + return ldif; } diff --git a/source4/lib/ldb/include/ldb.h b/source4/lib/ldb/include/ldb.h index 1f642d3bff..b2468b6ecb 100644 --- a/source4/lib/ldb/include/ldb.h +++ b/source4/lib/ldb/include/ldb.h @@ -316,7 +316,7 @@ void ldb_ldif_read_free(struct ldb_context *ldb, struct ldb_ldif *); struct ldb_ldif *ldb_ldif_read(struct ldb_context *ldb, int (*fgetc_fn)(void *), void *private_data); struct ldb_ldif *ldb_ldif_read_file(struct ldb_context *ldb, FILE *f); -struct ldb_ldif *ldb_ldif_read_string(struct ldb_context *ldb, const char *s); +struct ldb_ldif *ldb_ldif_read_string(struct ldb_context *ldb, const char **s); int ldb_ldif_write_file(struct ldb_context *ldb, FILE *f, const struct ldb_ldif *msg); char *ldb_base64_encode(void *mem_ctx, const char *buf, int len); int ldb_base64_decode(char *s); -- cgit