Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Nadezhda Ivanova
OpenLDAP
Commits
bd5c9628
Commit
bd5c9628
authored
Aug 29, 2002
by
Kurt Zeilenga
Browse files
Lastmod attributes
parent
a7768961
Changes
2
Hide whitespace changes
Inline
Side-by-side
servers/slapd/tools/Makefile.in
View file @
bd5c9628
...
...
@@ -34,7 +34,7 @@ PROGRAMS=slapadd slapcat slapindex slappasswd
SRCS
=
mimic.c slapcommon.c
\
slapadd.c slapcat.c slapindex.c slappasswd.c
SLAPD_OBJS
=
../config.o ../ch_malloc.o ../backend.o
../charray.o
\
SLAPD_OBJS
=
../config.o ../ch_malloc.o ../backend.o
\
../module.o ../aclparse.o ../filterentry.o ../schema.o
\
../schema_check.o ../schema_init.o ../schema_prep.o
\
../schemaparse.o ../ad.o ../at.o ../mr.o ../oc.o
\
...
...
servers/slapd/tools/slapadd.c
View file @
bd5c9628
...
...
@@ -16,6 +16,7 @@
#include
<lber.h>
#include
<ldif.h>
#include
<lutil.h>
#include
"slapcommon.h"
...
...
@@ -99,7 +100,7 @@ main( int argc, char **argv )
break
;
}
{
if
(
global_schemacheck
)
{
Attribute
*
sc
=
attr_find
(
e
->
e_attrs
,
slap_schema
.
si_ad_structuralObjectClass
);
Attribute
*
oc
=
attr_find
(
e
->
e_attrs
,
...
...
@@ -118,13 +119,12 @@ main( int argc, char **argv )
if
(
sc
==
NULL
)
{
struct
berval
vals
[
2
];
/* int ret = */
structural_class
(
oc
->
a_vals
,
vals
,
rc
=
structural_class
(
oc
->
a_vals
,
vals
,
NULL
,
&
text
,
textbuf
,
textlen
);
if
(
vals
[
0
].
bv_len
==
0
)
{
fprintf
(
stderr
,
"%s: dn=
\"
%s
\"
(line=%d): %s
\n
"
,
progname
,
e
->
e_dn
,
lineno
,
text
);
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
;
...
...
@@ -135,16 +135,13 @@ main( int argc, char **argv )
attr_merge
(
e
,
slap_schema
.
si_ad_structuralObjectClass
,
vals
);
}
}
if
(
global_schemacheck
)
{
/* check schema */
rc
=
entry_schema_check
(
be
,
e
,
NULL
,
&
text
,
textbuf
,
textlen
);
if
(
rc
!=
LDAP_SUCCESS
)
{
fprintf
(
stderr
,
"%s: dn=
\"
%s
\"
(line=%d): %s
\n
"
,
progname
,
e
->
e_dn
,
lineno
,
text
);
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
;
...
...
@@ -152,6 +149,88 @@ main( int argc, char **argv )
}
}
if
(
SLAP_LASTMOD
(
be
)
)
{
struct
tm
*
ltm
;
time_t
now
=
slap_get_time
();
char
uuidbuf
[
40
];
struct
berval
vals
[
2
];
struct
berval
name
,
timestamp
,
csn
;
char
timebuf
[
22
];
char
csnbuf
[
64
];
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
);
if
(
be
->
be_rootndn
.
bv_len
==
0
)
{
name
.
bv_val
=
SLAPD_ANONYMOUS
;
name
.
bv_len
=
sizeof
(
SLAPD_ANONYMOUS
)
-
1
;
}
else
{
name
=
be
->
be_rootndn
;
}
if
(
attr_find
(
e
->
e_attrs
,
slap_schema
.
si_ad_entryUUID
)
==
NULL
)
{
vals
[
0
].
bv_len
=
lutil_uuidstr
(
uuidbuf
,
sizeof
(
uuidbuf
)
);
vals
[
0
].
bv_val
=
uuidbuf
;
vals
[
1
].
bv_len
=
0
;
vals
[
1
].
bv_val
=
NULL
;
attr_merge
(
e
,
slap_schema
.
si_ad_entryUUID
,
vals
);
}
if
(
attr_find
(
e
->
e_attrs
,
slap_schema
.
si_ad_creatorsName
)
==
NULL
)
{
ber_dupbv
(
&
vals
[
0
],
&
name
);
vals
[
1
].
bv_len
=
0
;
vals
[
1
].
bv_val
=
NULL
;
attr_merge
(
e
,
slap_schema
.
si_ad_creatorsName
,
vals
);
}
if
(
attr_find
(
e
->
e_attrs
,
slap_schema
.
si_ad_modifiersName
)
==
NULL
)
{
ber_dupbv
(
&
vals
[
0
],
&
name
);
vals
[
1
].
bv_len
=
0
;
vals
[
1
].
bv_val
=
NULL
;
attr_merge
(
e
,
slap_schema
.
si_ad_modifiersName
,
vals
);
}
if
(
attr_find
(
e
->
e_attrs
,
slap_schema
.
si_ad_createTimestamp
)
==
NULL
)
{
ber_dupbv
(
&
vals
[
0
],
&
timestamp
);
vals
[
1
].
bv_len
=
0
;
vals
[
1
].
bv_val
=
NULL
;
attr_merge
(
e
,
slap_schema
.
si_ad_createTimestamp
,
vals
);
}
if
(
attr_find
(
e
->
e_attrs
,
slap_schema
.
si_ad_modifyTimestamp
)
==
NULL
)
{
ber_dupbv
(
&
vals
[
0
],
&
timestamp
);
vals
[
1
].
bv_len
=
0
;
vals
[
1
].
bv_val
=
NULL
;
attr_merge
(
e
,
slap_schema
.
si_ad_modifyTimestamp
,
vals
);
}
if
(
attr_find
(
e
->
e_attrs
,
slap_schema
.
si_ad_entryCSN
)
==
NULL
)
{
ber_dupbv
(
&
vals
[
0
],
&
csn
);
vals
[
1
].
bv_len
=
0
;
vals
[
1
].
bv_val
=
NULL
;
attr_merge
(
e
,
slap_schema
.
si_ad_entryCSN
,
vals
);
}
}
if
(
!
dryrun
)
{
ID
id
=
be
->
be_entry_put
(
be
,
e
,
&
bvtext
);
if
(
id
==
NOID
)
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment