Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
orbea -
OpenLDAP
Commits
ac70b01b
Commit
ac70b01b
authored
Feb 01, 2021
by
Ondřej Kuzník
Browse files
ITS#6518 When using proxyauthz, replace existing control - (async)meta
parent
4a02ae13
Changes
2
Hide whitespace changes
Inline
Side-by-side
servers/slapd/back-asyncmeta/bind.c
View file @
ac70b01b
...
...
@@ -1258,7 +1258,7 @@ asyncmeta_controls_add( Operation *op,
LDAPControl
**
ctrls
=
NULL
;
/* set to the maximum number of controls this backend can add */
LDAPControl
c
[
2
]
=
{{
0
}};
int
n
=
0
,
i
,
j1
=
0
,
j2
=
0
;
int
n
=
0
,
i
,
j1
=
0
,
j2
=
0
,
skipped
=
0
;
*
pctrls
=
NULL
;
...
...
@@ -1344,12 +1344,21 @@ asyncmeta_controls_add( Operation *op,
i
=
0
;
if
(
op
->
o_ctrls
)
{
LDAPControl
*
proxyauthz
=
ldap_control_find
(
LDAP_CONTROL_PROXY_AUTHZ
,
op
->
o_ctrls
,
NULL
);
for
(
i
=
0
;
op
->
o_ctrls
[
i
];
i
++
)
{
ctrls
[
i
+
j1
]
=
op
->
o_ctrls
[
i
];
if
(
proxyauthz
&&
proxyauthz
==
op
->
o_ctrls
[
i
]
)
{
/* Frontend has already checked only one is present */
assert
(
skipped
==
0
);
skipped
++
;
continue
;
}
ctrls
[
i
+
j1
-
skipped
]
=
op
->
o_ctrls
[
i
];
}
}
n
+=
j1
;
n
+=
j1
-
skipped
;
if
(
j2
)
{
ctrls
[
n
]
=
(
LDAPControl
*
)
&
ctrls
[
n
+
j2
+
1
]
+
j1
;
*
ctrls
[
n
]
=
c
[
j1
];
...
...
servers/slapd/back-meta/bind.c
View file @
ac70b01b
...
...
@@ -1633,7 +1633,7 @@ meta_back_controls_add(
LDAPControl
**
ctrls
=
NULL
;
/* set to the maximum number of controls this backend can add */
LDAPControl
c
[
2
]
=
{{
0
}};
int
n
=
0
,
i
,
j1
=
0
,
j2
=
0
;
int
n
=
0
,
i
,
j1
=
0
,
j2
=
0
,
skipped
=
0
;
*
pctrls
=
NULL
;
...
...
@@ -1719,12 +1719,21 @@ meta_back_controls_add(
i
=
0
;
if
(
op
->
o_ctrls
)
{
LDAPControl
*
proxyauthz
=
ldap_control_find
(
LDAP_CONTROL_PROXY_AUTHZ
,
op
->
o_ctrls
,
NULL
);
for
(
i
=
0
;
op
->
o_ctrls
[
i
];
i
++
)
{
ctrls
[
i
+
j1
]
=
op
->
o_ctrls
[
i
];
if
(
proxyauthz
&&
proxyauthz
==
op
->
o_ctrls
[
i
]
)
{
/* Frontend has already checked only one is present */
assert
(
skipped
==
0
);
skipped
++
;
continue
;
}
ctrls
[
i
+
j1
-
skipped
]
=
op
->
o_ctrls
[
i
];
}
}
n
+=
j1
;
n
+=
j1
-
skipped
;
if
(
j2
)
{
ctrls
[
n
]
=
(
LDAPControl
*
)
&
ctrls
[
n
+
j2
+
1
]
+
j1
;
*
ctrls
[
n
]
=
c
[
j1
];
...
...
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