OLD | NEW |
1 /* apps/s_time.c */ | 1 /* apps/s_time.c */ |
2 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 * All rights reserved. | 3 * All rights reserved. |
4 * | 4 * |
5 * This package is an SSL implementation written | 5 * This package is an SSL implementation written |
6 * by Eric Young (eay@cryptsoft.com). | 6 * by Eric Young (eay@cryptsoft.com). |
7 * The implementation was written so as to conform with Netscapes SSL. | 7 * The implementation was written so as to conform with Netscapes SSL. |
8 * | 8 * |
9 * This library is free for commercial and non-commercial use as long as | 9 * This library is free for commercial and non-commercial use as long as |
10 * the following conditions are aheared to. The following conditions | 10 * the following conditions are aheared to. The following conditions |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 #include "s_apps.h" | 78 #include "s_apps.h" |
79 #include <openssl/err.h> | 79 #include <openssl/err.h> |
80 #ifdef WIN32_STUFF | 80 #ifdef WIN32_STUFF |
81 #include "winmain.h" | 81 #include "winmain.h" |
82 #include "wintext.h" | 82 #include "wintext.h" |
83 #endif | 83 #endif |
84 #if !defined(OPENSSL_SYS_MSDOS) | 84 #if !defined(OPENSSL_SYS_MSDOS) |
85 #include OPENSSL_UNISTD | 85 #include OPENSSL_UNISTD |
86 #endif | 86 #endif |
87 | 87 |
88 #if !defined(OPENSSL_SYS_NETWARE) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPE
NSSL_SYS_VXWORKS) && (!defined(OPENSSL_SYS_VMS) || defined(__DECC)) | |
89 #define TIMES | |
90 #endif | |
91 | |
92 #ifndef _IRIX | |
93 #include <time.h> | |
94 #endif | |
95 #ifdef TIMES | |
96 #include <sys/types.h> | |
97 #include <sys/times.h> | |
98 #endif | |
99 | |
100 /* Depending on the VMS version, the tms structure is perhaps defined. | |
101 The __TMS macro will show if it was. If it wasn't defined, we should | |
102 undefine TIMES, since that tells the rest of the program how things | |
103 should be handled. -- Richard Levitte */ | |
104 #if defined(OPENSSL_SYS_VMS_DECC) && !defined(__TMS) | |
105 #undef TIMES | |
106 #endif | |
107 | |
108 #if !defined(TIMES) && !defined(OPENSSL_SYS_VXWORKS) && !defined(OPENSSL_SYS_NET
WARE) | |
109 #include <sys/timeb.h> | |
110 #endif | |
111 | |
112 #if defined(sun) || defined(__ultrix) | |
113 #define _POSIX_SOURCE | |
114 #include <limits.h> | |
115 #include <sys/param.h> | |
116 #endif | |
117 | |
118 /* The following if from times(3) man page. It may need to be changed | |
119 */ | |
120 #ifndef HZ | |
121 # ifdef _SC_CLK_TCK | |
122 # define HZ ((double)sysconf(_SC_CLK_TCK)) | |
123 # else | |
124 # ifndef CLK_TCK | |
125 # ifndef _BSD_CLK_TCK_ /* FreeBSD hack */ | |
126 # define HZ 100.0 | |
127 # else /* _BSD_CLK_TCK_ */ | |
128 # define HZ ((double)_BSD_CLK_TCK_) | |
129 # endif | |
130 # else /* CLK_TCK */ | |
131 # define HZ ((double)CLK_TCK) | |
132 # endif | |
133 # endif | |
134 #endif | |
135 | |
136 #undef PROG | 88 #undef PROG |
137 #define PROG s_time_main | 89 #define PROG s_time_main |
138 | 90 |
139 #undef ioctl | 91 #undef ioctl |
140 #define ioctl ioctlsocket | 92 #define ioctl ioctlsocket |
141 | 93 |
142 #define SSL_CONNECT_NAME "localhost:4433" | 94 #define SSL_CONNECT_NAME "localhost:4433" |
143 | 95 |
144 /*#define TEST_CERT "client.pem" */ /* no default cert. */ | 96 /*#define TEST_CERT "client.pem" */ /* no default cert. */ |
145 | 97 |
(...skipping 24 matching lines...) Expand all Loading... |
170 /* static char *port=PORT_STR;*/ | 122 /* static char *port=PORT_STR;*/ |
171 static char *host=SSL_CONNECT_NAME; | 123 static char *host=SSL_CONNECT_NAME; |
172 static char *t_cert_file=NULL; | 124 static char *t_cert_file=NULL; |
173 static char *t_key_file=NULL; | 125 static char *t_key_file=NULL; |
174 static char *CApath=NULL; | 126 static char *CApath=NULL; |
175 static char *CAfile=NULL; | 127 static char *CAfile=NULL; |
176 static char *tm_cipher=NULL; | 128 static char *tm_cipher=NULL; |
177 static int tm_verify = SSL_VERIFY_NONE; | 129 static int tm_verify = SSL_VERIFY_NONE; |
178 static int maxTime = SECONDS; | 130 static int maxTime = SECONDS; |
179 static SSL_CTX *tm_ctx=NULL; | 131 static SSL_CTX *tm_ctx=NULL; |
180 static SSL_METHOD *s_time_meth=NULL; | 132 static const SSL_METHOD *s_time_meth=NULL; |
181 static char *s_www_path=NULL; | 133 static char *s_www_path=NULL; |
182 static long bytes_read=0; | 134 static long bytes_read=0; |
183 static int st_bugs=0; | 135 static int st_bugs=0; |
184 static int perform=0; | 136 static int perform=0; |
185 #ifdef FIONBIO | 137 #ifdef FIONBIO |
186 static int t_nbio=0; | 138 static int t_nbio=0; |
187 #endif | 139 #endif |
188 #ifdef OPENSSL_SYS_WIN32 | 140 #ifdef OPENSSL_SYS_WIN32 |
189 static int exitNow = 0; /* Set when it's time to exit main */ | 141 static int exitNow = 0; /* Set when it's time to exit main */ |
190 #endif | 142 #endif |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 } | 317 } |
366 | 318 |
367 /*********************************************************************** | 319 /*********************************************************************** |
368 * TIME - time functions | 320 * TIME - time functions |
369 */ | 321 */ |
370 #define START 0 | 322 #define START 0 |
371 #define STOP 1 | 323 #define STOP 1 |
372 | 324 |
373 static double tm_Time_F(int s) | 325 static double tm_Time_F(int s) |
374 { | 326 { |
375 » static double ret; | 327 » return app_tminterval(s,1); |
376 #ifdef TIMES | |
377 » static struct tms tstart,tend; | |
378 | |
379 » if(s == START) { | |
380 » » times(&tstart); | |
381 » » return(0); | |
382 » } else { | |
383 » » times(&tend); | |
384 » » ret=((double)(tend.tms_utime-tstart.tms_utime))/HZ; | |
385 » » return((ret == 0.0)?1e-6:ret); | |
386 } | 328 } |
387 #elif defined(OPENSSL_SYS_NETWARE) | |
388 static clock_t tstart,tend; | |
389 | |
390 if (s == START) | |
391 { | |
392 tstart=clock(); | |
393 return(0); | |
394 } | |
395 else | |
396 { | |
397 tend=clock(); | |
398 ret=(double)((double)(tend)-(double)(tstart)); | |
399 return((ret < 0.001)?0.001:ret); | |
400 } | |
401 #elif defined(OPENSSL_SYS_VXWORKS) | |
402 { | |
403 static unsigned long tick_start, tick_end; | |
404 | |
405 if( s == START ) | |
406 { | |
407 tick_start = tickGet(); | |
408 return 0; | |
409 } | |
410 else | |
411 { | |
412 tick_end = tickGet(); | |
413 ret = (double)(tick_end - tick_start) / (double)sysClkRateGet(); | |
414 return((ret == 0.0)?1e-6:ret); | |
415 } | |
416 } | |
417 #else /* !times() */ | |
418 static struct timeb tstart,tend; | |
419 long i; | |
420 | |
421 if(s == START) { | |
422 ftime(&tstart); | |
423 return(0); | |
424 } else { | |
425 ftime(&tend); | |
426 i=(long)tend.millitm-(long)tstart.millitm; | |
427 ret=((double)(tend.time-tstart.time))+((double)i)/1000.0; | |
428 return((ret == 0.0)?1e-6:ret); | |
429 } | |
430 #endif | |
431 } | |
432 | 329 |
433 /*********************************************************************** | 330 /*********************************************************************** |
434 * MAIN - main processing area for client | 331 * MAIN - main processing area for client |
435 * real name depends on MONOLITH | 332 * real name depends on MONOLITH |
436 */ | 333 */ |
437 int MAIN(int, char **); | 334 int MAIN(int, char **); |
438 | 335 |
439 int MAIN(int argc, char **argv) | 336 int MAIN(int argc, char **argv) |
440 { | 337 { |
441 double totalTime = 0.0; | 338 double totalTime = 0.0; |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
697 /* ok, lets connect */ | 594 /* ok, lets connect */ |
698 for(;;) { | 595 for(;;) { |
699 i=SSL_connect(serverCon); | 596 i=SSL_connect(serverCon); |
700 if (BIO_sock_should_retry(i)) | 597 if (BIO_sock_should_retry(i)) |
701 { | 598 { |
702 BIO_printf(bio_err,"DELAY\n"); | 599 BIO_printf(bio_err,"DELAY\n"); |
703 | 600 |
704 i=SSL_get_fd(serverCon); | 601 i=SSL_get_fd(serverCon); |
705 width=i+1; | 602 width=i+1; |
706 FD_ZERO(&readfds); | 603 FD_ZERO(&readfds); |
707 » » » FD_SET(i,&readfds); | 604 » » » openssl_fdset(i,&readfds); |
708 /* Note: under VMS with SOCKETSHR the 2nd parameter | 605 /* Note: under VMS with SOCKETSHR the 2nd parameter |
709 * is currently of type (int *) whereas under other | 606 * is currently of type (int *) whereas under other |
710 * systems it is (void *) if you don't have a cast it | 607 * systems it is (void *) if you don't have a cast it |
711 * will choke the compiler: if you do have a cast then | 608 * will choke the compiler: if you do have a cast then |
712 * you can either go for (int *) or (void *). | 609 * you can either go for (int *) or (void *). |
713 */ | 610 */ |
714 select(width,(void *)&readfds,NULL,NULL,NULL); | 611 select(width,(void *)&readfds,NULL,NULL,NULL); |
715 continue; | 612 continue; |
716 } | 613 } |
717 break; | 614 break; |
718 } | 615 } |
719 if(i <= 0) | 616 if(i <= 0) |
720 { | 617 { |
721 BIO_printf(bio_err,"ERROR\n"); | 618 BIO_printf(bio_err,"ERROR\n"); |
722 if (verify_error != X509_V_OK) | 619 if (verify_error != X509_V_OK) |
723 BIO_printf(bio_err,"verify error:%s\n", | 620 BIO_printf(bio_err,"verify error:%s\n", |
724 X509_verify_cert_error_string(verify_error)); | 621 X509_verify_cert_error_string(verify_error)); |
725 else | 622 else |
726 ERR_print_errors(bio_err); | 623 ERR_print_errors(bio_err); |
727 if (scon == NULL) | 624 if (scon == NULL) |
728 SSL_free(serverCon); | 625 SSL_free(serverCon); |
729 return NULL; | 626 return NULL; |
730 } | 627 } |
731 | 628 |
732 return serverCon; | 629 return serverCon; |
733 } | 630 } |
734 | 631 |
735 | 632 |
OLD | NEW |