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
741a6e11
Commit
741a6e11
authored
Dec 11, 2007
by
Quanah Gibson-Mount
Browse files
ITS#5161
parent
28987a69
Changes
2
Hide whitespace changes
Inline
Side-by-side
CHANGES
View file @
741a6e11
...
...
@@ -4,6 +4,7 @@ OpenLDAP 2.3.40 Engineering
Fixed slapd-bdb/hdb slapadd hang (ITS#5225)
Fixed slapd-bdb/hdb dn2entry lock bug (ITS#5257)
Fixed slapd-bdb/hdb dn2id lock bug (ITS#5262)
Fixed slapo-accesslog abandoned op cleanup (ITS#5161)
Fixed slapo-translucent interactions with slapo-rwm (ITS#4889)
Documentation
Fixed slapd.conf(5) maxderefdepth default value typo (ITS#5200)
...
...
servers/slapd/overlays/accesslog.c
View file @
741a6e11
...
...
@@ -60,6 +60,7 @@ 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
;
...
...
@@ -913,6 +914,7 @@ static int accesslog_response(Operation *op, SlapReply *rs) {
ldap_pvt_thread_mutex_lock
(
&
li
->
li_log_mutex
);
old
=
li
->
li_old
;
li
->
li_old
=
NULL
;
li
->
li_unlock
=
0
;
ldap_pvt_thread_mutex_unlock
(
&
li
->
li_op_mutex
);
}
...
...
@@ -1223,6 +1225,25 @@ accesslog_op_bind( Operation *op, SlapReply *rs )
return
SLAP_CB_CONTINUE
;
}
static
int
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
)
{
BackendInfo
*
bi
=
op
->
o_bd
->
bd_info
;
op
->
o_bd
->
bd_info
=
(
BackendInfo
*
)
on
;
accesslog_response
(
op
,
rs
);
op
->
o_bd
->
bd_info
=
bi
;
}
return
0
;
}
static
int
accesslog_op_mod
(
Operation
*
op
,
SlapReply
*
rs
)
{
...
...
@@ -1230,10 +1251,18 @@ 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
);
cb
->
sc_cleanup
=
accesslog_mod_cleanup
;
cb
->
sc_response
=
NULL
;
cb
->
sc_private
=
on
;
cb
->
sc_next
=
op
->
o_callback
;
op
->
o_callback
=
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