#include "includes.h"
#include "lib/events/events.h"
-#include "lib/ldb/include/ldb.h"
-#include "lib/ldb/include/ldb_errors.h"
+#include <ldb.h>
+#include <ldb_errors.h>
#include "ldb_wrap.h"
#include "param/param.h"
#include "lib/cmdline/popt_common.h"
+#include "libcli/ldap/ldap_client.h"
#include "torture/smbtorture.h"
-#include "torture/local/proto.h"
+#include "torture/ldap/proto.h"
#include <ctype.h>
+
bool torture_ldap_sort(struct torture_context *torture)
{
-
struct ldb_context *ldb;
bool ret = false;
struct ldb_server_sort_control **control;
struct ldb_request *req;
struct ldb_result *ctx;
- struct ldb_val* prev = NULL;
+ struct ldb_val *prev = NULL;
const char *prev_txt = NULL;
int prev_len = 0;
- struct ldb_val* cur = NULL;
+ struct ldb_val *cur = NULL;
const char *cur_txt = NULL;
int cur_len = 0;
- struct ldb_dn* dn;
+ struct ldb_dn *dn;
/* TALLOC_CTX* ctx;*/
ldb = ldb_wrap_connect(torture, torture->ev, torture->lp_ctx, url,
NULL,
- cmdline_credentials,
- 0, NULL);
+ popt_get_cmdline_credentials(),
+ 0);
torture_assert(torture, ldb, "Failed to make LDB connection to target");
ctx = talloc_zero(ldb, struct ldb_result);
control[0]->reverse = 0;
control[1] = NULL;
- dn = ldb_get_root_basedn(ldb);
+ dn = ldb_get_default_basedn(ldb);
ldb_dn_add_child_fmt(dn, "cn=users");
ret = ldb_build_search_req(&req, ldb, ctx,
dn,
for (i=0;i<ctx->count;i++) {
msg = ctx->msgs[i];
elem = ldb_msg_find_element(msg,"cn");
+ torture_assert_not_null(torture, elem, "msg lacks CN");
cur = elem->values;
torture_comment(torture, "cn: %s\n",cur->data);
if (prev != NULL)
{
/* Do only the ascii case right now ... */
- cur_txt=cur->data;
- cur_len=cur->length;
- prev_txt=prev->data;
- prev_len=prev->length;
+ cur_txt = (const char *) cur->data;
+ cur_len = cur->length;
+ prev_txt = (const char *) prev->data;
+ prev_len = prev->length;
/* Remove leading whitespace as the sort function do so ... */
while ( cur_txt[0] == cur_txt[1] ) { cur_txt++; cur_len--;}
while ( prev_txt[0] == prev_txt[1] ) { prev_txt++; prev_len--;}