diff options
| author | cvsadm <cvsadm> | 2005-01-21 00:44:34 +0000 |
|---|---|---|
| committer | cvsadm <cvsadm> | 2005-01-21 00:44:34 +0000 |
| commit | b2093e3016027d6b5cf06b3f91f30769bfc099e2 (patch) | |
| tree | cf58939393a9032182c4fbc4441164a9456e82f8 /ldap/servers/slapd/test-plugins/clients | |
| download | ds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.tar.gz ds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.tar.xz ds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.zip | |
Moving NSCP Directory Server from DirectoryBranch to TRUNK, initial drop. (foxworth)ldapserver7x
Diffstat (limited to 'ldap/servers/slapd/test-plugins/clients')
| -rw-r--r-- | ldap/servers/slapd/test-plugins/clients/README | 45 | ||||
| -rw-r--r-- | ldap/servers/slapd/test-plugins/clients/ReqExtOp.java | 77 | ||||
| -rw-r--r-- | ldap/servers/slapd/test-plugins/clients/reqextop.c | 85 |
3 files changed, 207 insertions, 0 deletions
diff --git a/ldap/servers/slapd/test-plugins/clients/README b/ldap/servers/slapd/test-plugins/clients/README new file mode 100644 index 00000000..a2aac49d --- /dev/null +++ b/ldap/servers/slapd/test-plugins/clients/README @@ -0,0 +1,45 @@ +# BEGIN COPYRIGHT BLOCK +# Copyright 2001 Sun Microsystems, Inc. +# Portions copyright 1999, 2001-2003 Netscape Communications Corporation. +# All rights reserved. +# END COPYRIGHT BLOCK +# + --------------------------- + Sample LDAP Clients That + Work with Server Plug-Ins + --------------------------- + +This directory contains code for some sample LDAP clients intended for +use with the sample server plug-ins. For example, one of the server +plug-ins handles requests for an extended operation with the OID 1.2.3.4. +In order to test this sample plug-in, you need an LDAP v3 client that is +capable of requesting this extended operation. + + NOTE: Before you compile and run these examples, make sure + to change the server name, port number, root DN, and root DN + password to values applicable to your Directory Server. + +reqextop.c +---------- +This is an example of an LDAP client that requests extended operations. +The example should be used in conjunction with the testexop.c server +plug-in, which handles the extended operation with the OID 1.2.3.4. + +This example requires a version of the Netscape Directory SDK that supports +the LDAP v3 protocol. The 3.0 Beta version of the Directory SDK for C +supports LDAP v3 and is available at the following location: + + http://developer.netscape.com/tech/directory/ + +ReqExtOp.java +------------- +This is an example of an LDAP client that requests extended operations. +The example should be used in conjunction with the testexop.c server +plug-in, which handles the extended operation with the OID 1.2.3.4. + +This example requires a version of the Netscape Directory SDK that supports +the LDAP v3 protocol. The Netscape Directory SDK for Java 3.0 supports +LDAP v3 and is available at the following location: + + http://developer.netscape.com/tech/directory/ + diff --git a/ldap/servers/slapd/test-plugins/clients/ReqExtOp.java b/ldap/servers/slapd/test-plugins/clients/ReqExtOp.java new file mode 100644 index 00000000..cf29ea21 --- /dev/null +++ b/ldap/servers/slapd/test-plugins/clients/ReqExtOp.java @@ -0,0 +1,77 @@ +/** BEGIN COPYRIGHT BLOCK + * Copyright 2001 Sun Microsystems, Inc. + * Portions copyright 1999, 2001-2003 Netscape Communications Corporation. + * All rights reserved. + * END COPYRIGHT BLOCK **/ +/* + * + * Requests an extended operation with the OID 1.2.3.4. + * Use this client in conjunction with a server that can process + * this extended operation. + * + */ + +import netscape.ldap.*; +import java.util.*; +import java.io.*; + +public class ReqExtOp { + public static void main( String[] args ) + { + LDAPConnection ld = null; + int status = -1; + try { + ld = new LDAPConnection(); + + /* Connect to server */ + String MY_HOST = "localhost"; + int MY_PORT = 389; + ld.connect( MY_HOST, MY_PORT ); + System.out.println( "Connected to server." ); + + /* Authenticate to the server as directory manager */ + String MGR_DN = "cn=Directory Manager"; + String MGR_PW = "23skidoo"; + if ( ld.LDAP_VERSION < 3 ) { + ld.authenticate( 3, MGR_DN, MGR_PW ); + } else { + System.out.println( "Specified LDAP server does not support v3 of the LDAP protocol." ); + ld.disconnect(); + System.exit(1); + } + System.out.println( "Authenticated to directory." ); + + /* Create an extended operation object */ + String myval = "My Value"; + byte vals[] = myval.getBytes( "UTF8" ); + LDAPExtendedOperation exop = new LDAPExtendedOperation( "1.2.3.4", vals ); + System.out.println( "Created LDAPExtendedOperation object." ); + + /* Request the extended operation from the server. */ + LDAPExtendedOperation exres = ld.extendedOperation( exop ); + + System.out.println( "Performed extended operation." ); + + /* Get data from the response sent by the server. */ + System.out.println( "OID: " + exres.getID() ); + String retValue = new String( exres.getValue(), "UTF8" ); + System.out.println( "Value: " + retValue ); + } + catch( LDAPException e ) { + System.out.println( "Error: " + e.toString() ); + } + catch( UnsupportedEncodingException e ) { + System.out.println( "Error: UTF8 not supported" ); + } + + /* Done, so disconnect */ + if ( (ld != null) && ld.isConnected() ) { + try { + ld.disconnect(); + } catch ( LDAPException e ) { + System.out.println( "Error: " + e.toString() ); + } + } + System.exit(status); + } +} diff --git a/ldap/servers/slapd/test-plugins/clients/reqextop.c b/ldap/servers/slapd/test-plugins/clients/reqextop.c new file mode 100644 index 00000000..f23bcf38 --- /dev/null +++ b/ldap/servers/slapd/test-plugins/clients/reqextop.c @@ -0,0 +1,85 @@ +/** BEGIN COPYRIGHT BLOCK + * Copyright 2001 Sun Microsystems, Inc. + * Portions copyright 1999, 2001-2003 Netscape Communications Corporation. + * All rights reserved. + * END COPYRIGHT BLOCK **/ +/* + * Requests an extended operation with the OID 1.2.3.4. + * Use this client in conjunction with a server that can process + * this extended operation. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> + +#include <ldap.h> + +/* Name and port of the LDAP server you want to connect to. */ +#define MY_HOST "localhost" +#define MY_PORT 389 + +/* DN of user (and password of user) who you want to authenticate as */ +#define MGR_DN "cn=Directory Manager" +#define MGR_PW "23skidoo" + +int +main( int argc, char **argv ) +{ + + /* OID of the extended operation that you are requesting */ + const char *oidrequest = "1.2.3.4"; + char *oidresult; + struct berval valrequest; + struct berval *valresult; + LDAP *ld; + int rc, version; + + /* Set up the value that you want to pass to the server */ + printf( "Setting up value to pass to server...\n" ); + valrequest.bv_val = "My Value"; + valrequest.bv_len = strlen( "My Value" ); + + /* Get a handle to an LDAP connection */ + printf( "Getting the handle to the LDAP connection...\n" ); + if ( (ld = ldap_init( MY_HOST, MY_PORT )) == NULL ) { + perror( "ldap_init" ); + ldap_unbind( ld ); + return( 1 ); + } + + /* Set the LDAP protocol version supported by the client + to 3. (By default, this is set to 2. Extended operations + are part of version 3 of the LDAP protocol.) */ + ldap_get_option( ld, LDAP_OPT_PROTOCOL_VERSION, &version ); + printf( "Resetting version %d to 3.0...\n", version ); + version = LDAP_VERSION3; + ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, &version ); + + /* Authenticate to the directory as the Directory Manager */ + printf( "Binding to the directory...\n" ); + if ( ldap_simple_bind_s( ld, MGR_DN, MGR_PW ) != LDAP_SUCCESS ) { + ldap_perror( ld, "ldap_simple_bind_s" ); + ldap_unbind( ld ); + return( 1 ); + } + + /* Initiate the extended operation */ + printf( "Initiating the extended operation...\n" ); + if ( ( rc = ldap_extended_operation_s( ld, oidrequest, &valrequest, NULL, NULL, &oidresult, &valresult ) ) != LDAP_SUCCESS ) { + ldap_perror( ld, "ldap_extended failed: " ); + ldap_unbind( ld ); + return( 1 ); + } + + /* Get the OID and the value from the result returned by the server. */ + printf( "Operation successful.\n" ); + printf( "\tReturned OID: %s\n", oidresult ); + printf( "\tReturned value: %s\n", valresult->bv_val ); + + /* Disconnect from the server. */ + ldap_unbind( ld ); + return 0; +} + |
