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
5c1245de
Commit
5c1245de
authored
Jan 17, 2018
by
Ondřej Kuzník
Committed by
Ondřej Kuzník
Nov 17, 2020
Browse files
Manage c_sasl_bind_mech on upstream
parent
c52328f6
Changes
4
Hide whitespace changes
Inline
Side-by-side
servers/lloadd/bind.c
View file @
5c1245de
...
...
@@ -126,7 +126,7 @@ request_bind( LloadConnection *client, LloadOperation *op )
{
LloadConnection
*
upstream
=
NULL
;
BerElement
*
ber
,
*
copy
;
struct
berval
binddn
,
auth
;
struct
berval
binddn
,
auth
,
mech
=
BER_BVNULL
;
ber_int_t
version
;
ber_tag_t
tag
;
unsigned
long
pin
=
client
->
c_pin_id
;
...
...
@@ -226,8 +226,6 @@ request_bind( LloadConnection *client, LloadOperation *op )
BER_BVZERO
(
&
client
->
c_sasl_bind_mech
);
}
}
else
if
(
tag
==
LDAP_AUTH_SASL
)
{
struct
berval
mech
;
ber_init2
(
copy
,
&
auth
,
0
);
if
(
ber_get_stringbv
(
copy
,
&
mech
,
LBER_BV_NOTERM
)
==
LBER_ERROR
)
{
...
...
@@ -310,6 +308,10 @@ request_bind( LloadConnection *client, LloadOperation *op )
"ber_alloc failed
\n
"
);
ldap_pvt_thread_mutex_unlock
(
&
upstream
->
c_io_mutex
);
CONNECTION_LOCK_DECREF
(
upstream
);
if
(
!
BER_BVISNULL
(
&
upstream
->
c_sasl_bind_mech
)
)
{
ber_memfree
(
upstream
->
c_sasl_bind_mech
.
bv_val
);
BER_BVZERO
(
&
upstream
->
c_sasl_bind_mech
);
}
CONNECTION_UNLOCK_OR_DESTROY
(
upstream
);
CONNECTION_LOCK_DECREF
(
client
);
...
...
@@ -334,6 +336,15 @@ request_bind( LloadConnection *client, LloadOperation *op )
op
->
o_upstream_connid
=
upstream
->
c_connid
;
op
->
o_upstream_msgid
=
upstream
->
c_next_msgid
++
;
if
(
BER_BVISNULL
(
&
mech
)
)
{
if
(
!
BER_BVISNULL
(
&
upstream
->
c_sasl_bind_mech
)
)
{
ber_memfree
(
upstream
->
c_sasl_bind_mech
.
bv_val
);
BER_BVZERO
(
&
upstream
->
c_sasl_bind_mech
);
}
}
else
if
(
ber_bvcmp
(
&
upstream
->
c_sasl_bind_mech
,
&
mech
)
)
{
ber_bvreplace
(
&
upstream
->
c_sasl_bind_mech
,
&
mech
);
}
Debug
(
LDAP_DEBUG_TRACE
,
"request_bind: "
"added bind from client connid=%lu to upstream connid=%lu "
"as msgid=%d
\n
"
,
...
...
@@ -440,6 +451,11 @@ handle_bind_response(
CONNECTION_LOCK
(
upstream
);
if
(
result
!=
LDAP_SASL_BIND_IN_PROGRESS
)
{
if
(
!
BER_BVISNULL
(
&
upstream
->
c_sasl_bind_mech
)
)
{
ber_memfree
(
upstream
->
c_sasl_bind_mech
.
bv_val
);
BER_BVZERO
(
&
upstream
->
c_sasl_bind_mech
);
}
upstream
->
c_state
=
LLOAD_C_READY
;
op
->
o_pin_id
=
0
;
}
else
{
...
...
servers/lloadd/connection.c
View file @
5c1245de
...
...
@@ -318,6 +318,11 @@ connection_destroy( LloadConnection *c )
c
->
c_pendingber
=
NULL
;
}
if
(
!
BER_BVISNULL
(
&
c
->
c_sasl_bind_mech
)
)
{
ber_memfree
(
c
->
c_sasl_bind_mech
.
bv_val
);
BER_BVZERO
(
&
c
->
c_sasl_bind_mech
);
}
CONNECTION_UNLOCK
(
c
);
ldap_pvt_thread_mutex_destroy
(
&
c
->
c_io_mutex
);
...
...
servers/lloadd/operation.c
View file @
5c1245de
...
...
@@ -607,6 +607,10 @@ operation_abandon( LloadOperation *op )
}
if
(
c
->
c_state
==
LLOAD_C_BINDING
)
{
c
->
c_state
=
LLOAD_C_READY
;
if
(
!
BER_BVISNULL
(
&
c
->
c_sasl_bind_mech
)
)
{
ber_memfree
(
c
->
c_sasl_bind_mech
.
bv_val
);
BER_BVZERO
(
&
c
->
c_sasl_bind_mech
);
}
}
c
->
c_n_ops_executing
--
;
b
=
(
LloadBackend
*
)
c
->
c_private
;
...
...
servers/lloadd/upstream.c
View file @
5c1245de
...
...
@@ -243,6 +243,10 @@ handle_one_response( LloadConnection *c )
if
(
!
client
||
!
op
->
o_upstream_refcnt
)
{
if
(
c
->
c_state
==
LLOAD_C_BINDING
)
{
c
->
c_state
=
LLOAD_C_READY
;
if
(
!
BER_BVISNULL
(
&
c
->
c_sasl_bind_mech
)
)
{
ber_memfree
(
c
->
c_sasl_bind_mech
.
bv_val
);
BER_BVZERO
(
&
c
->
c_sasl_bind_mech
);
}
}
operation_destroy_from_upstream
(
op
);
}
...
...
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