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
Joe Martin
OpenLDAP
Commits
e3fb5d2f
Commit
e3fb5d2f
authored
Mar 09, 2009
by
Quanah Gibson-Mount
Browse files
ITS#6006
parent
7af81733
Changes
3
Hide whitespace changes
Inline
Side-by-side
CHANGES
View file @
e3fb5d2f
...
...
@@ -12,6 +12,7 @@ OpenLDAP 2.4.16 Engineering
Fixed slapd syncrepl newCookie sync messages (ITS#5972)
Fixed slapd syncrepl multiple CSN propagation (ITS#5973)
Fixed slapd-bdb/hdb cachesize handling (ITS#5860)
Fixed slapd-bdb/hdb with slapcat with empty dn (ITS#6006)
Fixed slapd-ldap incorrect referral handling (ITS#6003,ITS#5916)
Fixed slapd-ldap/meta with broken AD results (ITS#5977)
Fixed slapd-ldap/meta with invalid attrs again (ITS#5959)
...
...
servers/slapd/back-bdb/init.c
View file @
e3fb5d2f
...
...
@@ -537,10 +537,23 @@ shm_retry:
rc
=
bdb_id2entry
(
be
,
NULL
,
0
,
&
e
);
}
if
(
!
e
)
{
struct
berval
gluebv
=
BER_BVC
(
"glue"
);
Operation
op
=
{
0
};
Opheader
ohdr
=
{
0
};
e
=
entry_alloc
();
e
->
e_id
=
0
;
ber_dupbv
(
&
e
->
e_name
,
(
struct
berval
*
)
&
slap_empty_bv
);
ber_dupbv
(
&
e
->
e_nname
,
(
struct
berval
*
)
&
slap_empty_bv
);
attr_merge_one
(
e
,
slap_schema
.
si_ad_objectClass
,
&
gluebv
,
NULL
);
attr_merge_one
(
e
,
slap_schema
.
si_ad_structuralObjectClass
,
&
gluebv
,
NULL
);
op
.
o_hdr
=
&
ohdr
;
op
.
o_bd
=
be
;
op
.
ora_e
=
e
;
op
.
o_dn
=
be
->
be_rootdn
;
op
.
o_ndn
=
be
->
be_rootndn
;
slap_add_opattrs
(
&
op
,
NULL
,
NULL
,
0
,
0
);
}
e
->
e_ocflags
=
SLAP_OC_GLUE
|
SLAP_OC__END
;
e
->
e_private
=
&
bdb
->
bi_cache
.
c_dntree
;
...
...
servers/slapd/back-bdb/modify.c
View file @
e3fb5d2f
...
...
@@ -363,7 +363,6 @@ bdb_modify( Operation *op, SlapReply *rs )
DB_TXN
*
ltid
=
NULL
,
*
lt2
;
struct
bdb_op_info
opinfo
=
{{{
0
}}};
Entry
dummy
=
{
0
};
int
fakeroot
=
0
;
DB_LOCK
lock
;
...
...
@@ -487,19 +486,6 @@ retry: /* transaction retry */
case
DB_LOCK_NOTGRANTED
:
goto
retry
;
case
DB_NOTFOUND
:
if
(
BER_BVISEMPTY
(
&
op
->
o_req_ndn
))
{
struct
berval
gluebv
=
BER_BVC
(
"glue"
);
e
=
ch_calloc
(
1
,
sizeof
(
Entry
));
e
->
e_name
.
bv_val
=
ch_strdup
(
""
);
ber_dupbv
(
&
e
->
e_nname
,
&
e
->
e_name
);
attr_merge_one
(
e
,
slap_schema
.
si_ad_objectClass
,
&
gluebv
,
NULL
);
attr_merge_one
(
e
,
slap_schema
.
si_ad_structuralObjectClass
,
&
gluebv
,
NULL
);
e
->
e_private
=
ei
;
fakeroot
=
1
;
rs
->
sr_err
=
0
;
}
break
;
case
LDAP_BUSY
:
rs
->
sr_text
=
"ldap server busy"
;
...
...
@@ -511,9 +497,7 @@ retry: /* transaction retry */
}
}
if
(
!
fakeroot
)
{
e
=
ei
->
bei_e
;
}
e
=
ei
->
bei_e
;
/* acquire and lock entry */
/* FIXME: dn2entry() should return non-glue entry */
...
...
@@ -676,19 +660,11 @@ retry: /* transaction retry */
}
else
{
/* may have changed in bdb_modify_internal() */
e
->
e_ocflags
=
dummy
.
e_ocflags
;
if
(
fakeroot
)
{
e
->
e_private
=
NULL
;
entry_free
(
e
);
e
=
NULL
;
attrs_free
(
dummy
.
e_attrs
);
}
else
{
rc
=
bdb_cache_modify
(
bdb
,
e
,
dummy
.
e_attrs
,
ltid
,
&
lock
);
switch
(
rc
)
{
case
DB_LOCK_DEADLOCK
:
case
DB_LOCK_NOTGRANTED
:
goto
retry
;
}
rc
=
bdb_cache_modify
(
bdb
,
e
,
dummy
.
e_attrs
,
ltid
,
&
lock
);
switch
(
rc
)
{
case
DB_LOCK_DEADLOCK
:
case
DB_LOCK_NOTGRANTED
:
goto
retry
;
}
dummy
.
e_attrs
=
NULL
;
...
...
Write
Preview
Markdown
is supported
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