mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-18 11:05:48 +08:00
Add dontUseCopy control to ldapcompare(1) and ldapsearch(1).
No slapd(8) support yet. Also removed unnecessary #ifdefs
This commit is contained in:
parent
b02b2b1556
commit
a525a24eb5
@ -1378,7 +1378,8 @@ void tool_print_ctrls(
|
||||
BER_BVSTR( &what, "postread" );
|
||||
}
|
||||
|
||||
tool_write_ldif( LDIF_PUT_COMMENT, "==> ", what.bv_val, what.bv_len );
|
||||
tool_write_ldif( LDIF_PUT_COMMENT, "==> ",
|
||||
what.bv_val, what.bv_len );
|
||||
ber = ber_init( &ctrls[i]->ldctl_value );
|
||||
if ( ber == NULL ) {
|
||||
/* ... */
|
||||
@ -1391,13 +1392,16 @@ void tool_print_ctrls(
|
||||
int i;
|
||||
BerVarray vals = NULL;
|
||||
|
||||
if ( ber_scanf( ber, "[W]", &vals ) == LBER_ERROR || vals == NULL ) {
|
||||
if ( ber_scanf( ber, "[W]", &vals ) == LBER_ERROR ||
|
||||
vals == NULL )
|
||||
{
|
||||
/* error? */
|
||||
continue;
|
||||
}
|
||||
|
||||
for ( i = 0; vals[ i ].bv_val != NULL; i++ ) {
|
||||
tool_write_ldif( ldif ? LDIF_PUT_COMMENT : LDIF_PUT_VALUE,
|
||||
tool_write_ldif(
|
||||
ldif ? LDIF_PUT_COMMENT : LDIF_PUT_VALUE,
|
||||
bv.bv_val, vals[ i ].bv_val, vals[ i ].bv_len );
|
||||
}
|
||||
|
||||
@ -1409,10 +1413,12 @@ void tool_print_ctrls(
|
||||
ber_free( ber, 1 );
|
||||
}
|
||||
|
||||
tool_write_ldif( LDIF_PUT_COMMENT, "<== ", what.bv_val, what.bv_len );
|
||||
tool_write_ldif( LDIF_PUT_COMMENT, "<== ",
|
||||
what.bv_val, what.bv_len );
|
||||
|
||||
#ifdef LDAP_CONTROL_PAGEDRESULTS
|
||||
} else if ( strcmp( ctrls[i]->ldctl_oid, LDAP_CONTROL_PAGEDRESULTS ) == 0 ) {
|
||||
} else if ( strcmp( ctrls[i]->ldctl_oid,
|
||||
LDAP_CONTROL_PAGEDRESULTS ) == 0 )
|
||||
{
|
||||
BerElement *ber;
|
||||
struct berval cookie;
|
||||
int size;
|
||||
@ -1454,10 +1460,11 @@ void tool_print_ctrls(
|
||||
if ( ber != NULL ) {
|
||||
ber_free( ber, 1 );
|
||||
}
|
||||
#endif /* LDAP_CONTROL_PAGEDRESULTS */
|
||||
|
||||
#ifdef LDAP_CONTROL_PASSWORDPOLICYREQUEST
|
||||
} else if ( strcmp( ctrls[i]->ldctl_oid, LDAP_CONTROL_PASSWORDPOLICYRESPONSE ) == 0 ) {
|
||||
} else if ( strcmp( ctrls[i]->ldctl_oid,
|
||||
LDAP_CONTROL_PASSWORDPOLICYRESPONSE ) == 0 )
|
||||
{
|
||||
int expire = 0, grace = 0, rc;
|
||||
LDAPPasswordPolicyError pperr;
|
||||
|
||||
@ -1485,9 +1492,8 @@ void tool_print_ctrls(
|
||||
tool_write_ldif( ldif ? LDIF_PUT_COMMENT : LDIF_PUT_VALUE,
|
||||
"ppolicy", buf, ptr - buf );
|
||||
}
|
||||
}
|
||||
#endif /* LDAP_CONTROL_PASSWORDPOLICYREQUEST */
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -82,6 +82,10 @@ usage( void )
|
||||
fprintf( stderr, _(" b64value\tbase64 encoding of assertion value\n"));
|
||||
|
||||
fprintf( stderr, _("Compare options:\n"));
|
||||
#ifdef LDAP_CONTROL_DONTUSECOPY
|
||||
fprintf( stderr, _(" -E [!]<ext>[=<extparam>] compare extensions (! indicates criticality)\n"));
|
||||
fprintf( stderr, _(" !dontUseCopy (Don't Use Copy)\n"));
|
||||
#endif
|
||||
fprintf( stderr, _(" -z Quiet mode,"
|
||||
" don't print anything, use return values\n"));
|
||||
tool_common_usage();
|
||||
@ -101,13 +105,17 @@ static int docompare LDAP_P((
|
||||
const char options[] = "z"
|
||||
"Cd:D:e:h:H:IkKMnO:p:P:QR:U:vVw:WxX:y:Y:Z";
|
||||
|
||||
#ifdef LDAP_CONTROL_DONTUSECOPY
|
||||
int dontUseCopy = 0;
|
||||
#endif
|
||||
|
||||
int
|
||||
handle_private_option( int i )
|
||||
{
|
||||
char *control, *cvalue;
|
||||
int crit;
|
||||
|
||||
switch ( i ) {
|
||||
#if 0
|
||||
char *control, *cvalue;
|
||||
int crit;
|
||||
case 'E': /* compare extensions */
|
||||
if( protocol == LDAP_VERSION2 ) {
|
||||
fprintf( stderr, _("%s: -E incompatible with LDAPv%d\n"),
|
||||
@ -126,13 +134,38 @@ handle_private_option( int i )
|
||||
optarg++;
|
||||
}
|
||||
|
||||
control = strdup( optarg );
|
||||
control = ber_strdup( optarg );
|
||||
if ( (cvalue = strchr( control, '=' )) != NULL ) {
|
||||
*cvalue++ = '\0';
|
||||
}
|
||||
fprintf( stderr, _("Invalid compare extension name: %s\n"), control );
|
||||
usage();
|
||||
|
||||
#ifdef LDAP_CONTROL_DONTUSECOPY
|
||||
if ( strcasecmp( control, "dontUseCopy" ) == 0 ) {
|
||||
if( dontUseCopy ) {
|
||||
fprintf( stderr,
|
||||
_("dontUseCopy control previously specified\n"));
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
if( cvalue != NULL ) {
|
||||
fprintf( stderr,
|
||||
_("dontUseCopy: no control value expected\n") );
|
||||
usage();
|
||||
}
|
||||
if( !crit ) {
|
||||
fprintf( stderr,
|
||||
_("dontUseCopy: critical flag required\n") );
|
||||
usage();
|
||||
}
|
||||
|
||||
dontUseCopy = 1 + crit;
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
fprintf( stderr,
|
||||
_("Invalid compare extension name: %s\n"), control );
|
||||
usage();
|
||||
}
|
||||
break;
|
||||
|
||||
case 'z':
|
||||
quiet = 1;
|
||||
@ -205,8 +238,27 @@ main( int argc, char **argv )
|
||||
|
||||
tool_bind( ld );
|
||||
|
||||
if ( assertion || authzid || manageDSAit || noop ) {
|
||||
tool_server_controls( ld, NULL, 0 );
|
||||
if ( assertion || authzid || manageDSAit || noop
|
||||
#ifdef LDAP_CONTROL_DONTUSECOPY
|
||||
|| dontUseCopy
|
||||
#endif
|
||||
)
|
||||
{
|
||||
int err;
|
||||
int i = 0;
|
||||
LDAPControl c[1];
|
||||
|
||||
#ifdef LDAP_CONTROL_DONTUSECOPY
|
||||
if ( dontUseCopy ) {
|
||||
c[i].ldctl_oid = LDAP_CONTROL_DONTUSECOPY;
|
||||
c[i].ldctl_value.bv_val = NULL;
|
||||
c[i].ldctl_value.bv_len = 0;
|
||||
c[i].ldctl_iscritical = dontUseCopy > 1;
|
||||
i++;
|
||||
}
|
||||
#endif
|
||||
|
||||
tool_server_controls( ld, c, i );
|
||||
}
|
||||
|
||||
if ( verbose ) {
|
||||
|
@ -122,16 +122,13 @@ usage( void )
|
||||
fprintf( stderr, _(" -A retrieve attribute names only (no values)\n"));
|
||||
fprintf( stderr, _(" -b basedn base dn for search\n"));
|
||||
fprintf( stderr, _(" -E [!]<ext>[=<extparam>] search extensions (! indicates criticality)\n"));
|
||||
#ifdef LDAP_CONTROL_X_DOMAIN_SCOPE
|
||||
#ifdef LDAP_CONTROL_DONTUSECOPY
|
||||
fprintf( stderr, _(" !dontUseCopy (Don't Use Copy)\n"));
|
||||
#endif
|
||||
fprintf( stderr, _(" [!]domainScope (domain scope)\n"));
|
||||
#endif
|
||||
fprintf( stderr, _(" [!]mv=<filter> (matched values filter)\n"));
|
||||
#ifdef LDAP_CONTROL_PAGEDRESULTS
|
||||
fprintf( stderr, _(" [!]pr=<size>[/prompt|noprompt] (paged results/prompt)\n"));
|
||||
#endif
|
||||
#ifdef LDAP_CONTROL_SUBENTRIES
|
||||
fprintf( stderr, _(" [!]subentries[=true|false] (subentries)\n"));
|
||||
#endif
|
||||
fprintf( stderr, _(" [!]sync=ro[/<cookie>] (LDAP Sync refreshOnly)\n"));
|
||||
fprintf( stderr, _(" rp[/<cookie>][/<slimit>] (LDAP Sync refreshAndPersist)\n"));
|
||||
fprintf( stderr, _(" [!]<oid>=:<value> (generic control; no response handling)\n"));
|
||||
@ -141,11 +138,7 @@ usage( void )
|
||||
fprintf( stderr, _(" -LL print responses in LDIF format without comments\n"));
|
||||
fprintf( stderr, _(" -LLL print responses in LDIF format without comments\n"));
|
||||
fprintf( stderr, _(" and version\n"));
|
||||
#ifdef LDAP_SCOPE_SUBORDINATE
|
||||
fprintf( stderr, _(" -s scope one of base, one, sub or children (search scope)\n"));
|
||||
#else /* ! LDAP_SCOPE_SUBORDINATE */
|
||||
fprintf( stderr, _(" -s scope one of base, one, or sub (search scope)\n"));
|
||||
#endif /* ! LDAP_SCOPE_SUBORDINATE */
|
||||
fprintf( stderr, _(" -S attr sort the results by attribute `attr'\n"));
|
||||
fprintf( stderr, _(" -t write binary values to files in temporary directory\n"));
|
||||
fprintf( stderr, _(" -tt write all values to files in temporary directory\n"));
|
||||
@ -200,15 +193,16 @@ static int includeufn, vals2tmp = 0;
|
||||
static int subentries = 0, valuesReturnFilter = 0;
|
||||
static char *vrFilter = NULL;
|
||||
|
||||
#ifdef LDAP_CONTROL_X_DOMAIN_SCOPE
|
||||
static int domainScope = 0;
|
||||
#ifdef LDAP_CONTROL_DONTUSECOPY
|
||||
static int dontUseCopy = 0;
|
||||
#endif
|
||||
|
||||
static int domainScope = 0;
|
||||
|
||||
static int ldapsync = 0;
|
||||
static struct berval sync_cookie = { 0, NULL };
|
||||
static int sync_slimit = -1;
|
||||
|
||||
#ifdef LDAP_CONTROL_PAGEDRESULTS
|
||||
static int pagedResults = 0;
|
||||
static int pagePrompt = 1;
|
||||
static ber_int_t pageSize = 0;
|
||||
@ -278,7 +272,6 @@ static int parse_page_control(
|
||||
LDAP *ld,
|
||||
LDAPMessage *result,
|
||||
struct berval *cookie );
|
||||
#endif
|
||||
|
||||
static void
|
||||
urlize(char *url)
|
||||
@ -365,7 +358,6 @@ handle_private_option( int i )
|
||||
vrFilter = cvalue;
|
||||
protocol = LDAP_VERSION3;
|
||||
|
||||
#ifdef LDAP_CONTROL_PAGEDRESULTS
|
||||
} else if ( strcasecmp( control, "pr" ) == 0 ) {
|
||||
int num, tmp;
|
||||
/* PagedResults control */
|
||||
@ -406,8 +398,26 @@ handle_private_option( int i )
|
||||
pageSize = (ber_int_t) tmp;
|
||||
pagedResults = 1 + crit;
|
||||
|
||||
#ifdef LDAP_CONTROL_DONTUSECOPY
|
||||
} else if ( strcasecmp( control, "dontUseCopy" ) == 0 ) {
|
||||
if( dontUseCopy ) {
|
||||
fprintf( stderr,
|
||||
_("dontUseCopy control previously specified\n"));
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
if( cvalue != NULL ) {
|
||||
fprintf( stderr,
|
||||
_("dontUseCopy: no control value expected\n") );
|
||||
usage();
|
||||
}
|
||||
if( !crit ) {
|
||||
fprintf( stderr,
|
||||
_("dontUseCopy: critical flag required\n") );
|
||||
usage();
|
||||
}
|
||||
|
||||
dontUseCopy = 1 + crit;
|
||||
#endif
|
||||
#ifdef LDAP_CONTROL_X_DOMAIN_SCOPE
|
||||
} else if ( strcasecmp( control, "domainScope" ) == 0 ) {
|
||||
if( domainScope ) {
|
||||
fprintf( stderr,
|
||||
@ -421,9 +431,7 @@ handle_private_option( int i )
|
||||
}
|
||||
|
||||
domainScope = 1 + crit;
|
||||
#endif
|
||||
|
||||
#ifdef LDAP_CONTROL_SUBENTRIES
|
||||
} else if ( strcasecmp( control, "subentries" ) == 0 ) {
|
||||
if( subentries ) {
|
||||
fprintf( stderr,
|
||||
@ -441,7 +449,6 @@ handle_private_option( int i )
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
if( crit ) subentries *= -1;
|
||||
#endif
|
||||
|
||||
} else if ( strcasecmp( control, "sync" ) == 0 ) {
|
||||
char *cookiep;
|
||||
@ -569,12 +576,10 @@ handle_private_option( int i )
|
||||
scope = LDAP_SCOPE_BASE;
|
||||
} else if ( strncasecmp( optarg, "one", sizeof("one")-1 ) == 0 ) {
|
||||
scope = LDAP_SCOPE_ONELEVEL;
|
||||
#ifdef LDAP_SCOPE_SUBORDINATE
|
||||
} else if (( strcasecmp( optarg, "subordinate" ) == 0 )
|
||||
|| ( strcasecmp( optarg, "children" ) == 0 ))
|
||||
{
|
||||
scope = LDAP_SCOPE_SUBORDINATE;
|
||||
#endif
|
||||
} else if ( strncasecmp( optarg, "sub", sizeof("sub")-1 ) == 0 ) {
|
||||
scope = LDAP_SCOPE_SUBTREE;
|
||||
} else {
|
||||
@ -666,10 +671,8 @@ main( int argc, char **argv )
|
||||
|
||||
tool_init();
|
||||
|
||||
#ifdef LDAP_CONTROL_PAGEDRESULTS
|
||||
npagedresponses = npagedentries = npagedreferences =
|
||||
npagedextended = npagedpartial = 0;
|
||||
#endif
|
||||
|
||||
prog = lutil_progname( "ldapsearch", argc, argv );
|
||||
|
||||
@ -759,12 +762,10 @@ main( int argc, char **argv )
|
||||
|
||||
getNextPage:
|
||||
if ( nctrls > 0 || assertion || authzid || manageDSAit || noop
|
||||
#ifdef LDAP_CONTROL_X_DOMAIN_SCOPE
|
||||
|| domainScope
|
||||
#endif
|
||||
#ifdef LDAP_CONTROL_PAGEDRESULTS
|
||||
|| pagedResults
|
||||
#ifdef LDAP_CONTROL_DONTUSECOPY
|
||||
|| dontUseCopy
|
||||
#endif
|
||||
|| domainScope || pagedResults
|
||||
#ifdef LDAP_CONTROL_X_CHAINING_BEHAVIOR
|
||||
|| chaining
|
||||
#endif /* LDAP_CONTROL_X_CHAINING_BEHAVIOR */
|
||||
@ -775,7 +776,20 @@ getNextPage:
|
||||
int i = nctrls;
|
||||
save_nctrls = nctrls;
|
||||
|
||||
#ifdef LDAP_CONTROL_X_DOMAIN_SCOPE
|
||||
#ifdef LDAP_CONTROL_DONTUSECOPY
|
||||
if ( dontUseCopy ) {
|
||||
if ( ctrl_add() ) {
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
c[i].ldctl_oid = LDAP_CONTROL_DONTUSECOPY;
|
||||
c[i].ldctl_value.bv_val = NULL;
|
||||
c[i].ldctl_value.bv_len = 0;
|
||||
c[i].ldctl_iscritical = dontUseCopy > 1;
|
||||
i++;
|
||||
}
|
||||
#endif
|
||||
|
||||
if ( domainScope ) {
|
||||
if ( ctrl_add() ) {
|
||||
return EXIT_FAILURE;
|
||||
@ -787,9 +801,7 @@ getNextPage:
|
||||
c[i].ldctl_iscritical = domainScope > 1;
|
||||
i++;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef LDAP_CONTROL_SUBENTRIES
|
||||
if ( subentries ) {
|
||||
if ( ctrl_add() ) {
|
||||
return EXIT_FAILURE;
|
||||
@ -814,7 +826,6 @@ getNextPage:
|
||||
c[i].ldctl_iscritical = subentries < 1;
|
||||
i++;
|
||||
}
|
||||
#endif
|
||||
|
||||
if ( ldapsync ) {
|
||||
if ( ctrl_add() ) {
|
||||
@ -872,7 +883,6 @@ getNextPage:
|
||||
i++;
|
||||
}
|
||||
|
||||
#ifdef LDAP_CONTROL_PAGEDRESULTS
|
||||
if ( pagedResults ) {
|
||||
if ( ctrl_add() ) {
|
||||
return EXIT_FAILURE;
|
||||
@ -895,7 +905,6 @@ getNextPage:
|
||||
c[i].ldctl_iscritical = pagedResults > 1;
|
||||
i++;
|
||||
}
|
||||
#endif
|
||||
|
||||
tool_server_controls( ld, c, i );
|
||||
|
||||
@ -903,13 +912,9 @@ getNextPage:
|
||||
* those set while parsing args are preserved */
|
||||
nctrls = save_nctrls;
|
||||
|
||||
#ifdef LDAP_CONTROL_SUBENTRIES
|
||||
ber_free( seber, 1 );
|
||||
#endif
|
||||
ber_free( vrber, 1 );
|
||||
#ifdef LDAP_CONTROL_PAGEDRESULTS
|
||||
ber_free( prber, 1 );
|
||||
#endif
|
||||
}
|
||||
|
||||
if ( verbose ) {
|
||||
@ -940,14 +945,8 @@ getNextPage:
|
||||
base ? base : "",
|
||||
((scope == LDAP_SCOPE_BASE) ? "baseObject"
|
||||
: ((scope == LDAP_SCOPE_ONELEVEL) ? "oneLevel"
|
||||
#ifdef LDAP_SCOPE_SUBORDINATE
|
||||
: ((scope == LDAP_SCOPE_SUBORDINATE) ? "children"
|
||||
#endif
|
||||
: "subtree"
|
||||
#ifdef LDAP_SCOPE_SUBORDINATE
|
||||
)
|
||||
#endif
|
||||
)));
|
||||
: "subtree" ))));
|
||||
printf(_("# filter%s: %s\n"), infile != NULL ? _(" pattern") : "",
|
||||
filtpattern);
|
||||
printf(_("# requesting: "));
|
||||
@ -977,13 +976,11 @@ getNextPage:
|
||||
printf(_("\n# with valuesReturnFilter %scontrol: %s"),
|
||||
valuesReturnFilter > 1 ? _("critical ") : "", vrFilter );
|
||||
}
|
||||
#ifdef LDAP_CONTROL_PAGEDRESULTS
|
||||
if ( pagedResults ) {
|
||||
printf(_("\n# with pagedResults %scontrol: size=%d"),
|
||||
(pagedResults > 1) ? _("critical ") : "",
|
||||
pageSize );
|
||||
}
|
||||
#endif
|
||||
|
||||
printf( _("\n#\n\n") );
|
||||
}
|
||||
@ -1010,8 +1007,7 @@ getNextPage:
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef LDAP_CONTROL_PAGEDRESULTS
|
||||
if ( ( rc == LDAP_SUCCESS ) && ( pageSize != 0 ) && ( morePagedResults != 0 ) ) {
|
||||
if (( rc == LDAP_SUCCESS ) && pageSize && morePagedResults ) {
|
||||
char buf[6];
|
||||
int i, moreEntries, tmpSize;
|
||||
|
||||
@ -1038,7 +1034,8 @@ getNextPage:
|
||||
if ( i > 0 && isdigit( (unsigned char)buf[0] ) ) {
|
||||
int num = sscanf( buf, "%d", &tmpSize );
|
||||
if ( num != 1 ) {
|
||||
fprintf( stderr, _("Invalid value for PagedResultsControl, %s.\n"), buf);
|
||||
fprintf( stderr,
|
||||
_("Invalid value for PagedResultsControl, %s.\n"), buf);
|
||||
return EXIT_FAILURE;
|
||||
|
||||
}
|
||||
@ -1048,7 +1045,6 @@ getNextPage:
|
||||
|
||||
goto getNextPage;
|
||||
}
|
||||
#endif
|
||||
|
||||
tool_unbind( ld );
|
||||
tool_destroy();
|
||||
@ -1186,7 +1182,6 @@ static int dosearch(
|
||||
|
||||
case LDAP_RES_SEARCH_RESULT:
|
||||
rc = print_result( ld, msg, 1 );
|
||||
#ifdef LDAP_CONTROL_PAGEDRESULTS
|
||||
if ( pageSize != 0 ) {
|
||||
if ( rc == LDAP_SUCCESS ) {
|
||||
rc = parse_page_control( ld, msg, &page_cookie );
|
||||
@ -1196,7 +1191,6 @@ static int dosearch(
|
||||
} else {
|
||||
morePagedResults = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
if ( ldapsync == LDAP_SYNC_REFRESH_AND_PERSIST ) {
|
||||
break;
|
||||
@ -1247,7 +1241,7 @@ done:
|
||||
}
|
||||
|
||||
ldap_msgfree( res );
|
||||
#ifdef LDAP_CONTROL_PAGEDRESULTS
|
||||
|
||||
if ( pagedResults ) {
|
||||
npagedresponses += nresponses;
|
||||
npagedentries += nentries;
|
||||
@ -1256,14 +1250,20 @@ done:
|
||||
npagedreferences += nreferences;
|
||||
if ( ( morePagedResults == 0 ) && ( ldif < 2 ) ) {
|
||||
printf( _("\n# numResponses: %d\n"), npagedresponses );
|
||||
if( npagedentries ) printf( _("# numEntries: %d\n"), npagedentries );
|
||||
if( npagedextended ) printf( _("# numExtended: %d\n"), npagedextended );
|
||||
if( npagedpartial ) printf( _("# numPartial: %d\n"), npagedpartial );
|
||||
if( npagedreferences ) printf( _("# numReferences: %d\n"), npagedreferences );
|
||||
if( npagedentries ) {
|
||||
printf( _("# numEntries: %d\n"), npagedentries );
|
||||
}
|
||||
if( npagedextended ) {
|
||||
printf( _("# numExtended: %d\n"), npagedextended );
|
||||
}
|
||||
if( npagedpartial ) {
|
||||
printf( _("# numPartial: %d\n"), npagedpartial );
|
||||
}
|
||||
if( npagedreferences ) {
|
||||
printf( _("# numReferences: %d\n"), npagedreferences );
|
||||
}
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
if ( ldif < 2 ) {
|
||||
} else if ( ldif < 2 ) {
|
||||
printf( _("\n# numResponses: %d\n"), nresponses );
|
||||
if( nentries ) printf( _("# numEntries: %d\n"), nentries );
|
||||
if( nextended ) printf( _("# numExtended: %d\n"), nextended );
|
||||
@ -1583,7 +1583,6 @@ static int print_result(
|
||||
return err;
|
||||
}
|
||||
|
||||
#ifdef LDAP_CONTROL_PAGEDRESULTS
|
||||
static int
|
||||
parse_page_control(
|
||||
LDAP *ld,
|
||||
@ -1651,4 +1650,3 @@ parse_page_control(
|
||||
|
||||
return err;
|
||||
}
|
||||
#endif
|
||||
|
@ -231,6 +231,7 @@ typedef struct ldapcontrol {
|
||||
#define LDAP_CONTROL_MANAGEDIT "1.3.6.1.4.1.4203.666.5.12"
|
||||
#define LDAP_CONTROL_SLURP "1.3.6.1.4.1.4203.666.5.13"
|
||||
#define LDAP_CONTROL_VALSORT "1.3.6.1.4.1.4203.666.5.14"
|
||||
#define LDAP_CONTROL_DONTUSECOPY "1.3.6.1.4.1.4203.666.5.15"
|
||||
|
||||
/* LDAP Sync -- draft-zeilenga-ldup-sync *//* submitted for publication */
|
||||
#define LDAP_SYNC_OID "1.3.6.1.4.1.4203.1.9.1"
|
||||
|
Loading…
Reference in New Issue
Block a user