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
e4abfd96
Commit
e4abfd96
authored
Dec 12, 2008
by
Quanah Gibson-Mount
Browse files
ITS#5854
parent
1e2dbebe
Changes
9
Hide whitespace changes
Inline
Side-by-side
CHANGES
View file @
e4abfd96
...
...
@@ -6,6 +6,7 @@ OpenLDAP 2.4.14 Engineering
Fixed libldap_r deref building (ITS#5768)
Fixed slapd syncrepl rename handling (ITS#5809)
Fixed slapd syncrepl MMR when adding new server (ITS#5850)
Fixed slapd-meta double response sending (ITS#5854)
Build Environment
Fixed test049,test050 to work on windows (ITS#5842)
...
...
servers/slapd/back-ldap/back-ldap.h
View file @
e4abfd96
...
...
@@ -393,6 +393,8 @@ typedef struct ldapinfo_t {
time_t
li_timeout
[
SLAP_OP_LAST
];
}
ldapinfo_t
;
#define LDAP_ERR_OK(err) ((err) == LDAP_SUCCESS || (err) == LDAP_COMPARE_FALSE || (err) == LDAP_COMPARE_TRUE)
typedef
enum
ldap_back_send_t
{
LDAP_BACK_DONTSEND
=
0x00
,
LDAP_BACK_SENDOK
=
0x01
,
...
...
servers/slapd/back-ldap/bind.c
View file @
e4abfd96
...
...
@@ -1637,8 +1637,6 @@ ldap_back_op_result(
char
**
refs
=
NULL
;
LDAPControl
**
ctrls
=
NULL
;
#define ERR_OK(err) ((err) == LDAP_SUCCESS || (err) == LDAP_COMPARE_FALSE || (err) == LDAP_COMPARE_TRUE)
rs
->
sr_text
=
NULL
;
rs
->
sr_matched
=
NULL
;
rs
->
sr_ref
=
NULL
;
...
...
@@ -1647,7 +1645,7 @@ ldap_back_op_result(
/* if the error recorded in the reply corresponds
* to a successful state, get the error from the
* remote server response */
if
(
ERR_OK
(
rs
->
sr_err
)
)
{
if
(
LDAP_
ERR_OK
(
rs
->
sr_err
)
)
{
int
rc
;
struct
timeval
tv
;
LDAPMessage
*
res
=
NULL
;
...
...
@@ -1800,7 +1798,7 @@ retry:;
/* if the error in the reply structure is not
* LDAP_SUCCESS, try to map it from client
* to server error */
if
(
!
ERR_OK
(
rs
->
sr_err
)
)
{
if
(
!
LDAP_
ERR_OK
(
rs
->
sr_err
)
)
{
rs
->
sr_err
=
slap_map_api2result
(
rs
);
/* internal ops ( op->o_conn == NULL )
...
...
@@ -1825,8 +1823,8 @@ retry:;
}
}
else
if
(
op
->
o_conn
&&
(
(
(
sendok
&
LDAP_BACK_SENDOK
)
&&
ERR_OK
(
rs
->
sr_err
)
)
||
(
(
sendok
&
LDAP_BACK_SENDERR
)
&&
rs
->
sr_err
!=
LDAP_SUCCESS
)
)
)
(
(
(
sendok
&
LDAP_BACK_SENDOK
)
&&
LDAP_
ERR_OK
(
rs
->
sr_err
)
)
||
(
(
sendok
&
LDAP_BACK_SENDERR
)
&&
!
LDAP_ERR_OK
(
rs
->
sr_err
)
)
)
)
{
send_ldap_result
(
op
,
rs
);
}
...
...
@@ -1859,7 +1857,7 @@ retry:;
rs
->
sr_ctrls
=
NULL
;
}
return
(
ERR_OK
(
rs
->
sr_err
)
?
LDAP_SUCCESS
:
rs
->
sr_err
);
return
(
LDAP_
ERR_OK
(
rs
->
sr_err
)
?
LDAP_SUCCESS
:
rs
->
sr_err
);
}
/* return true if bound, false if failed */
...
...
servers/slapd/back-meta/add.c
View file @
e4abfd96
...
...
@@ -45,7 +45,7 @@ meta_back_add( Operation *op, SlapReply *rs )
struct
berval
mdn
=
BER_BVNULL
,
mapped
;
dncookie
dc
;
int
msgid
;
int
do_retry
=
1
;
ldap_back_send_t
retrying
=
LDAP_BACK_RETRYING
;
LDAPControl
**
ctrls
=
NULL
;
Debug
(
LDAP_DEBUG_ARGS
,
"==> meta_back_add: %s
\n
"
,
...
...
@@ -178,9 +178,9 @@ retry:;
rs
->
sr_err
=
ldap_add_ext
(
mc
->
mc_conns
[
candidate
].
msc_ld
,
mdn
.
bv_val
,
attrs
,
ctrls
,
NULL
,
&
msgid
);
rs
->
sr_err
=
meta_back_op_result
(
mc
,
op
,
rs
,
candidate
,
msgid
,
mt
->
mt_timeout
[
SLAP_OP_ADD
],
LDAP_BACK_SENDRESULT
);
if
(
rs
->
sr_err
==
LDAP_UNAVAILABLE
&&
do_
retry
)
{
do_
retry
=
0
;
mt
->
mt_timeout
[
SLAP_OP_ADD
],
(
LDAP_BACK_SENDRESULT
|
retrying
)
);
if
(
rs
->
sr_err
==
LDAP_UNAVAILABLE
&&
retry
ing
)
{
retry
ing
&=
~
LDAP_BACK_RETRYING
;
if
(
meta_back_retry
(
op
,
rs
,
&
mc
,
candidate
,
LDAP_BACK_SENDERR
)
)
{
/* if the identity changed, there might be need to re-authz */
(
void
)
mi
->
mi_ldap_extra
->
controls_free
(
op
,
rs
,
&
ctrls
);
...
...
servers/slapd/back-meta/bind.c
View file @
e4abfd96
...
...
@@ -953,9 +953,7 @@ meta_back_op_result(
metatarget_t
*
mt
=
mi
->
mi_targets
[
candidate
];
metasingleconn_t
*
msc
=
&
mc
->
mc_conns
[
candidate
];
#define ERR_OK(err) ((err) == LDAP_SUCCESS || (err) == LDAP_COMPARE_FALSE || (err) == LDAP_COMPARE_TRUE)
if
(
ERR_OK
(
rs
->
sr_err
)
)
{
if
(
LDAP_ERR_OK
(
rs
->
sr_err
)
)
{
int
rc
;
struct
timeval
tv
;
LDAPMessage
*
res
=
NULL
;
...
...
@@ -1087,7 +1085,7 @@ retry:;
/* if the error in the reply structure is not
* LDAP_SUCCESS, try to map it from client
* to server error */
if
(
!
ERR_OK
(
rs
->
sr_err
)
)
{
if
(
!
LDAP_
ERR_OK
(
rs
->
sr_err
)
)
{
rs
->
sr_err
=
slap_map_api2result
(
rs
);
/* internal ops ( op->o_conn == NULL )
...
...
@@ -1206,9 +1204,17 @@ retry:;
rs
->
sr_matched
=
matched
;
}
if
(
op
->
o_conn
&&
(
(
sendok
&
LDAP_BACK_SENDOK
)
||
(
(
sendok
&
LDAP_BACK_SENDERR
)
&&
rs
->
sr_err
!=
LDAP_SUCCESS
)
)
)
if
(
rs
->
sr_err
==
LDAP_UNAVAILABLE
)
{
if
(
!
(
sendok
&
LDAP_BACK_RETRYING
)
)
{
if
(
op
->
o_conn
&&
(
sendok
&
LDAP_BACK_SENDERR
)
)
{
if
(
rs
->
sr_text
==
NULL
)
rs
->
sr_text
=
"Proxy operation retry failed"
;
send_ldap_result
(
op
,
rs
);
}
}
}
else
if
(
op
->
o_conn
&&
(
(
(
sendok
&
LDAP_BACK_SENDOK
)
&&
LDAP_ERR_OK
(
rs
->
sr_err
)
)
||
(
(
sendok
&
LDAP_BACK_SENDERR
)
&&
!
LDAP_ERR_OK
(
rs
->
sr_err
)
)
)
)
{
send_ldap_result
(
op
,
rs
);
}
...
...
@@ -1235,7 +1241,7 @@ retry:;
rs
->
sr_ref
=
save_ref
;
rs
->
sr_ctrls
=
save_ctrls
;
return
(
ERR_OK
(
rs
->
sr_err
)
?
LDAP_SUCCESS
:
rs
->
sr_err
);
return
(
LDAP_
ERR_OK
(
rs
->
sr_err
)
?
LDAP_SUCCESS
:
rs
->
sr_err
);
}
/*
...
...
servers/slapd/back-meta/compare.c
View file @
e4abfd96
...
...
@@ -44,7 +44,7 @@ meta_back_compare( Operation *op, SlapReply *rs )
struct
berval
mapped_attr
=
op
->
orc_ava
->
aa_desc
->
ad_cname
;
struct
berval
mapped_value
=
op
->
orc_ava
->
aa_value
;
int
msgid
;
int
do_retry
=
1
;
ldap_back_send_t
retrying
=
LDAP_BACK_RETRYING
;
LDAPControl
**
ctrls
=
NULL
;
mc
=
meta_back_getconn
(
op
,
rs
,
&
candidate
,
LDAP_BACK_SENDERR
);
...
...
@@ -124,9 +124,9 @@ retry:;
ctrls
,
NULL
,
&
msgid
);
rs
->
sr_err
=
meta_back_op_result
(
mc
,
op
,
rs
,
candidate
,
msgid
,
mt
->
mt_timeout
[
SLAP_OP_COMPARE
],
LDAP_BACK_SENDRESULT
);
if
(
rs
->
sr_err
==
LDAP_UNAVAILABLE
&&
do_
retry
)
{
do_
retry
=
0
;
mt
->
mt_timeout
[
SLAP_OP_COMPARE
],
(
LDAP_BACK_SENDRESULT
|
retrying
)
);
if
(
rs
->
sr_err
==
LDAP_UNAVAILABLE
&&
retry
ing
)
{
retry
ing
&=
~
LDAP_BACK_RETRYING
;
if
(
meta_back_retry
(
op
,
rs
,
&
mc
,
candidate
,
LDAP_BACK_SENDERR
)
)
{
/* if the identity changed, there might be need to re-authz */
(
void
)
mi
->
mi_ldap_extra
->
controls_free
(
op
,
rs
,
&
ctrls
);
...
...
servers/slapd/back-meta/delete.c
View file @
e4abfd96
...
...
@@ -41,7 +41,7 @@ meta_back_delete( Operation *op, SlapReply *rs )
struct
berval
mdn
=
BER_BVNULL
;
dncookie
dc
;
int
msgid
;
int
do_retry
=
1
;
ldap_back_send_t
retrying
=
LDAP_BACK_RETRYING
;
LDAPControl
**
ctrls
=
NULL
;
mc
=
meta_back_getconn
(
op
,
rs
,
&
candidate
,
LDAP_BACK_SENDERR
);
...
...
@@ -76,9 +76,9 @@ retry:;
rs
->
sr_err
=
ldap_delete_ext
(
mc
->
mc_conns
[
candidate
].
msc_ld
,
mdn
.
bv_val
,
ctrls
,
NULL
,
&
msgid
);
rs
->
sr_err
=
meta_back_op_result
(
mc
,
op
,
rs
,
candidate
,
msgid
,
mt
->
mt_timeout
[
SLAP_OP_DELETE
],
LDAP_BACK_SENDRESULT
);
if
(
rs
->
sr_err
==
LDAP_UNAVAILABLE
&&
do_
retry
)
{
do_
retry
=
0
;
mt
->
mt_timeout
[
SLAP_OP_DELETE
],
(
LDAP_BACK_SENDRESULT
|
retrying
)
);
if
(
rs
->
sr_err
==
LDAP_UNAVAILABLE
&&
retry
ing
)
{
retry
ing
&=
~
LDAP_BACK_RETRYING
;
if
(
meta_back_retry
(
op
,
rs
,
&
mc
,
candidate
,
LDAP_BACK_SENDERR
)
)
{
/* if the identity changed, there might be need to re-authz */
(
void
)
mi
->
mi_ldap_extra
->
controls_free
(
op
,
rs
,
&
ctrls
);
...
...
servers/slapd/back-meta/modify.c
View file @
e4abfd96
...
...
@@ -47,7 +47,7 @@ meta_back_modify( Operation *op, SlapReply *rs )
struct
berval
mapped
;
dncookie
dc
;
int
msgid
;
int
do_retry
=
1
;
ldap_back_send_t
retrying
=
LDAP_BACK_RETRYING
;
LDAPControl
**
ctrls
=
NULL
;
mc
=
meta_back_getconn
(
op
,
rs
,
&
candidate
,
LDAP_BACK_SENDERR
);
...
...
@@ -187,9 +187,9 @@ retry:;
rs
->
sr_err
=
ldap_modify_ext
(
mc
->
mc_conns
[
candidate
].
msc_ld
,
mdn
.
bv_val
,
modv
,
ctrls
,
NULL
,
&
msgid
);
rs
->
sr_err
=
meta_back_op_result
(
mc
,
op
,
rs
,
candidate
,
msgid
,
mt
->
mt_timeout
[
SLAP_OP_MODIFY
],
LDAP_BACK_SENDRESULT
);
if
(
rs
->
sr_err
==
LDAP_UNAVAILABLE
&&
do_
retry
)
{
do_
retry
=
0
;
mt
->
mt_timeout
[
SLAP_OP_MODIFY
],
(
LDAP_BACK_SENDRESULT
|
retrying
)
);
if
(
rs
->
sr_err
==
LDAP_UNAVAILABLE
&&
retry
ing
)
{
retry
ing
&=
~
LDAP_BACK_RETRYING
;
if
(
meta_back_retry
(
op
,
rs
,
&
mc
,
candidate
,
LDAP_BACK_SENDERR
)
)
{
/* if the identity changed, there might be need to re-authz */
(
void
)
mi
->
mi_ldap_extra
->
controls_free
(
op
,
rs
,
&
ctrls
);
...
...
servers/slapd/back-meta/modrdn.c
View file @
e4abfd96
...
...
@@ -42,7 +42,7 @@ meta_back_modrdn( Operation *op, SlapReply *rs )
mnewSuperior
=
BER_BVNULL
;
dncookie
dc
;
int
msgid
;
int
do_retry
=
1
;
ldap_back_send_t
retrying
=
LDAP_BACK_RETRYING
;
LDAPControl
**
ctrls
=
NULL
;
struct
berval
newrdn
=
BER_BVNULL
;
...
...
@@ -139,9 +139,9 @@ retry:;
mnewSuperior
.
bv_val
,
op
->
orr_deleteoldrdn
,
ctrls
,
NULL
,
&
msgid
);
rs
->
sr_err
=
meta_back_op_result
(
mc
,
op
,
rs
,
candidate
,
msgid
,
mt
->
mt_timeout
[
SLAP_OP_MODRDN
],
LDAP_BACK_SENDRESULT
);
if
(
rs
->
sr_err
==
LDAP_UNAVAILABLE
&&
do_
retry
)
{
do_
retry
=
0
;
mt
->
mt_timeout
[
SLAP_OP_MODRDN
],
(
LDAP_BACK_SENDRESULT
|
retrying
)
);
if
(
rs
->
sr_err
==
LDAP_UNAVAILABLE
&&
retry
ing
)
{
retry
ing
&=
~
LDAP_BACK_RETRYING
;
if
(
meta_back_retry
(
op
,
rs
,
&
mc
,
candidate
,
LDAP_BACK_SENDERR
)
)
{
/* if the identity changed, there might be need to re-authz */
(
void
)
mi
->
mi_ldap_extra
->
controls_free
(
op
,
rs
,
&
ctrls
);
...
...
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