summaryrefslogtreecommitdiff
path: root/source4/lib
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-07-12 05:56:06 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:20:08 -0500
commit7c78ec0e145064696552d750eaaa70f00a0882e8 (patch)
treec893bc90876914f65768d12e6df0ad6ef3c15c9b /source4/lib
parent9570e24df1397f31dbd7c8436928749da9fc378c (diff)
downloadsamba-7c78ec0e145064696552d750eaaa70f00a0882e8.tar.gz
samba-7c78ec0e145064696552d750eaaa70f00a0882e8.tar.bz2
samba-7c78ec0e145064696552d750eaaa70f00a0882e8.zip
r8342: allow ldb_ldif_read_string() to continue in the string, so you can
read multiple records (This used to be commit 4b11c00421b5152fd7d4be0be0db983bb310021d)
Diffstat (limited to 'source4/lib')
-rw-r--r--source4/lib/gendb.c2
-rw-r--r--source4/lib/ldb/common/ldb_ldif.c9
-rw-r--r--source4/lib/ldb/include/ldb.h2
3 files changed, 8 insertions, 5 deletions
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);