ldb:tools - always check if ldb connection has been estabilished
[ira/wip.git] / source4 / lib / ldb / tools / ldbrename.c
index f225246cc78ea326cbea9033cf393aa59f3c9a29..518358c9a3f9eb0dc5615c61d73548cb76e2effa 100644 (file)
@@ -11,7 +11,7 @@
    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 2 of the License, or (at your option) any later version.
+   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
@@ -19,8 +19,7 @@
    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, write to the Free Software
-   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+   License along with this library; if not, see <http://www.gnu.org/licenses/>.
 */
 
 /*
  *  Author: Stefan Metzmacher
  */
 
-#include "includes.h"
-#include "ldb/include/ldb.h"
-#include "ldb/tools/cmdline.h"
+#include "ldb.h"
+#include "tools/cmdline.h"
 
-#ifdef _SAMBA_BUILD_
-#include "system/filesys.h"
-#endif
-
-static void usage(void)
+static void usage(struct ldb_context *ldb)
 {
        printf("Usage: ldbrename [<options>] <olddn> <newdn>\n");
-       printf("Options:\n");
-       printf("  -H ldb_url       choose the database (or $LDB_URL)\n");
-       printf("  -o options       pass options like modules to activate\n");
-       printf("              e.g: -o modules:timestamps\n");
-       printf("\n");
        printf("Renames records in a ldb\n\n");
+       ldb_cmdline_help(ldb, "ldbmodify", stdout);
        exit(1);
 }
 
 
- int main(int argc, const char **argv)
+int main(int argc, const char **argv)
 {
        struct ldb_context *ldb;
        int ret;
        struct ldb_cmdline *options;
-       const struct ldb_dn *dn1, *dn2;
+       struct ldb_dn *dn1, *dn2;
+       TALLOC_CTX *mem_ctx = talloc_new(NULL);
 
-       ldb = ldb_init(NULL);
+       ldb = ldb_init(mem_ctx, NULL);
+       if (ldb == NULL) {
+               return LDB_ERR_OPERATIONS_ERROR;
+       }
 
        options = ldb_cmdline_process(ldb, argc, argv, usage);
 
        if (options->argc < 2) {
-               usage();
+               usage(ldb);
        }
 
-       dn1 = ldb_dn_explode(ldb, options->argv[0]);
-       dn2 = ldb_dn_explode(ldb, options->argv[1]);
+       dn1 = ldb_dn_new(ldb, ldb, options->argv[0]);
+       dn2 = ldb_dn_new(ldb, ldb, options->argv[1]);
 
        ret = ldb_rename(ldb, dn1, dn2);
-       if (ret == 0) {
+       if (ret == LDB_SUCCESS) {
                printf("Renamed 1 record\n");
        } else  {
                printf("rename of '%s' to '%s' failed - %s\n", 
                        options->argv[0], options->argv[1], ldb_errstring(ldb));
        }
 
-       talloc_free(ldb);
+       talloc_free(mem_ctx);
        
        return ret;
 }