]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/result.c
debug messages incorrectly said "add" instead of "remove".
[openldap] / servers / slapd / result.c
index 620c7ef13c00542c41ca437a374f80d67ca000eb..a18ba20a8611ba266c2c212f56e5310cb54e294f 100644 (file)
@@ -1,33 +1,18 @@
 /* result.c - routines to send ldap results, errors, and referrals */
 
-#define DISABLE_BRIDGE
 #include "portable.h"
 
 #include <stdio.h>
+
+#include <ac/errno.h>
+#include <ac/signal.h>
+#include <ac/socket.h>
 #include <ac/string.h>
 #include <ac/time.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <errno.h>
-#include <signal.h>
-#include "slap.h"
-
-#ifdef DECL_SYS_ERRLIST
-extern int             sys_nerr;
-extern char            *sys_errlist[];
-#endif
+#include <ac/unistd.h>         /* get close() */
 
-extern int             active_threads;
-extern pthread_mutex_t active_threads_mutex;
-extern pthread_mutex_t new_conn_mutex;
-extern pthread_t       listener_tid;
-extern struct acl      *acl_get_applicable();
-extern long            num_entries_sent;
-extern long            num_bytes_sent;
-extern pthread_mutex_t num_sent_mutex;
+#include "slap.h"
 
-void   close_connection();
 
 static void
 send_ldap_result2(
@@ -43,6 +28,9 @@ send_ldap_result2(
        int             rc, sd;
        unsigned long   tag, bytes;
 
+       if ( err == LDAP_PARTIAL_RESULTS && (text == NULL || *text == '\0') )
+               err = LDAP_NO_SUCH_OBJECT;
+
        Debug( LDAP_DEBUG_TRACE, "send_ldap_result %d:%s:%s\n", err, matched ?
            matched : "", text ? text : "" );
 
@@ -64,7 +52,7 @@ send_ldap_result2(
                break;
        }
 
-#ifdef COMPAT30
+#ifdef LDAP_COMPAT30
        if ( (ber = ber_alloc_t( conn->c_version == 30 ? 0 : LBER_USE_DER ))
            == NULLBER ) {
 #else
@@ -74,13 +62,13 @@ send_ldap_result2(
                return;
        }
 
-#ifdef CLDAP
+#ifdef LDAP_CONNECTIONLESS
        if ( op->o_cldap ) {
                rc = ber_printf( ber, "{is{t{ess}}}", op->o_msgid, "", tag,
                    err, matched ? matched : "", text ? text : "" );
        } else
 #endif
-#ifdef COMPAT30
+#ifdef LDAP_COMPAT30
        if ( conn->c_version == 30 ) {
                rc = ber_printf( ber, "{it{{ess}}}", op->o_msgid, tag, err,
                    matched ? matched : "", text ? text : "" );
@@ -125,11 +113,7 @@ send_ldap_result2(
                active_threads--;
                conn->c_writewaiter = 1;
 
-#ifdef linux
-               pthread_kill( listener_tid, SIGSTKFLT );
-#else /* !linux */
-               pthread_kill( listener_tid, SIGUSR1 );
-#endif /* !linux */
+               pthread_kill( listener_tid, LDAP_SIGUSR1 );
 
                pthread_cond_wait( &conn->c_wcv, &active_threads_mutex );
                pthread_mutex_unlock( &active_threads_mutex );
@@ -160,7 +144,7 @@ send_ldap_result(
     char       *text
 )
 {
-#ifdef CLDAP
+#ifdef LDAP_CONNECTIONLESS
        if ( op->o_cldap ) {
                SAFEMEMCPY( (char *)conn->c_sb.sb_useaddr, &op->o_clientaddr,
                    sizeof( struct sockaddr ));
@@ -214,7 +198,7 @@ send_search_entry(
 
        edn = dn_normalize_case( strdup( e->e_dn ) );
 
-#ifdef COMPAT30
+#ifdef LDAP_COMPAT30
        if ( (ber = ber_alloc_t( conn->c_version == 30 ? 0 : LBER_USE_DER ))
                == NULLBER )
 #else
@@ -227,7 +211,7 @@ send_search_entry(
                goto error_return;
        }
 
-#ifdef COMPAT30
+#ifdef LDAP_COMPAT30
        if ( conn->c_version == 30 ) {
                rc = ber_printf( ber, "{it{{s{", op->o_msgid,
                    LDAP_RES_SEARCH_ENTRY, e->e_dn );
@@ -316,7 +300,7 @@ send_search_entry(
 
        free(edn);
 
-#ifdef COMPAT30
+#ifdef LDAP_COMPAT30
        if ( conn->c_version == 30 ) {
                rc = ber_printf( ber, "}}}}" );
        } else
@@ -360,7 +344,7 @@ send_search_entry(
                pthread_mutex_lock( &active_threads_mutex );
                active_threads--;
                conn->c_writewaiter = 1;
-               pthread_kill( listener_tid, SIGUSR1 );
+               pthread_kill( listener_tid, LDAP_SIGUSR1 );
                pthread_cond_wait( &conn->c_wcv, &active_threads_mutex );
                pthread_mutex_unlock( &active_threads_mutex );