From a94eff9bd079b85a96fd15bf7336c762c948e769 Mon Sep 17 00:00:00 2001
From: smaguin <smaguin@localhost>
Date: Tue, 24 Jun 2008 07:44:51 +0000
Subject: [PATCH] client supports starttls

---
 opends/tests/system-tests/scenario/singleServer/clients/secureSearch/src/Client.java |   66 +++++++++++++++++++++------------
 1 files changed, 42 insertions(+), 24 deletions(-)

diff --git a/opends/tests/system-tests/scenario/singleServer/clients/secureSearch/src/Client.java b/opends/tests/system-tests/scenario/singleServer/clients/secureSearch/src/Client.java
index 50162e6..4f40bd3 100644
--- a/opends/tests/system-tests/scenario/singleServer/clients/secureSearch/src/Client.java
+++ b/opends/tests/system-tests/scenario/singleServer/clients/secureSearch/src/Client.java
@@ -27,11 +27,15 @@
 import java.io.*;
 import java.lang.Thread;
 import javax.naming.*;
-import javax.naming.directory.InitialDirContext;
+//import javax.naming.directory.InitialDirContext;
 import javax.naming.directory.SearchControls;
-import javax.naming.directory.DirContext;
+//import javax.naming.directory.DirContext;
 import javax.naming.directory.SearchResult;
 import javax.naming.directory.Attributes;
+import javax.naming.ldap.*;
+import javax.naming.ldap.StartTlsResponse;
+import javax.naming.ldap.StartTlsRequest;
+import javax.net.ssl.*;
 
 public class Client {
     
@@ -61,6 +65,7 @@
     static ArrayList<String> uidList;
     static long delayCnx=1000;
     static long delaySec=1;    
+    static long delayPrint=60000;
     
     public Client()
     {
@@ -72,9 +77,9 @@
 
             Hashtable envLdap = set_properties_LDAP_simpleBind();
             
-	    DirContext ctx = null;
-            ctx = new InitialDirContext(envLdap);
-
+	    LdapContext ctx = null;
+            ctx = new InitialLdapContext(envLdap,null);
+            
 	    // Search options
 	    String filter = "(objectclass=inetorgperson)";
             String[] attrs = { "uid"};
@@ -145,12 +150,13 @@
 
             int seconds=0;
             long t1=System.currentTimeMillis();
-
+            long print_t1=System.currentTimeMillis();
+              
 	    // work until Max duration is reached
             while (true) {
 
                 long new_t1=System.currentTimeMillis();
-
+                long print_t2=System.currentTimeMillis(); 
 		// end of the  system test. Exit
                 if ( ( timeTostopTest != 0 ) && ( new_t1 > timeTostopTest ) ) { 
                   
@@ -160,11 +166,26 @@
 		    }
                   break; 
                 }
-               
+
+                   // status every delayPrint
+                 if ( (print_t2 - print_t1) >= delayPrint ) {
+                        duration=((print_t2-print_t1)/1000);
+                        println("INFO",  "Rate: " + (total_nb_srchs/duration) + " srchs/sec");
+                        print_t1=System.currentTimeMillis();
+                        try {
+                          synchronized(this) {
+                            total_nb_srchs=0;
+                          }
+                        } catch ( Exception e2 ) {
+                          System.out.println("E2");
+                          e2.printStackTrace();
+                        }
+                 }  
+                
 		// status every second
                 if ( (new_t1 - t1) >= delayCnx ) {
                  
-                    println("INFO",  (nb_srchs_done/delaySec) + "  srch/sec.");                 
+                 //   println("INFO",  (nb_srchs_done/delaySec) + "  srch/sec.");                 
               
 		    // inform all the threads the max nb searchs has been reached
 		    synchronized (this) {
@@ -191,11 +212,6 @@
 			e1.printStackTrace();
 		    }
 
-                    if ( (seconds++) >= 9 ) {
-                        duration=((new_t1-startup)/1000);
-                        println("INFO",  "Avg rate: " + (total_nb_srchs/duration) + " srchs/sec. after " + getTime(duration));
-                        seconds=0;
-                    }
                     t1=new_t1;
                 }
             }
@@ -233,32 +249,32 @@
 
 	// BaseDN
 	suffix = System.getProperty("suffix"); 
-	println ("INFO" , "suffix " + suffix);
+	println ("INFO" , "CONFIG suffix " + suffix);
 	
 	// nb_threads
 	String snb_threads = System.getProperty("nb_threads"); 
 	nb_threads = Integer.parseInt(snb_threads);
 	
-	println ("INFO" , "nb_threads " + snb_threads);
+	println ("INFO" , "CONFIG nb_threads " + snb_threads);
 	
 	// test duration
 	String sMaxDuration = System.getProperty("maxDuration"); 
 	maxDuration = Long.parseLong(sMaxDuration);
-	println ("INFO" , "maxDuration " + maxDuration);
+	println ("INFO" , "CONFIG maxDuration " + maxDuration);
         
 	// credential for simple bind
 	bindDN = System.getProperty("bindDN"); 
 	bindPW = System.getProperty("bindPW"); 
-	println ("INFO" , "bindDN " + bindDN);
+	println ("INFO" , "CONFIG bindDN " + bindDN);
 	
 	// attribute to search 
 	attributeName = System.getProperty("attributeName");
-	println ("INFO" , "attributeName " + attributeName);        
+	println ("INFO" , "CONFIG attributeName " + attributeName);        
         
 	// Max number of searchs
 	String sNB_MAX_srchs = System.getProperty("NB_MAX_srchs"); 
 	NB_MAX_srchs = Integer.parseInt(sNB_MAX_srchs);
-	println ("INFO" , "sNB_MAX_srchs " + sNB_MAX_srchs);
+	println ("INFO" , "CONFIG sNB_MAX_srchs " + sNB_MAX_srchs);
 	
 	// hostname
 	hostname = System.getProperty("hostname");
@@ -266,17 +282,17 @@
 
 	// protocol : SSL or TLS
 	protocol = System.getProperty("protocol");
-	println ("INFO" , "protocol " + protocol);        
+	println ("INFO" , "CONFIG protocol " + protocol);        
         
         // authentication : EXTERNAL or simple
 	authentication = System.getProperty("authentication");
-	println ("INFO" , "authentication " + authentication);    
+	println ("INFO" , "CONFIG authentication " + authentication);    
 
         // delay Sec  before closing conx
         String sdelaySec = System.getProperty("delaySec"); 
 	delaySec =  Long.parseLong(sdelaySec);
         delayCnx = delaySec * 1000;
-	println ("INFO" , "delayCnx " + delayCnx);
+	println ("INFO" , "CONFIG delayCnx " + delayCnx);
         
 
         if ( maxDuration != 0 ) {
@@ -384,7 +400,9 @@
      envLdap.put("java.naming.factory.initial",
       "com.sun.jndi.ldap.LdapCtxFactory");
      
-     envLdap.put(Context.SECURITY_AUTHENTICATION, authentication);
+     if ( ! protocol.equals("starttls")) {
+       envLdap.put(Context.SECURITY_AUTHENTICATION, authentication);
+     }
      
      if ( protocol.equals("ssl")) {
        provider = "ldaps://"+server.host+":"+server.port+"/";

--
Gitblit v1.10.0