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
ff40a705
Commit
ff40a705
authored
May 12, 2006
by
Howard Chu
Browse files
ITS
#4541
better fix
parent
da0ec66c
Changes
4
Hide whitespace changes
Inline
Side-by-side
libraries/libldap/cyrus.c
View file @
ff40a705
...
...
@@ -602,23 +602,31 @@ ldap_int_sasl_bind(
return
ld
->
ld_errno
;
}
rc
=
0
;
#ifdef LDAP_R_COMPILE
ldap_pvt_thread_mutex_lock
(
&
ld
->
ld_req_mutex
);
#endif
ber_sockbuf_ctrl
(
ld
->
ld_sb
,
LBER_SB_OPT_GET_FD
,
&
sd
);
if
(
sd
==
AC_SOCKET_INVALID
)
{
/* not connected yet */
int
rc
;
rc
=
ldap_open_defconn
(
ld
);
if
(
rc
<
0
)
return
ld
->
ld_errno
;
ber_sockbuf_ctrl
(
ld
->
ld_defconn
->
lconn_sb
,
LBER_SB_OPT_GET_FD
,
&
sd
);
if
(
rc
==
0
)
{
ber_sockbuf_ctrl
(
ld
->
ld_defconn
->
lconn_sb
,
LBER_SB_OPT_GET_FD
,
&
sd
);
if
(
sd
==
AC_SOCKET_INVALID
)
{
ld
->
ld_errno
=
LDAP_LOCAL_ERROR
;
return
ld
->
ld_errno
;
if
(
sd
==
AC_SOCKET_INVALID
)
{
ld
->
ld_errno
=
LDAP_LOCAL_ERROR
;
rc
=
ld
->
ld_errno
;
}
}
}
#ifdef LDAP_R_COMPILE
ldap_pvt_thread_mutex_unlock
(
&
ld
->
ld_req_mutex
);
#endif
if
(
rc
!=
0
)
return
ld
->
ld_errno
;
oldctx
=
ld
->
ld_defconn
->
lconn_sasl_authctx
;
...
...
libraries/libldap/kbind.c
View file @
ff40a705
...
...
@@ -255,12 +255,18 @@ ldap_get_kerberosv4_credentials(
return
(
NULL
);
}
err
=
0
;
#ifdef LDAP_R_COMPILE
ldap_pvt_thread_mutex_lock
(
&
ld
->
ld_req_mutex
);
#endif
if
(
ber_sockbuf_ctrl
(
ld
->
ld_sb
,
LBER_SB_OPT_GET_FD
,
NULL
)
==
-
1
)
{
/* not connected yet */
int
rc
=
ldap_open_defconn
(
ld
);
if
(
rc
<
0
)
return
NULL
;
err
=
ldap_open_defconn
(
ld
);
}
#ifdef LDAP_R_COMPILE
ldap_pvt_thread_mutex_unlock
(
&
ld
->
ld_req_mutex
);
#endif
if
(
err
<
0
)
return
NULL
;
krbinstance
=
ld
->
ld_defconn
->
lconn_krbinstance
;
...
...
libraries/libldap/open.c
View file @
ff40a705
...
...
@@ -35,28 +35,19 @@
#include
"ldap-int.h"
#include
"ldap_log.h"
/* Caller should hold the req_mutex if simultaneous accesses are possible */
int
ldap_open_defconn
(
LDAP
*
ld
)
{
int
rc
=
0
;
ld
->
ld_defconn
=
ldap_new_connection
(
ld
,
&
ld
->
ld_options
.
ldo_defludp
,
1
,
1
,
NULL
);
#ifdef LDAP_R_COMPILE
ldap_pvt_thread_mutex_lock
(
&
ld
->
ld_req_mutex
);
#endif
/* LDAP_R_COMPILE */
if
(
ld
->
ld_defconn
==
NULL
)
{
ld
->
ld_defconn
=
ldap_new_connection
(
ld
,
&
ld
->
ld_options
.
ldo_defludp
,
1
,
1
,
NULL
);
if
(
ld
->
ld_defconn
==
NULL
)
{
ld
->
ld_errno
=
LDAP_SERVER_DOWN
;
rc
=
-
1
;
}
else
{
++
ld
->
ld_defconn
->
lconn_refcnt
;
/* so it never gets closed/freed */
}
if
(
ld
->
ld_defconn
==
NULL
)
{
ld
->
ld_errno
=
LDAP_SERVER_DOWN
;
return
-
1
;
}
#ifdef LDAP_R_COMPILE
ldap_pvt_thread_mutex_unlock
(
&
ld
->
ld_req_mutex
);
#endif
/* LDAP_R_COMPILE */
return
rc
;
++
ld
->
ld_defconn
->
lconn_refcnt
;
/* so it never gets closed/freed */
return
0
;
}
/*
...
...
libraries/libldap/request.c
View file @
ff40a705
...
...
@@ -93,19 +93,25 @@ ldap_send_initial_request(
BerElement
*
ber
,
ber_int_t
msgid
)
{
int
rc
;
int
rc
=
1
;
Debug
(
LDAP_DEBUG_TRACE
,
"ldap_send_initial_request
\n
"
,
0
,
0
,
0
);
#ifdef LDAP_R_COMPILE
ldap_pvt_thread_mutex_lock
(
&
ld
->
ld_req_mutex
);
#endif
if
(
ber_sockbuf_ctrl
(
ld
->
ld_sb
,
LBER_SB_OPT_GET_FD
,
NULL
)
==
-
1
)
{
/* not connected yet */
int
rc
=
ldap_open_defconn
(
ld
);
if
(
rc
<
0
)
{
ber_free
(
ber
,
1
);
return
(
-
1
);
}
rc
=
ldap_open_defconn
(
ld
);
}
#ifdef LDAP_R_COMPILE
ldap_pvt_thread_mutex_unlock
(
&
ld
->
ld_req_mutex
);
#endif
if
(
rc
<
0
)
{
ber_free
(
ber
,
1
);
return
(
-
1
);
}
else
if
(
rc
==
0
)
{
Debug
(
LDAP_DEBUG_TRACE
,
"ldap_open_defconn: successful
\n
"
,
0
,
0
,
0
);
...
...
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