]> git.sur5r.net Git - openldap/blobdiff - clients/tools/ldapsearch.c
Changes from HEAD for beta
[openldap] / clients / tools / ldapsearch.c
index 399933196cde8baa2003eaf3cb6c5c67bf2bd176..31be49d5f0b4385c6e64b69997cc226eba7a9182 100644 (file)
@@ -75,17 +75,8 @@ usage( void )
 #ifdef LDAP_CONTROL_SUBENTRIES
        fprintf( stderr, _("             [!]subentries[=true|false]  (subentries)\n"));
 #endif
-#ifdef LDAP_CLIENT_UPDATE
-       fprintf( stderr, _("             [!]lcup=p/<cint>/<cookie>/<slimit> (LDAP client update)\n"));
-/*
- * "                      s/<cint>/<cookie>  (LDAP client update)\n"
- * "                     sp/<cint>/<cookie>/<slimit>\n"
- * */
-#endif
-#ifdef LDAP_SYNC
        fprintf( stderr, _("             [!]sync=ro[/<cookie>]            (LDAP Sync refreshOnly)\n"));
        fprintf( stderr, _("                     rp[/<cookie>][/<slimit>] (LDAP Sync refreshAndPersist)\n"));
-#endif
        fprintf( stderr, _("  -F prefix  URL prefix for files (default: %s)\n"), def_urlpre);
        fprintf( stderr, _("  -l limit   time limit (in seconds) for search\n"));
        fprintf( stderr, _("  -L         print responses in LDIFv1 format\n"));
@@ -160,21 +151,9 @@ static char        *vrFilter = NULL;
 static int domainScope = 0;
 #endif
 
-#if defined(LDAP_CLIENT_UPDATE) || defined(LDAP_SYNC)
-static int lcup = 0;
 static int ldapsync = 0;
-#endif
-
-#ifdef LDAP_CLIENT_UPDATE
-static int lcup_cint = 0;
-static struct berval lcup_cookie = { 0, NULL };
-static int lcup_slimit = -1;
-#endif
-
-#ifdef LDAP_SYNC
 static struct berval sync_cookie = { 0, NULL };
 static int sync_slimit = -1;
-#endif
 
 #ifdef LDAP_CONTROL_PAGEDRESULTS
 static int pagedResults = 0;
@@ -330,67 +309,6 @@ handle_private_option( int i )
                        if( crit ) subentries *= -1;
 #endif
 
-#ifdef LDAP_CLIENT_UPDATE
-                } else if ( strcasecmp( control, "lcup" ) == 0 ) {
-                        char *cookiep;
-                        char *slimitp;
-                        if ( lcup ) {
-                                fprintf( stderr, _("client update control previously specified\n"));
-                                exit( EXIT_FAILURE );
-                        }
-                        if ( ldapsync != -1 ) {
-                                fprintf( stderr, _("ldap sync control previously specified\n"));
-                                exit( EXIT_FAILURE );
-                        }
-                        if ( cvalue == NULL ) {
-                                fprintf( stderr,
-                                        _("missing specification of client update control\n"));
-                                exit( EXIT_FAILURE );
-                        }
-                        if ( strncasecmp( cvalue, "p", 1 ) == 0 ) {
-                                lcup = LDAP_CUP_PERSIST_ONLY;
-                                cvalue = strchr( cvalue, '/' );
-                                cvalue++;
-                                cookiep = strchr( cvalue, '/' );
-                                *cookiep++ = '\0';
-                                lcup_cint = atoi( cvalue );
-                                cvalue = cookiep;
-                                slimitp = strchr( cvalue, '/' );
-                                *slimitp++ = '\0';
-                                while ( isspace( (unsigned char) *cookiep ) )
-                                    cookiep++;
-                                ber_str2bv( cookiep, 0, 0, &lcup_cookie );
-                                lcup_slimit = atoi( slimitp );
-/*
-                       } else if ( strncasecmp( cvalue, "s", 1 ) == 0 ) {
-                               lcup = LDAP_CUP_SYNC_ONLY;
-                               cvalue += 2;
-                               cookiep = strchr( cvalue, '/' );
-                               *cookiep++ = '\0';
-                               lcup_cint = atoi( cvalue );
-                               ber_str2bv( cookiep, 0, 0, &lcup_cookie );
-                       } else if ( strncasecmp( cvalue, "sp", 2 ) == 0 ) {
-                               lcup = LDAP_CUP_SYNC_AND_PERSIST;
-                               cvalue += 3;
-                               cookiep = strchr( cvalue, '/' );
-                               *cookiep++ = '\0';
-                               lcup_cint = atoi( cvalue );
-                               cvalue = cookiep;
-                               slimitp = strchr( cvalue, '/' );
-                               *slimitp++ = '\0';
-                               ber_str2bv( cookiep, 0, 0, &lcup_cookie );
-                               lcup_slimit = atoi( slimitp );
-*/
-                       } else {
-                               fprintf( stderr,
-                                       _("client update control value \"%s\" invalid\n"),
-                                       cvalue );
-                               exit( EXIT_FAILURE );
-                       }
-                       if ( crit ) lcup *= -1;
-#endif
-
-#ifdef LDAP_SYNC
        } else if ( strcasecmp( control, "sync" ) == 0 ) {
                        char *cookiep;
                        char *slimitp;
@@ -398,10 +316,6 @@ handle_private_option( int i )
                                fprintf( stderr, _("ldap sync control previously specified\n") );
                                exit( EXIT_FAILURE );
                        }
