Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Joe Martin
OpenLDAP
Commits
aa73219c
Commit
aa73219c
authored
Feb 12, 2008
by
Quanah Gibson-Mount
Browse files
ITS#5374
parent
28b585b6
Changes
2
Hide whitespace changes
Inline
Side-by-side
CHANGES
View file @
aa73219c
...
...
@@ -4,6 +4,7 @@ OpenLDAP 2.3.41 Engineering
Fixed slapd idlcache on adds (ITS#5086)
Fixed slapd-bdb modrdn to same dn (ITS#5319)
Fixed slapd-bdb crash with modrdn (ITS#5358)
Fixed slapo-accesslog cleanup on successful response (ITS#5374)
Fixed syncrepl propagation of errors (ITS#5282)
OpenLDAP 2.3.40 Release (2007/12/25)
...
...
servers/slapd/overlays/accesslog.c
View file @
aa73219c
...
...
@@ -60,7 +60,6 @@ typedef struct log_info {
Filter
*
li_oldf
;
Entry
*
li_old
;
int
li_success
;
int
li_unlock
;
ldap_pvt_thread_mutex_t
li_op_mutex
;
ldap_pvt_thread_mutex_t
li_log_mutex
;
}
log_info
;
...
...
@@ -911,10 +910,17 @@ static int accesslog_response(Operation *op, SlapReply *rs) {
return
SLAP_CB_CONTINUE
;
if
(
lo
->
mask
&
LOG_OP_WRITES
)
{
slap_callback
*
cb
;
ldap_pvt_thread_mutex_lock
(
&
li
->
li_log_mutex
);
old
=
li
->
li_old
;
li
->
li_old
=
NULL
;
li
->
li_unlock
=
0
;
/* Disarm mod_cleanup */
for
(
cb
=
op
->
o_callback
->
sc_next
;
cb
;
cb
=
cb
->
sc_next
)
{
if
(
cb
->
sc_private
==
(
void
*
)
on
)
{
cb
->
sc_private
=
NULL
;
break
;
}
}
ldap_pvt_thread_mutex_unlock
(
&
li
->
li_op_mutex
);
}
...
...
@@ -1230,12 +1236,11 @@ accesslog_mod_cleanup( Operation *op, SlapReply *rs )
{
slap_callback
*
sc
=
op
->
o_callback
;
slap_overinst
*
on
=
sc
->
sc_private
;
log_info
*
li
=
on
->
on_bi
.
bi_private
;
op
->
o_callback
=
sc
->
sc_next
;
op
->
o_tmpfree
(
sc
,
op
->
o_tmpmemctx
);
if
(
li
->
li_unlock
)
{
if
(
on
)
{
BackendInfo
*
bi
=
op
->
o_bd
->
bd_info
;
op
->
o_bd
->
bd_info
=
(
BackendInfo
*
)
on
;
accesslog_response
(
op
,
rs
);
...
...
@@ -1251,18 +1256,15 @@ accesslog_op_mod( Operation *op, SlapReply *rs )
log_info
*
li
=
on
->
on_bi
.
bi_private
;
if
(
li
->
li_ops
&
LOG_OP_WRITES
)
{
slap_callback
*
cb
=
op
->
o_tmpalloc
(
sizeof
(
slap_callback
),
op
->
o_tmpmemctx
);
slap_callback
*
cb
=
op
->
o_tmpalloc
(
sizeof
(
slap_callback
),
op
->
o_tmpmemctx
)
,
*
cb2
;
cb
->
sc_cleanup
=
accesslog_mod_cleanup
;
cb
->
sc_response
=
NULL
;
cb
->
sc_private
=
on
;
cb
->
sc_next
=
op
->
o_callback
;
op
->
o_callback
=
cb
;
cb
->
sc_next
=
NULL
;
for
(
cb2
=
op
->
o_callback
;
cb2
->
sc_next
;
cb2
=
cb2
->
sc_next
);
cb2
->
sc_next
=
cb
;
/* FIXME: this needs to be a recursive mutex to allow
* overlays like refint to keep working.
*/
ldap_pvt_thread_mutex_lock
(
&
li
->
li_op_mutex
);
li
->
li_unlock
=
1
;
if
(
li
->
li_oldf
&&
(
op
->
o_tag
==
LDAP_REQ_DELETE
||
op
->
o_tag
==
LDAP_REQ_MODIFY
))
{
int
rc
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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