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: samba-4.20.8~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dda353c656cfbfc35c125f403a4b64c9fb4a5314;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 (cherry picked from commit c63cabf1e09bb2d1416483767d1ca835abe017da) --- diff --git a/source4/ldap_server/ldap_server.c b/source4/ldap_server/ldap_server.c index 1246f0e0776..90316fd6b68 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) { @@ -1140,7 +1142,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 = { @@ -1164,7 +1166,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 = { @@ -1192,7 +1194,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;