root/source4/torture/ldap/common.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. torture_ldap_bind
  2. torture_ldap_bind_sasl
  3. torture_ldap_connection
  4. torture_ldap_connection2
  5. torture_ldap_close
  6. torture_ldap_init

   1 /* 
   2    Unix SMB/CIFS mplementation.
   3    LDAP protocol helper functions for SAMBA
   4    
   5    Copyright (C) Stefan Metzmacher 2004
   6    Copyright (C) Simo Sorce 2004
   7     
   8    This program is free software; you can redistribute it and/or modify
   9    it under the terms of the GNU General Public License as published by
  10    the Free Software Foundation; either version 3 of the License, or
  11    (at your option) any later version.
  12    
  13    This program is distributed in the hope that it will be useful,
  14    but WITHOUT ANY WARRANTY; without even the implied warranty of
  15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16    GNU General Public License for more details.
  17    
  18    You should have received a copy of the GNU General Public License
  19    along with this program.  If not, see <http://www.gnu.org/licenses/>.
  20    
  21 */
  22 
  23 #include "includes.h"
  24 #include "libcli/ldap/ldap_client.h"
  25 #include "torture/smbtorture.h"
  26 #include "torture/ldap/proto.h"
  27 
  28 NTSTATUS torture_ldap_bind(struct ldap_connection *conn, const char *userdn, const char *password)
     /* [<][>][^][v][top][bottom][index][help] */
  29 {
  30         NTSTATUS status;
  31 
  32         status = ldap_bind_simple(conn, userdn, password);
  33         if (!NT_STATUS_IS_OK(status)) {
  34                 printf("Failed to bind with provided credentials - %s\n", 
  35                        nt_errstr(status));
  36         }
  37 
  38         return status;
  39 }
  40 
  41 NTSTATUS torture_ldap_bind_sasl(struct ldap_connection *conn, 
     /* [<][>][^][v][top][bottom][index][help] */
  42                                 struct cli_credentials *creds, 
  43                                 struct loadparm_context *lp_ctx)
  44 {
  45         NTSTATUS status;
  46 
  47         status = ldap_bind_sasl(conn, creds, lp_ctx);
  48         if (!NT_STATUS_IS_OK(status)) {
  49                 printf("Failed sasl bind with provided credentials - %s\n", 
  50                        nt_errstr(status));
  51         }
  52  
  53         return status;
  54 }
  55 
  56 /* open a ldap connection to a server */
  57 NTSTATUS torture_ldap_connection(struct torture_context *tctx, 
     /* [<][>][^][v][top][bottom][index][help] */
  58                                           struct ldap_connection **conn, 
  59                                           const char *url)
  60 {
  61         NTSTATUS status;
  62 
  63         if (!url) {
  64                 printf("You must specify a url string\n");
  65                 return NT_STATUS_INVALID_PARAMETER;
  66         }
  67 
  68         *conn = ldap4_new_connection(tctx, tctx->lp_ctx, tctx->ev);
  69 
  70         status = ldap_connect(*conn, url);
  71         if (!NT_STATUS_IS_OK(status)) {
  72                 printf("Failed to connect to ldap server '%s' - %s\n",
  73                        url, nt_errstr(status));
  74         }
  75 
  76         return status;
  77 }
  78 
  79 /* open a ldap connection to a server */
  80 NTSTATUS torture_ldap_connection2(struct torture_context *tctx, struct ldap_connection **conn, 
     /* [<][>][^][v][top][bottom][index][help] */
  81                                 const char *url, const char *userdn, const char *password)
  82 {
  83         NTSTATUS status;
  84 
  85         status = torture_ldap_connection(tctx, conn, url);
  86         NT_STATUS_NOT_OK_RETURN(status);
  87 
  88         status = ldap_bind_simple(*conn, userdn, password);
  89         if (!NT_STATUS_IS_OK(status)) {
  90                 printf("Failed a simple ldap bind - %s\n", ldap_errstr(*conn, tctx, status));
  91         }
  92  
  93         return status;
  94 }
  95 
  96 /* close an ldap connection to a server */
  97 NTSTATUS torture_ldap_close(struct ldap_connection *conn)
     /* [<][>][^][v][top][bottom][index][help] */
  98 {
  99         talloc_free(conn);
 100         return NT_STATUS_OK;
 101 }
 102 
 103 NTSTATUS torture_ldap_init(void)
     /* [<][>][^][v][top][bottom][index][help] */
 104 {
 105         struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "LDAP");
 106         torture_suite_add_simple_test(suite, "BENCH-CLDAP", torture_bench_cldap);
 107         torture_suite_add_simple_test(suite, "BASIC", torture_ldap_basic);
 108         torture_suite_add_simple_test(suite, "CLDAP", torture_cldap);
 109         torture_suite_add_simple_test(suite, "SCHEMA", torture_ldap_schema);
 110         torture_suite_add_simple_test(suite, "UPTODATEVECTOR", torture_ldap_uptodatevector);
 111 
 112         suite->description = talloc_strdup(suite, "LDAP and CLDAP tests");
 113 
 114         torture_register_suite(suite);
 115 
 116         return NT_STATUS_OK;
 117 }

/* [<][>][^][v][top][bottom][index][help] */