From 8420a36dc7fe72fb665e065b8673fa44ff1bbf21 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 5 Jul 2011 10:01:32 +1000 Subject: ldb: make ldb a top level library for Samba 4.0 Signed-off-by: Andrew Tridgell --- source4/lib/ldb/examples/ldbreader.c | 122 --------------------------------- source4/lib/ldb/examples/ldifreader.c | 125 ---------------------------------- 2 files changed, 247 deletions(-) delete mode 100644 source4/lib/ldb/examples/ldbreader.c delete mode 100644 source4/lib/ldb/examples/ldifreader.c (limited to 'source4/lib/ldb/examples') diff --git a/source4/lib/ldb/examples/ldbreader.c b/source4/lib/ldb/examples/ldbreader.c deleted file mode 100644 index 3496baf4ce..0000000000 --- a/source4/lib/ldb/examples/ldbreader.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - example code for the ldb database library - - Copyright (C) Brad Hards (bradh@frogmouth.net) 2005-2006 - - ** NOTE! The following LGPL license applies to the ldb - ** library. This does NOT imply that all of Samba is released - ** under the LGPL - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 3 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, see . -*/ - -/** \example ldbreader.c - -The code below shows a simple LDB application. - -It lists / dumps the records in a LDB database to standard output. - -*/ - -#include "ldb.h" - -/* - ldb_ldif_write takes a function pointer to a custom output - function. This version is about as simple as the output function can - be. In a more complex example, you'd likely be doing something with - the private data function (e.g. holding a file handle). -*/ -static int vprintf_fn(void *private_data, const char *fmt, ...) -{ - int retval; - va_list ap; - - va_start(ap, fmt); - /* We just write to standard output */ - retval = vprintf(fmt, ap); - va_end(ap); - /* Note that the function should return the number of - bytes written, or a negative error code */ - return retval; -} - -int main(int argc, const char **argv) -{ - struct ldb_context *ldb; - const char *expression = "(dn=*)"; - struct ldb_result *resultMsg; - int i; - - /* - This is the always the first thing you want to do in an LDB - application - initialise up the context structure. - - Note that you can use the context structure as a parent - for talloc allocations as well - */ - ldb = ldb_init(NULL, NULL); - - /* - We now open the database. In this example we just hard code the connection path. - - Also note that the database is being opened read-only. This means that the - call will fail unless the database already exists. - */ - if (LDB_SUCCESS != ldb_connect(ldb, "tdb://tdbtest.ldb", LDB_FLG_RDONLY, NULL) ){ - printf("Problem on connection\n"); - exit(-1); - } - - /* - At this stage we have an open database, and can start using it. It is opened - read-only, so a query is possible. - - We construct a search that just returns all the (sensible) contents. You can do - quite fine grained results with the LDAP search syntax, however it is a bit - confusing to start with. See RFC2254. - */ - if (LDB_SUCCESS != ldb_search(ldb, ldb, &resultMsg, - NULL, LDB_SCOPE_DEFAULT, NULL, - "%s", expression)) { - printf("Problem in search\n"); - exit(-1); - } - - printf("%i records returned\n", resultMsg->count); - - /* - We can now iterate through the results, writing them out - (to standard output) with our custom output routine as defined - at the top of this file - */ - for (i = 0; i < resultMsg->count; ++i) { - struct ldb_ldif ldifMsg; - - printf("Message: %i\n", i+1); - - ldifMsg.changetype = LDB_CHANGETYPE_NONE; - ldifMsg.msg = resultMsg->msgs[i]; - ldb_ldif_write(ldb, vprintf_fn, NULL, &ldifMsg); - } - - /* - There are two objects to clean up - the result from the - ldb_search() query, and the original ldb context. - */ - talloc_free(resultMsg); - - talloc_free(ldb); - - return 0; -} diff --git a/source4/lib/ldb/examples/ldifreader.c b/source4/lib/ldb/examples/ldifreader.c deleted file mode 100644 index dcd9daf812..0000000000 --- a/source4/lib/ldb/examples/ldifreader.c +++ /dev/null @@ -1,125 +0,0 @@ -/* - example code for the ldb database library - - Copyright (C) Brad Hards (bradh@frogmouth.net) 2005-2006 - - ** NOTE! The following LGPL license applies to the ldb - ** library. This does NOT imply that all of Samba is released - ** under the LGPL - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 3 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, see . -*/ - -/** \example ldifreader.c - -The code below shows a simple LDB application. - -It lists / dumps the entries in an LDIF file to standard output. - -*/ - -#include "ldb.h" - -/* - ldb_ldif_write takes a function pointer to a custom output - function. This version is about as simple as the output function can - be. In a more complex example, you'd likely be doing something with - the private data function (e.g. holding a file handle). -*/ -static int vprintf_fn(void *private_data, const char *fmt, ...) -{ - int retval; - va_list ap; - - va_start(ap, fmt); - /* We just write to standard output */ - retval = vprintf(fmt, ap); - va_end(ap); - /* Note that the function should return the number of - bytes written, or a negative error code */ - return retval; -} - -int main(int argc, const char **argv) -{ - struct ldb_context *ldb; - FILE *fileStream; - struct ldb_ldif *ldifMsg; - - if (argc != 2) { - printf("Usage %s filename.ldif\n", argv[0]); - exit(1); - } - - /* - This is the always the first thing you want to do in an LDB - application - initialise up the context structure. - - Note that you can use the context structure as a parent - for talloc allocations as well - */ - ldb = ldb_init(NULL, NULL); - - fileStream = fopen(argv[1], "r"); - if (0 == fileStream) { - perror(argv[1]); - exit(1); - } - - /* - We now work through the filestream to get each entry. - */ - while ( (ldifMsg = ldb_ldif_read_file(ldb, fileStream)) ) { - /* - Each message has a particular change type. For Add, - Modify and Delete, this will also appear in the - output listing (as changetype: add, changetype: - modify or changetype:delete, respectively). - */ - switch (ldifMsg->changetype) { - case LDB_CHANGETYPE_NONE: - printf("ChangeType: None\n"); - break; - case LDB_CHANGETYPE_ADD: - printf("ChangeType: Add\n"); - break; - case LDB_CHANGETYPE_MODIFY: - printf("ChangeType: Modify\n"); - break; - case LDB_CHANGETYPE_DELETE: - printf("ChangeType: Delete\n"); - break; - default: - printf("ChangeType: Unknown\n"); - } - - /* - We can now write out the results, using our custom - output routine as defined at the top of this file. - */ - ldb_ldif_write(ldb, vprintf_fn, NULL, ldifMsg); - - /* - Clean up the message - */ - ldb_ldif_read_free(ldb, ldifMsg); - } - - /* - Clean up the context - */ - talloc_free(ldb); - - return 0; -} -- cgit