]> git.sur5r.net Git - openldap/blobdiff - servers/ldapd/search.c
Use -llber set_nonblock implementation.
[openldap] / servers / ldapd / search.c
index 03d995c1c7c00d53fe61f81c434dbb8820390fa9..b57bdbe56cc3b315ff1dfdd08f1390e569873f58 100644 (file)
 #include "ldap.h"
 #include "common.h"
 
-static get_filter();
-static get_filter_list();
-static get_substring_filter();
+static int     get_filter( BerElement *ber, Filter *filt );
+static int     get_filter_list( BerElement *ber, Filter f );
+static int     get_substring_filter( BerElement *ber, Filter f );
 
 #ifdef LDAP_COMPAT
-extern int     version;
-extern int     ldap_compat;
 #define SEARCHRESTAG   (ldap_compat == 20 ? OLD_LDAP_RES_SEARCH_RESULT : LDAP_RES_SEARCH_RESULT)
 #else
 #define SEARCHRESTAG   LDAP_RES_SEARCH_RESULT
@@ -55,7 +53,6 @@ do_search(
        char                    **attrs;
        struct ds_search_arg    sa;
        static CommonArgs       common = default_common_args;
-       extern DN               ldap_str2dn();
 
        Debug( LDAP_DEBUG_TRACE, "do_search\n", 0, 0, 0 );
 
@@ -206,7 +203,8 @@ do_search(
        return( 1 );
 }
 
-static get_filter( BerElement *ber, Filter *filt )
+static int
+get_filter( BerElement *ber, Filter *filt )
 {
        unsigned long   tag, len;
        int             err;
@@ -375,7 +373,7 @@ static get_filter( BerElement *ber, Filter *filt )
                break;
 
        default:
-               Debug( LDAP_DEBUG_ANY, "unknown filter type %d\n", tag, 0, 0 );
+               Debug( LDAP_DEBUG_ANY, "unknown filter type %lu\n", tag, 0, 0 );
                free( f );
                return( LDAP_PROTOCOL_ERROR );
                break;
@@ -385,7 +383,8 @@ static get_filter( BerElement *ber, Filter *filt )
        return( err );
 }
 
-static get_filter_list( BerElement *ber, Filter f )
+static int
+get_filter_list( BerElement *ber, Filter f )
 {
        Filter          new, tail;
        int             err;
@@ -416,14 +415,14 @@ static get_filter_list( BerElement *ber, Filter f )
        return( 0 );
 }
 
-static get_substring_filter( BerElement *ber, Filter f )
+static int
+get_substring_filter( BerElement *ber, Filter f )
 {
        unsigned long   tag, len;
        char            typestr[64];
        AttributeType   type;
        char            *valstr, *last;
        AttributeValue  value;
-       extern short    ldap_dn_syntax;
 
        Debug( LDAP_DEBUG_TRACE, "get_substring_filter\n", 0, 0, 0 );
 
@@ -553,7 +552,7 @@ search_result(
 
 #ifdef LDAP_CONNECTIONLESS
        if ( m->m_cldap ) {
-               if ((ber = der_alloc()) == NULLBER ) {
+               if ((ber = der_alloc()) == NULL ) {
                        send_ldap_msgresult( sb, SEARCHRESTAG, m,
                            LDAP_OPERATIONS_ERROR, NULL, "der_alloc" );
                        return;
@@ -574,7 +573,7 @@ search_result(
                if ( !m->m_cldap )
 #endif /* LDAP_CONNECTIONLESS */
 
-                       if ( (ber = der_alloc()) == NULLBER ) {
+                       if ( (ber = der_alloc()) == NULL ) {
                                send_ldap_msgresult( sb, SEARCHRESTAG, m,
                                    LDAP_OPERATIONS_ERROR, NULL, "der_alloc" );
                                return;
@@ -701,8 +700,8 @@ search_result(
                            LDAP_OPERATIONS_ERROR, NULL, "ber_printf" );
                        return;
                }
-               SAFEMEMCPY( (char *)sb->sb_useaddr, &m->m_clientaddr,
-                   sizeof( struct sockaddr ));
+               ber_pvt_sb_udp_set_dst( sb, &m->m_clientaddr );
+
                if ( ber_flush( sb, ber, 1 ) != 0 ) {
                    send_ldap_msgresult( sb, SEARCHRESTAG, m, 
                        LDAP_RESULTS_TOO_LARGE, NULL, "ber_flush" );