-                       if ( lcup ) {
-                               fprintf( stderr, _("client update control previously specified\n") );
-                               exit( EXIT_FAILURE );
-                       }
                        if ( cvalue == NULL ) {
                                fprintf( stderr,
                                        _("missing specification of ldap sync control\n"));
@@ -438,7 +352,6 @@ handle_private_option( int i )
                                exit( EXIT_FAILURE );
                        }
                        if ( crit ) ldapsync *= -1;
-#endif
 
                } else {
                        fprintf( stderr, _("Invalid control name: %s\n"), control );
@@ -527,15 +440,9 @@ main( int argc, char **argv )
        int                     rc, i, first;
        LDAP            *ld = NULL;
        BerElement      *seber = NULL, *vrber = NULL, *prber = NULL;
-#ifdef LDAP_CLIENT_UPDATE
-       BerElement      *cuber = NULL;
-        struct berval   *cubvalp = NULL;
-#endif
 
-#ifdef LDAP_SYNC
        BerElement      *syncber = NULL;
        struct berval   *syncbvalp = NULL;
-#endif
 
        tool_init();
 
@@ -633,20 +540,16 @@ main( int argc, char **argv )
        tool_bind( ld );
 
 getNextPage:
-       if ( manageDSAit || noop || subentries || valuesReturnFilter
+       if ( assertion || authzid || manageDSAit || noop
 #ifdef LDAP_CONTROL_X_DOMAIN_SCOPE
-                       || domainScope
+               || domainScope
 #endif
 #ifdef LDAP_CONTROL_PAGEDRESULTS
-                       || pageSize
-#endif
-#ifdef LDAP_CLIENT_UPDATE
-                       || lcup
-#endif
-#ifdef LDAP_SYNC
-                       || ldapsync
+               || pageSize
 #endif
-                       ) {
+               || ldapsync
+               || subentries || valuesReturnFilter )
+       {
                int err;
                int i=0;
                LDAPControl c[6];
@@ -684,37 +587,6 @@ getNextPage:
                }
 #endif
 
-#ifdef LDAP_CLIENT_UPDATE
-                if ( lcup ) {
-                        if (( cuber = ber_alloc_t(LBER_USE_DER)) == NULL ) {
-                                return EXIT_FAILURE;
-                        }
-
-                        if ( lcup_cookie.bv_len == 0 ) {
-                                err = ber_printf( cuber, "{ei}", abs(lcup), lcup_cint );
-                        } else {
-                                err = ber_printf( cuber, "{ei{sO}}", abs(lcup), lcup_cint,
-                                    LDAP_CUP_COOKIE_OID, &lcup_cookie );
-                        }
-
-                        if ( err == LBER_ERROR ) {
-                                ber_free( cuber, 1 );
-                                fprintf( stderr, _("client update control encoding error!\n") );
-                                return EXIT_FAILURE;
-                        }
-
-                        if ( ber_flatten( cuber, &cubvalp ) == LBER_ERROR ) {
-                                return EXIT_FAILURE;
-                        }
-
-                        c[i].ldctl_oid = LDAP_CONTROL_CLIENT_UPDATE;
-                        c[i].ldctl_value = (*cubvalp);
-                        c[i].ldctl_iscritical = lcup < 0;
-                        i++;
-                }
-#endif
-
-#ifdef LDAP_SYNC
                if ( ldapsync ) {
                        if (( syncber = ber_alloc_t(LBER_USE_DER)) == NULL ) {
                                return EXIT_FAILURE;
@@ -742,7 +614,6 @@ getNextPage:
                        c[i].ldctl_iscritical = ldapsync < 0;
                        i++;
                }
-#endif
 
                if ( valuesReturnFilter ) {
                if (( vrber = ber_alloc_t(LBER_USE_DER)) == NULL ) {
@@ -948,12 +819,10 @@ static int dosearch(
        int                     npartial;
        LDAPMessage             *res, *msg;
        ber_int_t               msgid;
-#ifdef LDAP_SYNC
        char                    *retoid = NULL;
        struct berval           *retdata = NULL;
        int                     nresponses_psearch = -1;
        int                     cancel_msgid = -1;
-#endif
 
        if( filtpatt != NULL ) {
                filter = malloc( strlen( filtpatt ) + strlen( value ) );
@@ -1011,10 +880,8 @@ static int dosearch(
                        msg = ldap_next_message( ld, msg ) )
                {
                        if ( nresponses++ ) putchar('\n');
-#if LDAP_SYNC
                        if ( nresponses_psearch >= 0 ) 
                                nresponses_psearch++;
-#endif
 
                        switch( ldap_msgtype( msg ) ) {
                        case LDAP_RES_SEARCH_ENTRY:
@@ -1036,14 +903,12 @@ static int dosearch(
                                        goto done;
                                }
 
-#ifdef LDAP_SYNC
                                if ( cancel_msgid != -1 &&
                                                cancel_msgid == ldap_msgid( msg ) ) {
                                        printf(_("Cancelled \n"));
                                        printf(_("cancel_msgid = %d\n"), cancel_msgid);
                                        goto done;
                                }
-#endif
                                break;
 
                        case LDAP_RES_SEARCH_RESULT:
@@ -1054,28 +919,14 @@ static int dosearch(
                                }
 #endif
 
-#ifdef LDAP_CLIENT_UPDATE
-                               if ( lcup == LDAP_CUP_PERSIST_ONLY ||
-                                    lcup == LDAP_CUP_SYNC_AND_PERSIST ) {
-                                       break;
-                               }
-#endif
-#if defined(LDAP_CLIENT_UPDATE) && defined(LDAP_SYNC)
-                               else
-#endif
-#ifdef LDAP_SYNC
                                if ( ldapsync == LDAP_SYNC_REFRESH_AND_PERSIST ) {
                                        break;
                                }
-#endif
 
                                goto done;
 
                        case LDAP_RES_INTERMEDIATE:
                                npartial++;
-#ifndef LDAP_SYNC
-                               print_partial( ld, msg );
-#else
                                ldap_parse_intermediate( ld, msg,
                                        &retoid, &retdata, NULL, 0 );
 
@@ -1092,16 +943,8 @@ static int dosearch(
                                ldap_memfree( retoid );
                                ber_bvfree( retdata );
                                goto done;
-#endif
                        }
 
-#ifdef LDAP_CLIENT_UPDATE
-                       if ( lcup && lcup_slimit != -1 && nresponses >= lcup_slimit ) {
-                               ldap_abandon (ld, ldap_msgid(msg));
-                               goto done;
-                       }
-#endif
-#ifdef LDAP_SYNC
                        if ( ldapsync && sync_slimit != -1 &&
                                        nresponses_psearch >= sync_slimit ) {
                                BerElement *msgidber = NULL;
@@ -1113,8 +956,6 @@ static int dosearch(
                                                msgidvalp, NULL, NULL, &cancel_msgid);
                                nresponses_psearch = -1;
                        }
-#endif
-
                }
 
                ldap_msgfree( res );