v2[len-1] = '\n';
memcpy(&v2[len], ref[i]->bv_val, ref[i]->bv_len );
len += ref[i]->bv_len;
+ if (ref[i]->bv_val[ref[i]->bv_len-1] != '/')
+ ++len;
}
v2[len-1] = '\0';
struct berval **ref,
const char *resoid,
struct berval *resdata,
+ struct berval *sasldata,
LDAPControl **ctrls
)
{
rc = ber_printf( ber, "{V}", ref );
}
+ if( rc != -1 && sasldata != NULL ) {
+ rc = ber_printf( ber, "tO",
+ LDAP_TAG_SASL_RES_CREDS, sasldata );
+ }
+
if( rc != -1 && resoid != NULL ) {
- rc = ber_printf( ber, "s", resoid );
+ rc = ber_printf( ber, "ts",
+ LDAP_TAG_EXOP_RES_OID, resoid );
}
if( rc != -1 && resdata != NULL ) {
- rc = ber_printf( ber, "O", resdata );
-
+ rc = ber_printf( ber, "tO",
+ LDAP_TAG_EXOP_RES_VALUE, resdata );
}
if( rc != -1 ) {
0 );
}
#endif
+
send_ldap_response( conn, op, tag, msgid,
err, NULL, text, NULL,
- reqoid, NULL, NULL );
+ reqoid, NULL, NULL, NULL );
Statslog( LDAP_DEBUG_STATS,
"conn=%ld op=%ld DISCONNECT err=%ld tag=%lu text=%s\n",
send_ldap_response( conn, op, tag, msgid,
err, matched, text, ref,
- NULL, NULL, ctrls );
+ NULL, NULL, NULL, ctrls );
Statslog( LDAP_DEBUG_STATS,
"conn=%ld op=%ld RESULT tag=%lu err=%ld text=%s\n",
ber_int_t err,
const char *matched,
const char *text,
+ struct berval **ref,
+ LDAPControl **ctrls,
struct berval *cred
)
{
#endif
send_ldap_response( conn, op, tag, msgid,
- err, matched, text, NULL,
- NULL, cred, NULL );
+ err, matched, text, ref,
+ NULL, NULL, cred, ctrls );
}
void
ber_int_t err,
const char *matched,
const char *text,
+ struct berval **refs,
char *rspoid,
- struct berval *rspdata
+ struct berval *rspdata,
+ LDAPControl **ctrls
)
{
ber_tag_t tag;
ber_int_t msgid;
Debug( LDAP_DEBUG_TRACE,
- "send_ldap_extended %ld:%s\n",
- (long) err, rspoid ? rspoid : "", NULL );
+ "send_ldap_extended %ld:%s (%ld)\n",
+ (long) err,
+ rspoid ? rspoid : "",
+ rspdata != NULL ? (long) rspdata->bv_len : (long) 0 );
tag = req2res( op->o_tag );
msgid = (tag != LBER_SEQUENCE) ? op->o_msgid : 0;
0 );
}
#endif
+
send_ldap_response( conn, op, tag, msgid,
- err, matched, text, NULL,
- rspoid, rspdata, NULL );
+ err, matched, text, refs,
+ rspoid, rspdata, NULL, ctrls );
}
send_ldap_response( conn, op, tag, msgid,
err, matched, text, refs,
- NULL, NULL, ctrls );
+ NULL, NULL, NULL, ctrls );
Statslog( LDAP_DEBUG_STATS,
"conn=%ld op=%ld SEARCH RESULT tag=%lu err=%ld text=%s\n",
if( op->o_protocol < LDAP_VERSION3 ) {
/* save the references for the result */
- if( *refs == NULL ) {
+ if( *refs != NULL ) {
value_add( v2refs, refs );
}
return 0;