From 24afb5a2fa469dc04ab05477718224ab9ed308e6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Mon, 27 Apr 2026 11:49:33 +0100 Subject: [PATCH] ITS#10497 slapo-chain: Introduce wants_ macros --- servers/slapd/back-ldap/chain.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/servers/slapd/back-ldap/chain.c b/servers/slapd/back-ldap/chain.c index 0e82db4a17..d3d46dd52c 100644 --- a/servers/slapd/back-ldap/chain.c +++ b/servers/slapd/back-ldap/chain.c @@ -51,6 +51,7 @@ #define o_chaining o_ctrlflag[sc_chainingBehavior] #define get_chaining(op) ((op)->o_chaining & SLAP_CONTROL_MASK) +#define wants_chaining(op) (_SCM((op)->o_chaining) > SLAP_CONTROL_IGNORED) #define get_chainingBehavior(op) ((op)->o_chaining & (SLAP_CH_RESOLVE_MASK|SLAP_CH_CONTINUATION_MASK)) #define get_resolveBehavior(op) ((op)->o_chaining & SLAP_CH_RESOLVE_MASK) #define get_continuationBehavior(op) ((op)->o_chaining & SLAP_CH_CONTINUATION_MASK) @@ -162,7 +163,7 @@ chaining_control_add( } /* already present */ - if ( get_chaining( op ) > SLAP_CONTROL_IGNORED ) { + if ( wants_chaining( op ) ) { return 0; } @@ -303,7 +304,7 @@ ldap_chain_cb_search_response( Operation *op, SlapReply *rs ) } #ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR - if ( rs->sr_err == LDAP_REFERRAL && get_chaining( op ) > SLAP_CONTROL_IGNORED ) { + if ( rs->sr_err == LDAP_REFERRAL && wants_chaining( op ) ) { switch ( get_continuationBehavior( op ) ) { case SLAP_CH_RESOLVE_CHAINING_REQUIRED: lb->lb_status = LDAP_CH_ERR; @@ -372,7 +373,7 @@ retry:; } #ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR - if ( get_chaining( op ) > SLAP_CONTROL_IGNORED ) { + if ( wants_chaining( op ) ) { switch ( get_continuationBehavior( op ) ) { case SLAP_CH_RESOLVE_CHAINING_REQUIRED: lb->lb_status = LDAP_CH_ERR; @@ -993,7 +994,7 @@ ldap_chain_response( Operation *op, SlapReply *rs ) } #ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR - if ( rs->sr_err == LDAP_REFERRAL && get_chaining( op ) > SLAP_CONTROL_IGNORED ) { + if ( rs->sr_err == LDAP_REFERRAL && wants_chaining( op ) ) { switch ( get_resolveBehavior( op ) ) { case SLAP_CH_RESOLVE_REFERRALS_PREFERRED: case SLAP_CH_RESOLVE_REFERRALS_REQUIRED: @@ -1005,7 +1006,7 @@ ldap_chain_response( Operation *op, SlapReply *rs ) break; } - } else if ( rs->sr_type == REP_SEARCHREF && get_chaining( op ) > SLAP_CONTROL_IGNORED ) { + } else if ( rs->sr_type == REP_SEARCHREF && wants_chaining( op ) ) { switch ( get_continuationBehavior( op ) ) { case SLAP_CH_CONTINUATION_REFERRALS_PREFERRED: case SLAP_CH_CONTINUATION_REFERRALS_REQUIRED: -- 2.47.3