From: Pierangelo Masarati Date: Wed, 23 Nov 2005 10:04:33 +0000 (+0000) Subject: fix return attributes (ITS#4203) X-Git-Tag: OPENLDAP_REL_ENG_2_4_BP~731 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=990b435ce0022c7dbf1f6ebc2f0f26b96dffb990;p=openldap fix return attributes (ITS#4203) --- diff --git a/servers/slapd/overlays/pcache.c b/servers/slapd/overlays/pcache.c index ed8217eb40..0eca802cbe 100644 --- a/servers/slapd/overlays/pcache.c +++ b/servers/slapd/overlays/pcache.c @@ -1121,13 +1121,16 @@ proxy_cache_response( } } - if (rs->sr_attrs != op->ors_attrs ) { + if ( rs->sr_attrs != op->ors_attrs ) { op->o_tmpfree( rs->sr_attrs, op->o_tmpmemctx ); } - rs->sr_attrs = si->query.save_attrs; - op->o_tmpfree( op->ors_attrs, op->o_tmpmemctx ); - op->ors_attrs = si->query.save_attrs; - si->query.save_attrs = NULL; + + if ( si->query.save_attrs != NULL ) { + rs->sr_attrs = si->query.save_attrs; + op->o_tmpfree( op->ors_attrs, op->o_tmpmemctx ); + op->ors_attrs = si->query.save_attrs; + si->query.save_attrs = NULL; + } } else if ( rs->sr_type == REP_RESULT ) { if ( si->count && cache_entries( op, rs, &uuid ) == 0 ) { diff --git a/tests/scripts/test020-proxycache b/tests/scripts/test020-proxycache index 0fc9f8b719..5b4c6e27aa 100755 --- a/tests/scripts/test020-proxycache +++ b/tests/scripts/test020-proxycache @@ -114,10 +114,13 @@ if test $RC != 0 ; then exit $RC fi +cat /dev/null > $SLAVEOUT + echo "Making queries on the proxy cache..." echo "Query 1: filter:(sn=Jon) attrs: all" +echo "# Query 1: filter:(sn=Jon) attrs: all" >> $SLAVEOUT $LDAPSEARCH -x -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ - 'sn=Jon' > $SLAVEOUT 2>&1 + 'sn=Jon' >> $SLAVEOUT 2>&1 RC=$? if test $RC != 0 ; then echo "ldapsearch failed ($RC)!" @@ -126,6 +129,7 @@ if test $RC != 0 ; then fi echo "Query 2: filter:(|(cn=*Jon*)(sn=Jon*)) attrs:cn sn title uid" +echo "# Query 2: filter:(|(cn=*Jon*)(sn=Jon*)) attrs:cn sn title uid" >> $SLAVEOUT $LDAPSEARCH -x -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ '(|(cn=*Jon*)(sn=Jon*))' cn sn title uid >> $SLAVEOUT 2>&1 RC=$? @@ -136,6 +140,7 @@ if test $RC != 0 ; then fi echo "Query 3: filter:(sn=Smith*) attrs:cn sn title uid" +echo "# Query 3: filter:(sn=Smith*) attrs:cn sn title uid" >> $SLAVEOUT $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ 'sn=Smith*' cn sn title uid >> $SLAVEOUT 2>&1 RC=$? @@ -146,6 +151,7 @@ if test $RC != 0 ; then fi echo "Query 4: filter:(sn=Doe*) attrs:cn sn title uid" +echo "# Query 4: filter:(sn=Doe*) attrs:cn sn title uid" >> $SLAVEOUT $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ 'sn=Doe' cn sn title uid >> $SLAVEOUT 2>&1 RC=$? @@ -156,6 +162,7 @@ if test $RC != 0 ; then fi echo "Query 5: filter:(uid=bjorn) attrs:mail postaladdress telephonenumber cn uid" +echo "# Query 5: filter:(uid=bjorn) attrs:mail postaladdress telephonenumber cn uid" >> $SLAVEOUT $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ 'uid=bjorn' mail postaladdress telephonenumber cn uid >> $SLAVEOUT 2>&1 RC=$? @@ -166,6 +173,7 @@ if test $RC != 0 ; then fi echo "Query 6: filter:(mail=*@mail.alumni.example.com) cn sn title uid" +echo "# Query 6: filter:(mail=*@mail.alumni.example.com) cn sn title uid" >> $SLAVEOUT $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ 'mail=*@mail.alumni.example.com' cn sn title uid >> $SLAVEOUT 2>&1 RC=$? @@ -176,6 +184,7 @@ if test $RC != 0 ; then fi echo "Query 7: filter:(mail=*) cn sn title uid" +echo "# Query 7: filter:(mail=*) cn sn title uid" >> $SLAVEOUT $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ 'mail=*' cn sn title uid >> $SLAVEOUT 2>&1 RC=$? @@ -209,6 +218,7 @@ else fi echo "Query 8: filter:(|(cn=*Jones)(sn=Jones)) attrs:cn sn title uid" +echo "# Query 8: filter:(|(cn=*Jones)(sn=Jones)) attrs:cn sn title uid" >> $SLAVEOUT $LDAPSEARCH -x -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ '(|(cn=*Jones)(sn=Jones))' cn sn title uid >> $SLAVEOUT 2>&1 RC=$? @@ -219,6 +229,7 @@ if test $RC != 0 ; then fi echo "Query 9: filter:(sn=Smith) attrs:cn sn title uid" +echo "# Query 9: filter:(sn=Smith) attrs:cn sn title uid" >> $SLAVEOUT $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ 'sn=Smith' cn sn title uid >> $SLAVEOUT 2>&1 RC=$? @@ -229,6 +240,7 @@ if test $RC != 0 ; then fi echo "Query 10: filter:(uid=bjorn) attrs:mail postaladdress telephonenumber cn uid" +echo "# Query 10: filter:(uid=bjorn) attrs:mail postaladdress telephonenumber cn uid" >> $SLAVEOUT $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ 'uid=bjorn' mail postaladdress telephonenumber cn uid >> $SLAVEOUT 2>&1 RC=$? @@ -239,6 +251,7 @@ if test $RC != 0 ; then fi echo "Query 11: filter:(mail=jaj@mail.alumni.example.com) cn sn title uid" +echo "# Query 11: filter:(mail=jaj@mail.alumni.example.com) cn sn title uid" >> $SLAVEOUT $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT2 \ 'mail=jaj@mail.alumni.example.com' cn sn title uid >> $SLAVEOUT 2>&1 RC=$?