These two chunks of benchmark() are almost identical.  We can merge
them into the end of doConnection() with no change in behavior.

We need to drop a shadow `i' when we do this.  While we're at it we
can move retval's declaration to the beginning of the function.

As doConnection is now doing more than connecting I want to rename it
"run_test".  I think s_time resembles a benchmark with a single test.

ok?

Index: s_time.c
===================================================================
RCS file: /cvs/src/usr.bin/openssl/s_time.c,v
retrieving revision 1.27
diff -u -p -r1.27 s_time.c
--- s_time.c    18 Aug 2018 16:51:33 -0000      1.27
+++ s_time.c    20 Aug 2018 23:22:58 -0000
@@ -90,7 +90,7 @@
 extern int verify_depth;
 
 static void s_time_usage(void);
-static int doConnection(SSL *);
+static int run_test(SSL *);
 static int benchmark(int);
 
 static SSL_CTX *tm_ctx = NULL;
@@ -343,19 +343,21 @@ s_time_main(int argc, char **argv)
 }
 
 /***********************************************************************
- * doConnection - make a connection
+ * run_test - make a connection, get a file, and shut down the connection
+ *     
  * Args:
  *             scon    = SSL connection
  * Returns:
  *             1 on success, 0 on error
  */
 static int
-doConnection(SSL *scon)
+run_test(SSL *scon)
 {
+       char buf[1024 * 8];
        struct pollfd pfd[1];
        BIO *conn;
        long verify_error;
-       int i;
+       int i, retval;
 
        if ((conn = BIO_new(BIO_s_connect())) == NULL)
                return 0;
@@ -383,6 +385,22 @@ doConnection(SSL *scon)
                        ERR_print_errors(bio_err);
                return 0;
        }
+       if (s_time_config.www_path != NULL) {
+               retval = snprintf(buf, sizeof buf,
+                   "GET %s HTTP/1.0\r\n\r\n", s_time_config.www_path);
+               if ((size_t)retval >= sizeof buf) {
+                       fprintf(stderr, "URL too long\n");
+                       return 0;
+               }
+               SSL_write(scon, buf, strlen(buf));
+               while ((i = SSL_read(scon, buf, sizeof(buf))) > 0)
+                       bytes_read += i;
+       }
+       if (s_time_config.no_shutdown)
+               SSL_set_shutdown(scon, SSL_SENT_SHUTDOWN |
+                   SSL_RECEIVED_SHUTDOWN);
+       else
+               SSL_shutdown(scon);
        return 1;
 }
 
@@ -394,32 +412,16 @@ benchmark(int reuse_session)
        SSL *scon = NULL;
        time_t finishtime;
        int ret = 1;
-       char buf[1024 * 8];
        int ver;
 
        if (reuse_session) {
                /* Get an SSL object so we can reuse the session id */
                if ((scon = SSL_new(tm_ctx)) == NULL)
                        goto end;
-               if (!doConnection(scon)) {
+               if (!run_test(scon)) {
                        fprintf(stderr, "Unable to get connection\n");
                        goto end;
                }
-               if (s_time_config.www_path != NULL) {
-                       int retval = snprintf(buf, sizeof buf,
-                           "GET %s HTTP/1.0\r\n\r\n", s_time_config.www_path);
-                       if ((size_t)retval >= sizeof buf) {
-                               fprintf(stderr, "URL too long\n");
-                               goto end;
-                       }
-                       SSL_write(scon, buf, strlen(buf));
-                       while (SSL_read(scon, buf, sizeof(buf)) > 0);
-               }
-               if (s_time_config.no_shutdown)
-                       SSL_set_shutdown(scon, SSL_SENT_SHUTDOWN |
-                           SSL_RECEIVED_SHUTDOWN);
-               else
-                       SSL_shutdown(scon);
                printf("starting\n");
        }
 
@@ -438,26 +440,8 @@ benchmark(int reuse_session)
                        if ((scon = SSL_new(tm_ctx)) == NULL)
                                goto end;
                }
-               if (!doConnection(scon))
+               if (!run_test(scon))
                        goto end;
-
-               if (s_time_config.www_path != NULL) {
-                       int i, retval = snprintf(buf, sizeof buf,
-                           "GET %s HTTP/1.0\r\n\r\n", s_time_config.www_path);
-                       if ((size_t)retval >= sizeof buf) {
-                               fprintf(stderr, "URL too long\n");
-                               goto end;
-                       }
-                       SSL_write(scon, buf, strlen(buf));
-                       while ((i = SSL_read(scon, buf, sizeof(buf))) > 0)
-                               bytes_read += i;
-               }
-               if (s_time_config.no_shutdown)
-                       SSL_set_shutdown(scon, SSL_SENT_SHUTDOWN |
-                           SSL_RECEIVED_SHUTDOWN);
-               else
-                       SSL_shutdown(scon);
-
                nConn += 1;
                if (SSL_session_reused(scon))
                        ver = 'r';

Reply via email to