char textbuf[SLAP_TEXT_BUFLEN] = { '\0' };
size_t textlen = sizeof textbuf;
const char *progname = "slapadd";
+ int manage = 0;
struct berval csn;
struct berval maxcsn;
ID ctxcsn_id, id;
int ret;
struct berval bvtext;
- int i, checkvals;
- struct berval mc;
+ int checkvals;
+ char opbuf[OPERATION_BUFFER_SIZE];
+ Operation *op;
+
slap_tool_init( progname, SLAPADD, argc, argv );
+ memset( opbuf, 0, sizeof(opbuf) );
+ op = (Operation *)opbuf;
+
if( !be->be_entry_open ||
!be->be_entry_close ||
!be->be_entry_put )
break;
}
- if( global_schemacheck ) {
+ {
Attribute *sc = attr_find( e->e_attrs,
slap_schema.si_ad_structuralObjectClass );
Attribute *oc = attr_find( e->e_attrs,
break;
}
- attr_merge_one( e, slap_schema.si_ad_structuralObjectClass, &val, NULL );
+ attr_merge_one( e, slap_schema.si_ad_structuralObjectClass,
+ &val, NULL );
}
/* check schema */
- rc = entry_schema_check( be, e, NULL, &text, textbuf, textlen );
+ op->o_bd = be;
+
+ 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",
}
if ( SLAP_LASTMOD(be) ) {
- struct tm *ltm;
time_t now = slap_get_time();
char uuidbuf[ LDAP_LUTIL_UUIDSTR_BUFSIZE ];
struct berval vals[ 2 ];
nvals[1].bv_len = 0;
nvals[1].bv_val = NULL;
- ltm = gmtime(&now);
- lutil_gentime( timebuf, sizeof(timebuf), ltm );
-
csn.bv_len = lutil_csnstr( csnbuf, sizeof( csnbuf ), 0, 0 );
csn.bv_val = csnbuf;
timestamp.bv_val = timebuf;
- timestamp.bv_len = strlen(timebuf);
+ timestamp.bv_len = sizeof(timebuf);
+
+ slap_timestamp( &now, ×tamp );
if ( BER_BVISEMPTY( &be->be_rootndn ) ) {
BER_BVSTR( &name, SLAPD_ANONYMOUS );
if( continuemode ) continue;
break;
}
- }
-
- if ( verbose ) {
- if ( dryrun ) {
- fprintf( stderr, "added: \"%s\"\n",
- e->e_dn );
- } else {
+ if ( verbose )
fprintf( stderr, "added: \"%s\" (%08lx)\n",
e->e_dn, (long) id );
- }
+ } else {
+ if ( verbose )
+ fprintf( stderr, "added: \"%s\"\n",
+ e->e_dn );
}
-done:;
entry_free( e );
}