X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fresult.c;h=de0adb6ef79913d6598a4e0f4ccb30c747b352eb;hb=03b58cc9cfb7f46d90e76cbd5d1f2b763830174d;hp=4f2848e8dee7ef9a2f45f0944869a7c259f41367;hpb=cabe6ebe162ae6b2f7b4c0b0c88de74eaa8acfb5;p=openldap diff --git a/servers/slapd/result.c b/servers/slapd/result.c index 4f2848e8de..de0adb6ef7 100644 --- a/servers/slapd/result.c +++ b/servers/slapd/result.c @@ -232,8 +232,8 @@ send_ldap_response( ber = ber_alloc_t( LBER_USE_DER ); - Debug( LDAP_DEBUG_TRACE, "send_ldap_response: tag=%ld msgid=%ld err=%ld\n", - (long) tag, (long) msgid, (long) err ); + Debug( LDAP_DEBUG_TRACE, "send_ldap_response: msgid=%ld tag=%ld err=%ld\n", + (long) msgid, (long) tag, (long) err ); if ( ber == NULL ) { Debug( LDAP_DEBUG_ANY, "ber_alloc failed\n", 0, 0, 0 ); @@ -404,9 +404,9 @@ send_ldap_result( NULL, NULL, ctrls ); Statslog( LDAP_DEBUG_STATS, - "conn=%ld op=%ld RESULT err=%ld tag=%lu text=%s\n", + "conn=%ld op=%ld RESULT tag=%lu err=%ld text=%s\n", (long) op->o_connid, (long) op->o_opid, - (long) err, (long) tag, text ); + (long) tag, (long) err, text ); if( tmp != NULL ) { free(tmp); @@ -476,9 +476,9 @@ send_search_result( NULL, NULL, ctrls ); Statslog( LDAP_DEBUG_STATS, - "conn=%ld op=%ld SEARCH RESULT err=%ld tag=%lu text=%s\n", + "conn=%ld op=%ld SEARCH RESULT tag=%lu err=%ld text=%s\n", (long) op->o_connid, (long) op->o_opid, - (long) err, (long) tag, text ); + (long) tag, (long) err, text ); } @@ -491,7 +491,6 @@ send_search_entry( Entry *e, char **attrs, int attrsonly, - int opattrs, LDAPControl **ctrls ) { @@ -500,7 +499,8 @@ send_search_entry( int i, rc=-1, bytes; AccessControl *acl; char *edn; - int allattrs; + int userattrs; + int opattrs; Debug( LDAP_DEBUG_TRACE, "=> send_search_entry: \"%s\"\n", e->e_dn, 0, 0 ); @@ -534,10 +534,14 @@ send_search_entry( goto error_return; } - /* check for special all user attributes ("*") attribute */ - allattrs = ( attrs == NULL ) ? 1 + /* check for special all user attributes ("*") type */ + userattrs = ( attrs == NULL ) ? 1 : charray_inlist( attrs, LDAP_ALL_USER_ATTRIBUTES ); + /* check for special all operational attributes ("+") type */ + opattrs = ( attrs == NULL ) ? 0 + : charray_inlist( attrs, LDAP_ALL_OPERATIONAL_ATTRIBUTES ); + for ( a = e->e_attrs; a != NULL; a = a->a_next ) { regmatch_t matches[MAXREMATCHES]; @@ -549,18 +553,16 @@ send_search_entry( } else { /* specific addrs requested */ - if ( allattrs ) { - /* user requested all user attributes */ - /* if operational, make sure it's in list */ - - if( oc_check_operational_attr( a->a_type ) - && !charray_inlist( attrs, a->a_type ) ) + if ( oc_check_operational_attr( a->a_type ) ) { + if( !opattrs && !charray_inlist( attrs, a->a_type ) ) + { + continue; + } + } else { + if (!userattrs && !charray_inlist( attrs, a->a_type ) ) { continue; } - - } else if ( !charray_inlist( attrs, a->a_type ) ) { - continue; } } @@ -611,6 +613,8 @@ send_search_entry( } #ifdef SLAPD_SCHEMA_DN + /* eventually will loop through generated operational attributes */ + /* only have subschemaSubentry implemented */ a = backend_subschemasubentry( be ); do { @@ -624,18 +628,16 @@ send_search_entry( } else { /* specific addrs requested */ - if ( allattrs ) { - /* user requested all user attributes */ - /* if operational, make sure it's in list */ - - if( oc_check_operational_attr( a->a_type ) - && !charray_inlist( attrs, a->a_type ) ) + if ( oc_check_operational_attr( a->a_type ) ) { + if( !opattrs && !charray_inlist( attrs, a->a_type ) ) + { + continue; + } + } else { + if (!userattrs && !charray_inlist( attrs, a->a_type ) ) { continue; } - - } else if ( !charray_inlist( attrs, a->a_type ) ) { - continue; } } @@ -738,7 +740,7 @@ send_search_reference( int rc; int bytes; - Debug( LDAP_DEBUG_TRACE, "=> send_search_entry (%s)\n", e->e_dn, 0, 0 ); + Debug( LDAP_DEBUG_TRACE, "=> send_search_reference (%s)\n", e->e_dn, 0, 0 ); if ( ! access_allowed( be, conn, op, e, "entry", NULL, ACL_READ ) ) @@ -806,7 +808,7 @@ send_search_reference( Statslog( LDAP_DEBUG_STATS2, "conn=%ld op=%ld ENTRY dn=\"%s\"\n", (long) conn->c_connid, (long) op->o_opid, e->e_dn, 0, 0 ); - Debug( LDAP_DEBUG_TRACE, "<= send_search_entry\n", 0, 0, 0 ); + Debug( LDAP_DEBUG_TRACE, "<= send_search_reference\n", 0, 0, 0 ); return 0; }