r12733: Merge ldap/ldb controls into main tree
[mdw/samba.git] / source4 / lib / ldb / tools / ldbsearch.c
index c493356405aaf3d602bf60880b9a1d90cb1181a6..a340e16d08c835a5206660055d6815f3f8225443 100644 (file)
@@ -35,6 +35,7 @@
 #include "includes.h"
 #include "ldb/include/ldb.h"
 #include "ldb/include/ldb_errors.h"
+#include "ldb/include/ldb_private.h"
 #include "ldb/tools/cmdline.h"
 
 #ifdef _SAMBA_BUILD_
@@ -55,12 +56,12 @@ static void usage(void)
        exit(1);
 }
 
-struct ldb_context *ldbsearch_ldb;
-
 static int do_compare_msg(struct ldb_message **el1,
-                         struct ldb_message **el2)
+                         struct ldb_message **el2,
+                         void *opaque)
 {
-       return ldb_dn_compare(ldbsearch_ldb, (*el1)->dn, (*el2)->dn);
+       struct ldb_context *ldb = talloc_get_type(opaque, struct ldb_context);
+       return ldb_dn_compare(ldb, (*el1)->dn, (*el2)->dn);
 }
 
 static int do_search(struct ldb_context *ldb,
@@ -81,10 +82,9 @@ static int do_search(struct ldb_context *ldb,
 
        printf("# returned %d records\n", ret);
 
-       ldbsearch_ldb = ldb;
        if (sort_attribs) {
-               qsort(result->msgs, ret, sizeof(struct ldb_message *),
-                               (comparison_fn_t)do_compare_msg);
+               ldb_qsort(result->msgs, ret, sizeof(struct ldb_message *),
+                         ldb, (ldb_qsort_cmp_fn_t)do_compare_msg);
        }
 
        for (i = 0; i < result->count; i++) {