All kinds of changes from branch OpenSSL_0_9_7-stable
[openssl.git] / apps / s_time.c
index f62f78f191ffb48bdc2fda04bee22ca02e80a6a6..904945e1a866a38a778b8f80a852a9e5abfed7da 100644 (file)
@@ -85,7 +85,7 @@
 #include OPENSSL_UNISTD
 #endif
 
-#if !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VXWORKS) && (!defined(OPENSSL_SYS_VMS) || defined(__DECC))
+#if !defined(OPENSSL_SYS_NETWARE) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VXWORKS) && (!defined(OPENSSL_SYS_VMS) || defined(__DECC))
 #define TIMES
 #endif
 
 #undef TIMES
 #endif
 
-#if !defined(TIMES) && !defined(OPENSSL_SYS_VXWORKS)
+#if !defined(TIMES) && !defined(OPENSSL_SYS_VXWORKS) && !defined(OPENSSL_SYS_NETWARE)
 #include <sys/timeb.h>
 #endif
 
-#ifdef _AIX
-#include <sys/select.h>
-#endif
-
 #if defined(sun) || defined(__ultrix)
 #define _POSIX_SOURCE
 #include <limits.h>
 #undef BUFSIZZ
 #define BUFSIZZ 1024*10
 
+#define MYBUFSIZ 1024*8
+
 #undef min
 #undef max
 #define min(a,b) (((a) < (b)) ? (a) : (b))
@@ -324,6 +322,11 @@ static int parseArgs(int argc, char **argv)
                {
                if (--argc < 1) goto bad;
                s_www_path= *(++argv);
+               if(strlen(s_www_path) > MYBUFSIZ-100)
+                       {
+                       BIO_printf(bio_err,"-www option too long\n");
+                       badop=1;
+                       }
                }
        else if(strcmp(*argv,"-bugs") == 0)
            st_bugs=1;
@@ -381,6 +384,20 @@ static double tm_Time_F(int s)
                ret=((double)(tend.tms_utime-tstart.tms_utime))/HZ;
                return((ret == 0.0)?1e-6:ret);
        }
+#elif defined(OPENSSL_SYS_NETWARE)
+    static clock_t tstart,tend;
+
+    if (s == START)
+    {
+        tstart=clock();
+        return(0);
+    }
+    else
+    {
+        tend=clock();
+        ret=(double)((double)(tend)-(double)(tstart));
+        return((ret < 0.001)?0.001:ret);
+    }
 #elif defined(OPENSSL_SYS_VXWORKS)
         {
        static unsigned long tick_start, tick_end;
@@ -484,7 +501,7 @@ int MAIN(int argc, char **argv)
        tm_Time_F(START);
        for (;;)
                {
-               if (finishtime < time(NULL)) break;
+               if (finishtime < (long)time(NULL)) break;
 #ifdef WIN32_STUFF
 
                if( flushWinMsgs(0) == -1 )
@@ -499,7 +516,7 @@ int MAIN(int argc, char **argv)
 
                if (s_www_path != NULL)
                        {
-                       sprintf(buf,"GET %s HTTP/1.0\r\n\r\n",s_www_path);
+                       BIO_snprintf(buf,sizeof buf,"GET %s HTTP/1.0\r\n\r\n",s_www_path);
                        SSL_write(scon,buf,strlen(buf));
                        while ((i=SSL_read(scon,buf,sizeof(buf))) > 0)
                                bytes_read+=i;
@@ -535,9 +552,9 @@ int MAIN(int argc, char **argv)
                }
        totalTime += tm_Time_F(STOP); /* Add the time for this iteration */
 
-       i=(int)(time(NULL)-finishtime+maxTime);
+       i=(int)((long)time(NULL)-finishtime+maxTime);
        printf( "\n\n%d connections in %.2fs; %.2f connections/user sec, bytes read %ld\n", nConn, totalTime, ((double)nConn/totalTime),bytes_read);
-       printf( "%d connections in %ld real seconds, %ld bytes read per connection\n",nConn,time(NULL)-finishtime+maxTime,bytes_read/nConn);
+       printf( "%d connections in %ld real seconds, %ld bytes read per connection\n",nConn,(long)time(NULL)-finishtime+maxTime,bytes_read/nConn);
 
        /* Now loop and time connections using the same session id over and over */
 
@@ -554,7 +571,7 @@ next:
 
        if (s_www_path != NULL)
                {
-               sprintf(buf,"GET %s HTTP/1.0\r\n\r\n",s_www_path);
+               BIO_snprintf(buf,sizeof buf,"GET %s HTTP/1.0\r\n\r\n",s_www_path);
                SSL_write(scon,buf,strlen(buf));
                while (SSL_read(scon,buf,sizeof(buf)) > 0)
                        ;
@@ -569,7 +586,7 @@ next:
        nConn = 0;
        totalTime = 0.0;
 
-       finishtime=time(NULL)+maxTime;
+       finishtime=(long)time(NULL)+maxTime;
 
        printf( "starting\n" );
        bytes_read=0;
@@ -577,7 +594,7 @@ next:
                
        for (;;)
                {
-               if (finishtime < time(NULL)) break;
+               if (finishtime < (long)time(NULL)) break;
 
 #ifdef WIN32_STUFF
                if( flushWinMsgs(0) == -1 )
@@ -592,7 +609,7 @@ next:
 
                if (s_www_path)
                        {
-                       sprintf(buf,"GET %s HTTP/1.0\r\n\r\n",s_www_path);
+                       BIO_snprintf(buf,sizeof buf,"GET %s HTTP/1.0\r\n\r\n",s_www_path);
                        SSL_write(scon,buf,strlen(buf));
                        while ((i=SSL_read(scon,buf,sizeof(buf))) > 0)
                                bytes_read+=i;
@@ -627,7 +644,7 @@ next:
 
 
        printf( "\n\n%d connections in %.2fs; %.2f connections/user sec, bytes read %ld\n", nConn, totalTime, ((double)nConn/totalTime),bytes_read);
-       printf( "%d connections in %ld real seconds, %ld bytes read per connection\n",nConn,time(NULL)-finishtime+maxTime,bytes_read/nConn);
+       printf( "%d connections in %ld real seconds, %ld bytes read per connection\n",nConn,(long)time(NULL)-finishtime+maxTime,bytes_read/nConn);
 
        ret=0;
 end:
@@ -639,7 +656,7 @@ end:
                tm_ctx=NULL;
                }
        apps_shutdown();
-       EXIT(ret);
+       OPENSSL_EXIT(ret);
        }
 
 /***********************************************************************