]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/result.c
reject registrations when back-monitor is not configured
[openldap] / servers / slapd / result.c
index 081eae7b0ec6d8929f5c0536ae7a797e76275dd0..6ee58c16a383e08d22a337ddaa91de0727a77059 100644 (file)
@@ -189,7 +189,7 @@ static long send_ldap_ber(
                    err, sock_errstr(err), 0 );
 
                if ( err != EWOULDBLOCK && err != EAGAIN ) {
-                       connection_closing( conn );
+                       connection_closing( conn, "connection lost on write" );
 
                        ldap_pvt_thread_mutex_unlock( &conn->c_mutex );
                        ldap_pvt_thread_mutex_unlock( &conn->c_write_mutex );
@@ -266,7 +266,7 @@ send_ldap_controls( Operation *o, BerElement *ber, LDAPControl **c )
 
                ber_init2( sber, NULL, LBER_USE_DER );
 
-               ber_printf( sber, "{i}", LDAP_UNWILLING_TO_PERFORM );
+               ber_printf( sber, "{e}", LDAP_UNWILLING_TO_PERFORM );
 
                if( ber_flatten2( ber, &sorted.ldctl_value, 0 ) == -1 ) {
                        return -1;
@@ -613,7 +613,12 @@ send_ldap_sasl( Operation *op, SlapReply *rs )
        rs->sr_tag = req2res( op->o_tag );
        rs->sr_msgid = (rs->sr_tag != LBER_SEQUENCE) ? op->o_msgid : 0;
 
-       send_ldap_response( op, rs );
+       if ( send_ldap_response( op, rs ) == SLAP_CB_CONTINUE ) {
+               Statslog( LDAP_DEBUG_STATS,
+                       "%s RESULT tag=%lu err=%d text=%s\n",
+                       op->o_log_prefix, rs->sr_tag, rs->sr_err,
+                       rs->sr_text ? rs->sr_text : "", 0 );
+       }
 }
 
 void
@@ -630,7 +635,12 @@ slap_send_ldap_extended( Operation *op, SlapReply *rs )
        rs->sr_tag = req2res( op->o_tag );
        rs->sr_msgid = (rs->sr_tag != LBER_SEQUENCE) ? op->o_msgid : 0;
 
-       send_ldap_response( op, rs );
+       if ( send_ldap_response( op, rs ) == SLAP_CB_CONTINUE ) {
+               Statslog( LDAP_DEBUG_STATS,
+                       "%s RESULT oid=%s err=%d text=%s\n",
+                       op->o_log_prefix, rs->sr_rspoid ? rs->sr_rspoid : "",
+                       rs->sr_err, rs->sr_text ? rs->sr_text : "", 0 );
+       }
 }
 
 void
@@ -644,7 +654,12 @@ slap_send_ldap_intermediate( Operation *op, SlapReply *rs )
                rs->sr_rspdata != NULL ? rs->sr_rspdata->bv_len : 0 );
        rs->sr_tag = LDAP_RES_INTERMEDIATE;
        rs->sr_msgid = op->o_msgid;
-       send_ldap_response( op, rs );
+       if ( send_ldap_response( op, rs ) == SLAP_CB_CONTINUE ) {
+               Statslog( LDAP_DEBUG_STATS2,
+                       "%s INTERM oid=%s\n",
+                       op->o_log_prefix,
+                       rs->sr_rspoid ? rs->sr_rspoid : "", 0, 0, 0 );
+       }
 }
 
 int
@@ -821,7 +836,7 @@ slap_send_search_entry( Operation *op, SlapReply *rs )
                int finish = 0;
 
                if ( rs->sr_attrs == NULL ) {
-                       /* all attrs request, skip operational attributes */
+                       /* all user attrs request, skip operational attributes */
                        if( is_at_operational( desc->ad_type ) ) {
                                continue;
                        }
@@ -830,14 +845,13 @@ slap_send_search_entry( Operation *op, SlapReply *rs )
                        /* specific attrs requested */
                        if ( is_at_operational( desc->ad_type ) ) {
                                if ( !SLAP_OPATTRS( rs->sr_attr_flags ) &&
-                                               !ad_inlist( desc, rs->sr_attrs ) )
+                                       !ad_inlist( desc, rs->sr_attrs ) )
                                {
                                        continue;
                                }
 
                        } else {
-                               if ( !userattrs && !ad_inlist( desc, rs->sr_attrs ) )
-                               {
+                               if ( !userattrs && !ad_inlist( desc, rs->sr_attrs ) ) {
                                        continue;
                                }
                        }
@@ -979,7 +993,7 @@ slap_send_search_entry( Operation *op, SlapReply *rs )
                AttributeDescription *desc = a->a_desc;
 
                if ( rs->sr_attrs == NULL ) {
-                       /* all attrs request, skip operational attributes */
+                       /* all user attrs request, skip operational attributes */
                        if( is_at_operational( desc->ad_type ) ) {
                                continue;
                        }
@@ -988,7 +1002,7 @@ slap_send_search_entry( Operation *op, SlapReply *rs )
                        /* specific attrs requested */
                        if( is_at_operational( desc->ad_type ) ) {
                                if ( !SLAP_OPATTRS( rs->sr_attr_flags ) && 
-                                               !ad_inlist( desc, rs->sr_attrs ) )
+                                       !ad_inlist( desc, rs->sr_attrs ) )
                                {
                                        continue;
                                }
@@ -1319,10 +1333,19 @@ slap_send_search_reference( Operation *op, SlapReply *rs )
 #ifdef LDAP_CONNECTIONLESS
        }
 #endif
+       if ( rs->sr_ref != NULL ) {
+               int     r;
 
-       Statslog( LDAP_DEBUG_STATS2, "%s REF dn=\"%s\"\n",
-               op->o_log_prefix, rs->sr_entry ? rs->sr_entry->e_dn : "(null)",
-               0, 0, 0 );
+               for ( r = 0; !BER_BVISNULL( &rs->sr_ref[ r ] ); r++ ) {
+                       Statslog( LDAP_DEBUG_STATS2, "%s REF #%d \"%s\"\n",
+                               op->o_log_prefix, r, rs->sr_ref[0].bv_val,
+                               0, 0 );
+               }
+
+       } else {
+               Statslog( LDAP_DEBUG_STATS2, "%s REF \"(null)\"\n",
+                       op->o_log_prefix, 0, 0, 0, 0 );
+       }
 
        Debug( LDAP_DEBUG_TRACE, "<= send_search_reference\n", 0, 0, 0 );