From: Jo Sutton Date: Tue, 16 Apr 2024 02:28:21 +0000 (+1200) Subject: s4:ldap_server: Store whether an LDAP connection is over ldapi X-Git-Tag: tdb-1.4.11~1132 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c63cabf1e09bb2d1416483767d1ca835abe017da;p=thirdparty%2Fsamba.git s4:ldap_server: Store whether an LDAP connection is over ldapi BUG: https://bugzilla.samba.org/show_bug.cgi?id=15634 Signed-off-by: Jo Sutton Reviewed-by: Andrew Bartlett --- diff --git a/source4/ldap_server/ldap_server.c b/source4/ldap_server/ldap_server.c index 21339dd9819..497d0dbc9a1 100644 --- a/source4/ldap_server/ldap_server.c +++ b/source4/ldap_server/ldap_server.c @@ -300,7 +300,8 @@ static void ldapsrv_accept_tls_done(struct tevent_req *subreq); */ static void ldapsrv_accept(struct stream_connection *c, struct auth_session_info *session_info, - bool is_privileged) + bool is_privileged, + bool is_ldapi) { struct ldapsrv_service *ldapsrv_service = talloc_get_type(c->private_data, struct ldapsrv_service); @@ -319,6 +320,7 @@ static void ldapsrv_accept(struct stream_connection *c, return; } conn->is_privileged = is_privileged; + conn->is_ldapi = is_ldapi; conn->sockets.send_queue = tevent_queue_create(conn, "ldapsrv send queue"); if (conn->sockets.send_queue == NULL) { @@ -1129,7 +1131,7 @@ static void ldapsrv_accept_nonpriv(struct stream_connection *c) "session info"); return; } - ldapsrv_accept(c, session_info, false); + ldapsrv_accept(c, session_info, false, false); } static const struct stream_server_ops ldap_stream_nonpriv_ops = { @@ -1153,7 +1155,7 @@ static void ldapsrv_accept_nonpriv_ldapi(struct stream_connection *c) "session info"); return; } - ldapsrv_accept(c, session_info, false); + ldapsrv_accept(c, session_info, false, true); } static const struct stream_server_ops ldapi_stream_nonpriv_ops = { @@ -1181,7 +1183,7 @@ static void ldapsrv_accept_priv_ldapi(struct stream_connection *c) "session info"); return; } - ldapsrv_accept(c, session_info, true); + ldapsrv_accept(c, session_info, true, true); } static const struct stream_server_ops ldapi_stream_priv_ops = { diff --git a/source4/ldap_server/ldap_server.h b/source4/ldap_server/ldap_server.h index b53be270320..4e833bea592 100644 --- a/source4/ldap_server/ldap_server.h +++ b/source4/ldap_server/ldap_server.h @@ -50,6 +50,7 @@ struct ldapsrv_connection { bool global_catalog; bool is_privileged; + bool is_ldapi; enum ldap_server_require_strong_auth require_strong_auth; bool authz_logged; enum ldap_server_referral_scheme referral_scheme;