]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slapauth.c
Use distribution hints in searches
[openldap] / servers / slapd / slapauth.c
index ec19742bd60930b1c8e23d66dc6b7299015b4c06..9b82e7db7079a53c4a9f0a61abc12289be64f9fb 100644 (file)
@@ -1,6 +1,7 @@
+/* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2004 The OpenLDAP Foundation.
+ * Copyright 2004-2009 The OpenLDAP Foundation.
  * Portions Copyright 2004 Pierangelo Masarati.
  * All rights reserved.
  *
@@ -80,16 +81,18 @@ slapauth( int argc, char **argv )
        int                     rc = EXIT_SUCCESS;
        const char              *progname = "slapauth";
        Connection              conn = {0};
-       char                    opbuf[OPERATION_BUFFER_SIZE];
+       OperationBuffer opbuf;
        Operation               *op;
+       void                    *thrctx;
 
        slap_tool_init( progname, SLAPAUTH, argc, argv );
 
        argv = &argv[ optind ];
        argc -= optind;
 
-       op = (Operation *)opbuf;
-       connection_fake_init( &conn, op, &conn );
+       thrctx = ldap_pvt_thread_pool_context();
+       connection_fake_init( &conn, &opbuf, thrctx );
+       op = &opbuf.ob_op;
 
        conn.c_sasl_bind_mech = mech;
 
@@ -166,7 +169,8 @@ destroy:;
        if ( !BER_BVISNULL( &authzID ) ) {
                op->o_tmpfree( authzID.bv_val, op->o_tmpmemctx );
        }
-       slap_tool_destroy();
+       if ( slap_tool_destroy())
+               rc = EXIT_FAILURE;
 
        return rc;
 }