X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fslapadd.c;h=11cf55f371a93a12a7b458070c4d9120079a2421;hb=72d2ee4d19ee76e7d81d402c4056ce665f797045;hp=b36208fdbe91f26ef6d99308293b1be7947e2cbb;hpb=e66b6188bb274c5f6f5592e4f2be4ea79e30eedb;p=openldap diff --git a/servers/slapd/slapadd.c b/servers/slapd/slapadd.c index b36208fdbe..11cf55f371 100644 --- a/servers/slapd/slapadd.c +++ b/servers/slapd/slapadd.c @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2005 The OpenLDAP Foundation. + * Copyright 1998-2006 The OpenLDAP Foundation. * Portions Copyright 1998-2003 Kurt D. Zeilenga. * Portions Copyright 2003 IBM Corporation. * All rights reserved. @@ -56,8 +56,8 @@ slapadd( int argc, char **argv ) Attribute *attr; Entry *ctxcsn_e; ID ctxcsn_id, id; + OperationBuffer opbuf; Operation *op; - char opbuf[OPERATION_BUFFER_SIZE]; int match; int ret; @@ -69,8 +69,8 @@ slapadd( int argc, char **argv ) slap_tool_init( progname, SLAPADD, argc, argv ); - memset( opbuf, 0, sizeof(opbuf) ); - op = (Operation *)opbuf; + memset( &opbuf, 0, sizeof(opbuf) ); + op = (Operation *) &opbuf; if( !be->be_entry_open || !be->be_entry_close || @@ -193,16 +193,18 @@ slapadd( int argc, char **argv ) /* check schema */ op->o_bd = be; - rc = entry_schema_check( op, e, NULL, manage, - &text, textbuf, textlen ); + if ( (slapMode & SLAP_TOOL_NO_SCHEMA_CHECK) == 0) { + rc = entry_schema_check( op, e, NULL, manage, + &text, textbuf, textlen ); - if( rc != LDAP_SUCCESS ) { - fprintf( stderr, "%s: dn=\"%s\" (line=%d): (%d) %s\n", - progname, e->e_dn, lineno, rc, text ); - rc = EXIT_FAILURE; - entry_free( e ); - if( continuemode ) continue; - break; + if( rc != LDAP_SUCCESS ) { + fprintf( stderr, "%s: dn=\"%s\" (line=%d): (%d) %s\n", + progname, e->e_dn, lineno, rc, text ); + rc = EXIT_FAILURE; + entry_free( e ); + if( continuemode ) continue; + break; + } } }