Hello community, here is the log from the commit of package httperf for openSUSE:Factory checked in at 2018-10-11 12:01:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/httperf (Old) and /work/SRC/openSUSE:Factory/.httperf.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "httperf" Thu Oct 11 12:01:10 2018 rev:5 rq:641190 version:0.9.0+git.20180712 Changes: -------- --- /work/SRC/openSUSE:Factory/httperf/httperf.changes 2017-12-12 21:22:52.306710838 +0100 +++ /work/SRC/openSUSE:Factory/.httperf.new/httperf.changes 2018-10-11 12:01:13.861582717 +0200 @@ -1,0 +2,21 @@ +Tue Oct 9 17:49:12 UTC 2018 - Cristian RodrÃguez <crrodrig...@opensuse.org> + +- Only alter __DATE__ and __TIME__ values when SOURCE_DATE_EPOCH + is not set. + +------------------------------------------------------------------- +Tue Oct 09 13:36:01 UTC 2018 - crrodrig...@opensuse.org + +- Update to version 0.9.0+git.20180712: + * Add missing 'case' statement that causes TLSv1.3 implementation to be unreachable. + * Remove extra 'break;' that prevent SSL_CTX_set_options from being set + * Fix a bug that ignored the --ssl-protocol parameter + * Implement support for TLSv1.3 in OpenSSL >= 1.1.1 + * Implement specific support for TLSv1.2 + * Implement specific support for TLSv1.1 + * Make TLSv1 use TLSv1.0 specifically to prevent ambiguity with TLSv1.1, TLSv1.2, TLSv1.3 + * Missing include (for memset(), strerror()). + * Stray line feed in fqdname causes --add-header and --add-header-file header records to be ignored by server. + * Add support for PROPFIND and REPORT in wsesslog + +------------------------------------------------------------------- Old: ---- httperf-0.9.0+git.20170724.tar.xz New: ---- httperf-0.9.0+git.20180712.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ httperf.spec ++++++ --- /var/tmp/diff_new_pack.Rs9XVm/_old 2018-10-11 12:01:14.373582065 +0200 +++ /var/tmp/diff_new_pack.Rs9XVm/_new 2018-10-11 12:01:14.373582065 +0200 @@ -1,7 +1,7 @@ # # spec file for package httperf # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,12 +12,12 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: httperf -Version: 0.9.0+git.20170724 +Version: 0.9.0+git.20180712 Release: 0 Summary: A tool for measuring web server performance License: SUSE-GPL-2.0+-with-openssl-exception @@ -29,11 +29,7 @@ BuildRequires: automake BuildRequires: libtool BuildRequires: pkgconfig -%if 0%{?suse_version} >= 1330 -BuildRequires: libopenssl-1_0_0-devel -%else -BuildRequires: openssl-devel -%endif +BuildRequires: pkgconfig(openssl) %description httperf is a tool for measuring web server performance. It provides a @@ -42,12 +38,14 @@ %prep %setup -q +if [ -z "$SOURCE_DATE_EPOCH" ]; then # replace build date with date from changelog modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{SOURCE1}")" DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\"" TIME="\"$(date -d "${modified}" "+%%R")\"" find . -name '*.[ch]' |\ xargs sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" +fi chmod -x AUTHORS ChangeLog NEWS README.md TODO %build ++++++ httperf-0.9.0+git.20170724.tar.xz -> httperf-0.9.0+git.20180712.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/httperf-0.9.0+git.20170724/src/conn.c new/httperf-0.9.0+git.20180712/src/conn.c --- old/httperf-0.9.0+git.20170724/src/conn.c 2017-07-24 20:50:58.000000000 +0200 +++ new/httperf-0.9.0+git.20180712/src/conn.c 2018-07-12 20:11:00.000000000 +0200 @@ -112,6 +112,7 @@ conn->sd = -1; conn->myport = -1; conn->line.iov_base = conn->line_buf; + conn->fqdname_len = strcspn(conn->fqdname,"\r\n"); // Chomp since used in Host header record #ifdef HAVE_SSL if (param.use_ssl) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/httperf-0.9.0+git.20170724/src/gen/wsesslog.c new/httperf-0.9.0+git.20180712/src/gen/wsesslog.c --- old/httperf-0.9.0+git.20170724/src/gen/wsesslog.c 2017-07-24 20:50:58.000000000 +0200 +++ new/httperf-0.9.0+git.20180712/src/gen/wsesslog.c 2018-07-12 20:11:00.000000000 +0200 @@ -146,13 +146,13 @@ /* Methods allowed for a request: */ enum { - HM_DELETE, HM_GET, HM_HEAD, HM_OPTIONS, HM_POST, HM_PUT, HM_TRACE, + HM_DELETE, HM_GET, HM_HEAD, HM_OPTIONS, HM_POST, HM_PUT, HM_PROPFIND, HM_REPORT, HM_TRACE, HM_LEN }; static const char *call_method_name[] = { - "DELETE", "GET", "HEAD", "OPTIONS", "POST", "PUT", "TRACE" + "DELETE", "GET", "HEAD", "OPTIONS", "POST", "PUT", "PROPFIND", "REPORT", "TRACE" }; static size_t sess_private_data_offset; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/httperf-0.9.0+git.20170724/src/httperf.c new/httperf-0.9.0+git.20180712/src/httperf.c --- old/httperf-0.9.0+git.20170724/src/httperf.c 2017-07-24 20:50:58.000000000 +0200 +++ new/httperf-0.9.0+git.20180712/src/httperf.c 2018-07-12 20:11:00.000000000 +0200 @@ -668,6 +668,8 @@ param.ssl_ca_path = optarg; else if (flag == ¶m.ssl_protocol) { + param.use_ssl = 1; + if (strcasecmp (optarg, "auto") == 0) param.ssl_protocol = 0; #ifndef OPENSSL_NO_SSL2 @@ -678,8 +680,16 @@ else if (strcasecmp (optarg, "SSLv3") == 0) param.ssl_protocol = 3; #endif - else if (strcasecmp (optarg, "TLSv1") == 0) + else if (strcasecmp (optarg, "TLSv1.0") == 0 || strcasecmp (optarg, "TLSv1_0") == 0 || strcasecmp (optarg, "TLSv1") == 0) param.ssl_protocol = 4; + else if (strcasecmp (optarg, "TLSv1.1") == 0 || strcasecmp (optarg, "TLSv1_1") == 0) + param.ssl_protocol = 5; + else if (strcasecmp (optarg, "TLSv1.2") == 0 || strcasecmp (optarg, "TLSv1_2") == 0) + param.ssl_protocol = 6; +#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) + else if (strcasecmp (optarg, "TLSv1.3") == 0 || strcasecmp (optarg, "TLSv1_3") == 0) + param.ssl_protocol = 7; +#endif else { fprintf (stderr, "%s: illegal SSL protocol %s\n", @@ -1003,23 +1013,92 @@ SSL_library_init (); SSL_load_error_strings (); +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) SSLeay_add_all_algorithms (); - SSLeay_add_ssl_algorithms (); +#endif switch (param.ssl_protocol) { - /* 0/auto for SSLv23 */ - case 0: ssl_ctx = SSL_CTX_new (SSLv23_client_method ()); break; + /* 0/auto for highest available */ + case 0: +#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) + ssl_ctx = SSL_CTX_new (TLS_client_method ()); break; +#else + ssl_ctx = SSL_CTX_new (SSLv23_client_method ()); break; +#endif + #ifndef OPENSSL_NO_SSL2 /* 2/SSLv2 */ - case 2: ssl_ctx = SSL_CTX_new (SSLv2_client_method ()); break; + case 2: +#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) + ssl_ctx = SSL_CTX_new (TLS_client_method ()); +#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) + SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1 | SSL_OP_NO_TLSv1_2 | SSL_OP_NO_TLSv1_3); break; +#else + SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1 | SSL_OP_NO_TLSv1_2); break; #endif +#else + ssl_ctx = SSL_CTX_new (SSLv2_client_method ()); break; +#endif +#endif + #ifndef OPENSSL_NO_SSL3 /* 3/SSLv3 */ - case 3: ssl_ctx = SSL_CTX_new (SSLv3_client_method ()); break; + case 3: +#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) + ssl_ctx = SSL_CTX_new (TLS_client_method ()); + SSL_CTX_set_min_proto_version(ssl_ctx, SSL3_VERSION); + SSL_CTX_set_max_proto_version(ssl_ctx, SSL3_VERSION); + break; +#else + ssl_ctx = SSL_CTX_new (SSLv3_client_method ()); break; +#endif #endif - /* 4/TLSv1 */ - case 4: ssl_ctx = SSL_CTX_new (TLSv1_client_method ()); break; + /* 4/TLSv1.0 */ + case 4: +#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) + ssl_ctx = SSL_CTX_new (TLS_client_method ()); + SSL_CTX_set_min_proto_version(ssl_ctx, TLS1_VERSION); + SSL_CTX_set_max_proto_version(ssl_ctx, TLS1_VERSION); + break; +#else + ssl_ctx = SSL_CTX_new (TLSv1_client_method ()); + SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1_1 | SSL_OP_NO_TLSv1_2); break; +#endif + + /* 5/TLSv1.1 */ + case 5: +#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) + ssl_ctx = SSL_CTX_new (TLS_client_method ()); + SSL_CTX_set_min_proto_version(ssl_ctx, TLS1_1_VERSION); + SSL_CTX_set_max_proto_version(ssl_ctx, TLS1_1_VERSION); + break; +#else + ssl_ctx = SSL_CTX_new (TLSv1_client_method ()); + SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_2); break; +#endif + + /* 6/TLSv1.2 */ + case 6: +#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) + ssl_ctx = SSL_CTX_new (TLS_client_method ()); + SSL_CTX_set_min_proto_version(ssl_ctx, TLS1_2_VERSION); + SSL_CTX_set_max_proto_version(ssl_ctx, TLS1_2_VERSION); + break; +#else + ssl_ctx = SSL_CTX_new (TLSv1_client_method ()); + SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1); break; +#endif + +#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) + /* 7/TLSv1.3 */ + case 7: + ssl_ctx = SSL_CTX_new (TLS_client_method ()); + SSL_CTX_set_min_proto_version(ssl_ctx, TLS1_3_VERSION); + SSL_CTX_set_max_proto_version(ssl_ctx, TLS1_3_VERSION); + break; +#endif + } if (!ssl_ctx) { @@ -1231,7 +1310,12 @@ #ifndef OPENSSL_NO_SSL3 case 3: printf (" --ssl-protocol=SSLv3"); break; #endif - case 4: printf (" --ssl-protocol=TLSv1"); break; + case 4: printf (" --ssl-protocol=TLSv1.0"); break; + case 5: printf (" --ssl-protocol=TLSv1.1"); break; + case 6: printf (" --ssl-protocol=TLSv1.2"); break; +#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) + case 7: printf (" --ssl-protocol=TLSv1.3"); break; +#endif } #endif if (param.additional_header) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/httperf-0.9.0+git.20170724/src/timer.c new/httperf-0.9.0+git.20180712/src/timer.c --- old/httperf-0.9.0+git.20170724/src/timer.c 2017-07-24 20:50:58.000000000 +0200 +++ new/httperf-0.9.0+git.20180712/src/timer.c 2018-07-12 20:11:00.000000000 +0200 @@ -36,6 +36,7 @@ #include <stdio.h> #include <stdlib.h> #include <sys/time.h> +#include <string.h> #include <generic_types.h> #include <list.h>