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
Tero Saarni
OpenLDAP
Commits
099e078a
Commit
099e078a
authored
Mar 24, 2011
by
Quanah Gibson-Mount
Browse files
ITS#6850
parent
fb16f97e
Changes
3
Hide whitespace changes
Inline
Side-by-side
CHANGES
View file @
099e078a
...
...
@@ -7,6 +7,7 @@ OpenLDAP 2.4.25 Engineering
Fixed slapd sortval handling (ITS#6845)
Fixed slapd-ldap chain cn=config support (ITS#6837)
Fixed slapd-meta deadlock (ITS#6846)
Fixed slapo-sssvlv with multiple requests (ITS#6850)
Build Environment
Fixed libldap/lberl/util if/else usage (ITS#6832)
Fixed Windows odbc32 detection (ITS#6125)
...
...
doc/man/man5/slapo-sssvlv.5
View file @
099e078a
...
...
@@ -17,8 +17,8 @@ or globally for all backends.
Since a complete result set must be generated in memory before sorting can
be performed, processing sort requests can have a large impact on the
server's memory use. As such, any connection is limited to having only
one
sort request active at a time. Additional limits may
be configured
as described below.
a limited number of
sort request
s
active at a time. Additional limits may
be configured
as described below.
.SH CONFIGURATION
These
...
...
servers/slapd/overlays/sssvlv.c
View file @
099e078a
...
...
@@ -341,6 +341,23 @@ static int pack_sss_response_control(
return
rs
->
sr_err
;
}
/* Return the session id or -1 if unknown */
static
int
find_session_by_so
(
int
svi_max_percon
,
int
conn_id
,
sort_op
*
so
)
{
int
sess_id
;
if
(
so
==
NULL
)
{
return
-
1
;
}
for
(
sess_id
=
0
;
sess_id
<
svi_max_percon
;
sess_id
++
)
{
if
(
sort_conns
[
conn_id
]
&&
sort_conns
[
conn_id
][
sess_id
]
==
so
)
return
sess_id
;
}
return
-
1
;
}
/* Return the session id or -1 if unknown */
static
int
find_session_by_context
(
int
svi_max_percon
,
...
...
@@ -379,14 +396,13 @@ static int find_next_session(
static
void
free_sort_op
(
Connection
*
conn
,
sort_op
*
so
)
{
int
sess_id
;
PagedResultsCookie
ps_cookie
=
(
PagedResultsCookie
)
so
->
so_tree
;
if
(
so
->
so_tree
)
{
tavl_free
(
so
->
so_tree
,
ch_free
);
so
->
so_tree
=
NULL
;
}
ldap_pvt_thread_mutex_lock
(
&
sort_conns_mutex
);
sess_id
=
find_session_by_
context
(
so
->
so_info
->
svi_max_percon
,
conn
->
c_conn_idx
,
so
->
so_vcontext
,
ps_cookie
);
sess_id
=
find_session_by_
so
(
so
->
so_info
->
svi_max_percon
,
conn
->
c_conn_idx
,
so
);
sort_conns
[
conn
->
c_conn_idx
][
sess_id
]
=
NULL
;
so
->
so_info
->
svi_num
--
;
ldap_pvt_thread_mutex_unlock
(
&
sort_conns_mutex
);
...
...
@@ -492,7 +508,7 @@ range_err:
sc
->
sc_nkeys
*
sizeof
(
struct
berval
),
op
->
o_tmpmemctx
);
sn
->
sn_vals
=
(
struct
berval
*
)(
sn
+
1
);
sn
->
sn_conn
=
op
->
o_conn
->
c_conn_idx
;
sn
->
sn_session
=
find_session_by_
context
(
so
->
so_info
->
svi_max_percon
,
op
->
o_conn
->
c_conn_idx
,
vc
->
vc_context
,
NO_PS_COOKIE
);
sn
->
sn_session
=
find_session_by_
so
(
so
->
so_info
->
svi_max_percon
,
op
->
o_conn
->
c_conn_idx
,
so
);
sn
->
sn_vals
[
0
]
=
bv
;
for
(
i
=
1
;
i
<
sc
->
sc_nkeys
;
i
++
)
{
BER_BVZERO
(
&
sn
->
sn_vals
[
i
]
);
...
...
@@ -731,7 +747,7 @@ static int sssvlv_op_response(
op
->
o_tmpfree
(
sn
,
op
->
o_tmpmemctx
);
sn
=
sn2
;
sn
->
sn_conn
=
op
->
o_conn
->
c_conn_idx
;
sn
->
sn_session
=
find_session_by_
context
(
so
->
so_info
->
svi_max_percon
,
op
->
o_conn
->
c_conn_idx
,
so
->
so_vcontext
,
(
PagedResultsCookie
)
so
->
so_tree
);
sn
->
sn_session
=
find_session_by_
so
(
so
->
so_info
->
svi_max_percon
,
op
->
o_conn
->
c_conn_idx
,
so
);
/* Insert into the AVL tree */
tavl_insert
(
&
(
so
->
so_tree
),
sn
,
node_insert
,
avl_dup_error
);
...
...
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