X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fslapadd.c;h=898f0347a1c1e14c37543ec0acaed3040aa3b944;hb=b8309b4cf83d71f4d8521ddcbd79c3c73638c1aa;hp=c03724002f8afc084dec626e8889184d1c3c933d;hpb=59ca2d198f454f764170470ed5c69b3c80ef4267;p=openldap diff --git a/servers/slapd/slapadd.c b/servers/slapd/slapadd.c index c03724002f..898f0347a1 100644 --- a/servers/slapd/slapadd.c +++ b/servers/slapd/slapadd.c @@ -71,6 +71,7 @@ slapadd( int argc, char **argv ) memset( &opbuf, 0, sizeof(opbuf) ); op = (Operation *) &opbuf; + op->o_hdr = (Opheader *)(op+1); if( !be->be_entry_open || !be->be_entry_close || @@ -109,11 +110,12 @@ slapadd( int argc, char **argv ) /* nextline is the line number of the end of the current entry */ for( lineno=1; ldif_read_record( ldiffp, &nextline, &buf, &lmax ); lineno=nextline+1 ) { + Entry *e; if ( lineno < jumpline ) continue; - Entry *e = str2entry2( buf, checkvals ); + e = str2entry2( buf, checkvals ); /* * Initialize text buffer @@ -162,8 +164,6 @@ slapadd( int argc, char **argv ) } { - Attribute *sc = attr_find( e->e_attrs, - slap_schema.si_ad_structuralObjectClass ); Attribute *oc = attr_find( e->e_attrs, slap_schema.si_ad_objectClass ); @@ -177,30 +177,11 @@ slapadd( int argc, char **argv ) break; } - if( sc == NULL ) { - struct berval val; - - rc = structural_class( oc->a_vals, &val, - NULL, &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; - } - - attr_merge_one( e, slap_schema.si_ad_structuralObjectClass, - &val, NULL ); - } - /* check schema */ op->o_bd = be; if ( (slapMode & SLAP_TOOL_NO_SCHEMA_CHECK) == 0) { - rc = entry_schema_check( op, e, NULL, manage, + rc = entry_schema_check( op, e, NULL, manage, 1, &text, textbuf, textlen ); if( rc != LDAP_SUCCESS ) {