Hello community, here is the log from the commit of package siege for openSUSE:Factory checked in at 2020-09-29 19:04:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/siege (Old) and /work/SRC/openSUSE:Factory/.siege.new.4249 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "siege" Tue Sep 29 19:04:09 2020 rev:9 rq:838407 version:4.0.7 Changes: -------- --- /work/SRC/openSUSE:Factory/siege/siege.changes 2020-04-16 23:04:17.903730590 +0200 +++ /work/SRC/openSUSE:Factory/.siege.new.4249/siege.changes 2020-09-29 19:04:15.993953018 +0200 @@ -1,0 +2,9 @@ +Mon Sep 28 20:35:28 UTC 2020 - Dirk Mueller <dmueller@suse.com> + +- update to 4.0.7: + * Fixed an issue with expires + * Fixed an issue with persistence + * Minor bug fix + * Fixed initialization error + +------------------------------------------------------------------- Old: ---- siege-4.0.5.tar.gz New: ---- siege-4.0.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ siege.spec ++++++ --- /var/tmp/diff_new_pack.prHwAz/_old 2020-09-29 19:04:17.525954879 +0200 +++ /var/tmp/diff_new_pack.prHwAz/_new 2020-09-29 19:04:17.525954879 +0200 @@ -18,7 +18,7 @@ Name: siege -Version: 4.0.5 +Version: 4.0.7 Release: 0 Summary: HTTP Regression Testing/Benchmarking Utility License: GPL-2.0-or-later ++++++ siege-4.0.5.tar.gz -> siege-4.0.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siege-4.0.5/ChangeLog new/siege-4.0.7/ChangeLog --- old/siege-4.0.5/ChangeLog 2020-02-19 18:46:22.000000000 +0100 +++ new/siege-4.0.7/ChangeLog 2020-07-15 16:56:49.000000000 +0200 @@ -1,7 +1,22 @@ To email a contributor remove "DELETE" from the email address. (The DELETEs are necessary as this list is published online.) -2020/02/19 Jeffrey Fulmer http://www.joedog.org/support/ +2020/07/11 Jeffrey Fulmer http://www.joedog.org/support/ + * src/cookie.c Fixed an issue with expires + * src/cookies.c Fixed an issue with persistence + * src/version.c Version increment: 4.0.7 + +2020/07/11 Jeffrey Fulmer http://www.joedog.org/support/ + * src/init.c Minor bug fix + * src/auth.c Fixed initialization error + * src/version.c Version increment: 4.0.6 + +2020/07/10 Jeffrey Fulmer http://www.joedog.org/support/ + * src/creds.c Fixed an initialization problem + * src/cookies.c Fixed locking issue + * src/url.c Fixed an initialization problem + * src/init.c Fixed an initialization problem + * src/memory.c Formatting change * src/version.c Version increment: 4.0.5 2020/02/10 Ben Baker-Smith <ben@DELETEbaker-smith.net> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siege-4.0.5/configure new/siege-4.0.7/configure --- old/siege-4.0.5/configure 2020-02-19 18:46:49.000000000 +0100 +++ new/siege-4.0.7/configure 2020-07-15 16:54:54.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for siege 4.0.5. +# Generated by GNU Autoconf 2.68 for siege 4.0.7. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -711,8 +711,8 @@ # Identity of this package. PACKAGE_NAME='siege' PACKAGE_TARNAME='siege' -PACKAGE_VERSION='4.0.5' -PACKAGE_STRING='siege 4.0.5' +PACKAGE_VERSION='4.0.7' +PACKAGE_STRING='siege 4.0.7' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1454,7 +1454,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures siege 4.0.5 to adapt to many kinds of systems. +\`configure' configures siege 4.0.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1524,7 +1524,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of siege 4.0.5:";; + short | recursive ) echo "Configuration of siege 4.0.7:";; esac cat <<\_ACEOF @@ -1635,7 +1635,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -siege configure 4.0.5 +siege configure 4.0.7 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2259,7 +2259,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by siege $as_me 4.0.5, which was +It was created by siege $as_me 4.0.7, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -3083,7 +3083,7 @@ # Define the identity of the package. PACKAGE='siege' - VERSION='4.0.5' + VERSION='4.0.7' cat >>confdefs.h <<_ACEOF @@ -21932,7 +21932,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by siege $as_me 4.0.5, which was +This file was extended by siege $as_me 4.0.7, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21998,7 +21998,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -siege config.status 4.0.5 +siege config.status 4.0.7 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siege-4.0.5/doc/bombardment.1.in new/siege-4.0.7/doc/bombardment.1.in --- old/siege-4.0.5/doc/bombardment.1.in 2020-02-19 18:46:49.000000000 +0100 +++ new/siege-4.0.7/doc/bombardment.1.in 2020-07-15 16:54:54.000000000 +0200 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "BOMBARDMENT 1" -.TH BOMBARDMENT 1 "2020-02-19" "JoeDog" "bombardment" +.TH BOMBARDMENT 1 "2020-07-10" "JoeDog" "bombardment" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siege-4.0.5/doc/siege.1.in new/siege-4.0.7/doc/siege.1.in --- old/siege-4.0.5/doc/siege.1.in 2020-02-19 18:46:49.000000000 +0100 +++ new/siege-4.0.7/doc/siege.1.in 2020-07-15 16:54:54.000000000 +0200 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "SIEGE 1" -.TH SIEGE 1 "2020-02-19" "JoeDog" "Siege Load Tester" +.TH SIEGE 1 "2020-07-10" "JoeDog" "Siege Load Tester" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siege-4.0.5/doc/siege.config.1.in new/siege-4.0.7/doc/siege.config.1.in --- old/siege-4.0.5/doc/siege.config.1.in 2020-02-19 18:46:49.000000000 +0100 +++ new/siege-4.0.7/doc/siege.config.1.in 2020-07-15 16:54:54.000000000 +0200 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "SIEGE.CONFIG 1" -.TH SIEGE.CONFIG 1 "2020-02-19" "JoeDog" "siege.config utility" +.TH SIEGE.CONFIG 1 "2020-07-10" "JoeDog" "siege.config utility" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siege-4.0.5/doc/siege2csv.1.in new/siege-4.0.7/doc/siege2csv.1.in --- old/siege-4.0.5/doc/siege2csv.1.in 2020-02-19 18:46:49.000000000 +0100 +++ new/siege-4.0.7/doc/siege2csv.1.in 2020-07-15 16:54:54.000000000 +0200 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "BOMBARDMENT 1" -.TH BOMBARDMENT 1 "2020-02-19" "JoeDog" "siege2csv" +.TH BOMBARDMENT 1 "2020-07-10" "JoeDog" "siege2csv" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siege-4.0.5/src/auth.c new/siege-4.0.7/src/auth.c --- old/siege-4.0.5/src/auth.c 2020-02-19 18:42:11.000000000 +0100 +++ new/siege-4.0.7/src/auth.c 2020-07-10 20:09:32.000000000 +0200 @@ -146,11 +146,11 @@ this = calloc(AUTHSIZE, 1); this->creds = new_array(); - this->basic.encode = xstrdup(""); - this->digest.encode = xstrdup(""); - this->ntlm.encode = xstrdup(""); + this->basic.encode = NULL; + this->digest.encode = NULL; + this->ntlm.encode = NULL; this->ntlm.state = TYPE_N; - this->proxy.encode = xstrdup(""); + this->proxy.encode = NULL; return this; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siege-4.0.5/src/browser.c new/siege-4.0.7/src/browser.c --- old/siege-4.0.5/src/browser.c 2020-02-19 18:42:11.000000000 +0100 +++ new/siege-4.0.7/src/browser.c 2020-07-10 20:15:59.000000000 +0200 @@ -667,7 +667,6 @@ this->auth.type.www = BASIC; auth_set_basic_header(my.auth, HTTP, response_get_www_auth_realm(resp)); } - printf("%s %d\n", url_get_absolute(U), url_get_method(U)); if ((__request(this, U)) == FALSE) { fprintf(stderr, "ERROR from http_request\n"); return FALSE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siege-4.0.5/src/cookie.c new/siege-4.0.7/src/cookie.c --- old/siege-4.0.5/src/cookie.c 2020-02-19 18:42:11.000000000 +0100 +++ new/siege-4.0.7/src/cookie.c 2020-07-15 16:50:21.000000000 +0200 @@ -45,6 +45,9 @@ COOKIE this; this = calloc(sizeof(struct COOKIE_T), 1); + this->name = NULL; + this->value = NULL; + this->domain = NULL; this->expires = 0; this->expstr = NULL; this->string = NULL; @@ -286,6 +289,29 @@ this->session = FALSE; this->expires = expires; } // else this->expires was initialized 0 in the constructor + } else if (!strncasecmp(key, "max-age", 7)) { + struct tm *gmt; + long max = -1; + time_t now = time(NULL); + gmt = gmtime(&now); + now = mktime(gmt); + max = atof(val); + if (max != -1) { + /** + * XXX: This "works" but I can't implement it until I understand the hour diff + * + time_t tmp = now+max-3600; + char buf1[20]; + char buf2[20]; + strftime(buf1, 20, "%Y-%m-%d %H:%M:%S", localtime(&this->expires)); + strftime(buf2, 20, "%Y-%m-%d %H:%M:%S", localtime(&tmp)); + printf("!!!!!!!!!!!!!!! %ld %ld !!!!!!!!!!!!!!!\n", this->expires, tmp); + printf("expires: %s\n", buf1); + printf("max-age: %s\n", buf2); + this->expires = tmp; // I can't use this until I understand the hour diff + */ + this->session = FALSE; + } } else if (!strncasecmp(key, "path", 4)) { this->path = strdup(val); } else if (!strncasecmp(key, "domain", 6)) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siege-4.0.5/src/cookies.c new/siege-4.0.7/src/cookies.c --- old/siege-4.0.5/src/cookies.c 2020-02-19 18:42:11.000000000 +0100 +++ new/siege-4.0.7/src/cookies.c 2020-07-15 16:17:36.000000000 +0200 @@ -9,6 +9,7 @@ #include <array.h> #include <hash.h> #include <perl.h> +#include <setup.h> #include <memory.h> #include <notify.h> #include <cookies.h> @@ -23,7 +24,6 @@ NODE * head; size_t size; char * file; - pthread_mutex_t mutex; }; private NODE * __delete_node(NODE *node); @@ -32,19 +32,18 @@ COOKIES new_cookies() { + int len; COOKIES this; + char name[] = "/.siege/cookies.txt"; this = calloc(sizeof(struct COOKIES_T), 1); this->size = 0; - if (pthread_mutex_init( &(this->mutex), NULL) != 0) { - NOTIFY(FATAL, "cookies: pthread_mutex_init"); - } - int len; char *p = getenv("HOME"); - len = p ? strlen(p) : 20; - this->file = malloc(sizeof (char*) * len); + len = p ? strlen(p) : 60; + len += strlen(name)+1; + this->file = xmalloc(sizeof (char*) * len); memset(this->file, '\0', len); - snprintf(this->file, len, "%s/.siege/cookies.txt", getenv("HOME")); + snprintf(this->file, len, "%s%s", getenv("HOME"), name); return this; } @@ -52,15 +51,12 @@ cookies_destroy(COOKIES this) { NODE *cur = NULL; - pthread_mutex_lock(&(this->mutex)); __save_cookies(this); cur = this->head; while (cur) { cur = __delete_node(cur); } xfree(this->file); - pthread_mutex_unlock(&(this->mutex)); - pthread_mutex_destroy(&(this->mutex)); free(this); return NULL; } @@ -81,7 +77,7 @@ if (oreo == NULL) return FALSE; if (cookie_get_name(oreo) == NULL || cookie_get_value(oreo) == NULL) return FALSE; - pthread_mutex_lock(&(this->mutex)); + //pthread_mutex_lock(&(my.lock)); for (cur = pre = this->head; cur != NULL; pre = cur, cur = cur->next) { const char *domainptr = cookie_get_domain(cur->cookie); if (*domainptr == '.') ++domainptr; @@ -111,7 +107,8 @@ else pre->next = new; } - pthread_mutex_unlock(&(this->mutex)); + //pthread_cond_wait(&my.cond, &my.lock); + //pthread_mutex_unlock(&(my.lock)); return TRUE; } @@ -128,7 +125,6 @@ if (cur->threadID == id) { char *name = cookie_get_name(cur->cookie); if (!strcasecmp(name, str)) { - //NOTIFY(DEBUG, "%s:%d cookie deleted: %ld => %s\n",__FILE__, __LINE__, (long)id, str); cur->cookie = cookie_destroy(cur->cookie); pre->next = cur->next; if (cur == this->head) { @@ -185,7 +181,6 @@ memset(oreo, '\0', sizeof oreo); hlen = strlen(host); - pthread_mutex_lock(&(this->mutex)); tmp = time(NULL); gmtime_r(&tmp, &tm); tm.tm_isdst = -1; // force mktime to figure it out! @@ -228,7 +223,6 @@ strncat(newton, oreo, MAX_COOKIE_SIZE); strncat(newton, "\015\012", 2); } - pthread_mutex_unlock(&(this->mutex)); return newton; } @@ -358,6 +352,7 @@ now = time(NULL); fp = fopen(this->file, "w"); if (fp == NULL) { + fprintf(stderr, "ERROR: Unable to open cookies file: %s\n", this->file); return FALSE; } fputs("#\n", fp); @@ -398,16 +393,19 @@ { int fd; - /* open the file read only */ if ((fd = open(file, O_RDONLY)) < 0) { - /* the file does NOT exist */ - close(fd); + /** + * The file does NOT exist so the descriptor is -1 + * No need to close it. + */ return FALSE; } else { - /* party on Garth... */ + /** + * Party on Garth... + */ close(fd); return TRUE; } - return FALSE; } + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siege-4.0.5/src/creds.c new/siege-4.0.7/src/creds.c --- old/siege-4.0.5/src/creds.c 2020-02-19 18:42:11.000000000 +0100 +++ new/siege-4.0.7/src/creds.c 2020-07-10 20:03:06.000000000 +0200 @@ -45,7 +45,10 @@ CREDS this; this = calloc(sizeof(struct CREDS_T), 1); - this->scheme = scheme; + this->scheme = scheme; + this->username = NULL; + this->password = NULL; + this->realm = NULL; __parse_input(this, str); return this; } @@ -53,10 +56,10 @@ CREDS creds_destroy(CREDS this) { - free(this->username); - free(this->password); - free(this->realm); - free(this); + xfree(this->username); + xfree(this->password); + xfree(this->realm); + xfree(this); return NULL; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siege-4.0.5/src/url.c new/siege-4.0.7/src/url.c --- old/siege-4.0.5/src/url.c 2020-02-19 18:42:11.000000000 +0100 +++ new/siege-4.0.7/src/url.c 2020-07-10 20:11:43.000000000 +0200 @@ -91,11 +91,30 @@ new_url(char *str) { URL this; - this = xcalloc(sizeof(struct URL_T), 1); - this->ID = 0; + this = xmalloc(URLSIZE); + this->ID = 0; + this->scheme = HTTP; this->hasparams = FALSE; this->params = NULL; this->redir = FALSE; + this->method = GET; + this->username = NULL; + this->password = NULL; + this->hostname = NULL; + this->port = 80; + this->path = NULL; + this->file = NULL; + this->params = NULL; + this->hasparams = FALSE; + this->query = NULL; + this->frag = NULL; + this->request = NULL; + this->postlen = 0; + this->postdata = NULL; + this->posttemp = NULL; + this->conttype = NULL; + this->cached = FALSE; + this->redir = FALSE; __url_parse(this, str); return this; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siege-4.0.5/src/version.c new/siege-4.0.7/src/version.c --- old/siege-4.0.5/src/version.c 2020-02-19 18:43:41.000000000 +0100 +++ new/siege-4.0.7/src/version.c 2020-07-15 14:13:29.000000000 +0200 @@ -4,12 +4,12 @@ * used by configure to dynamically assign those values * to documentation files. */ -const char *version_string = "4.0.5"; +const char *version_string = "4.0.7"; const char *program_name = "siege"; const char *author_name = "Jeffrey Fulmer, et al."; const char *email_address = "jeff@joedog.org"; const char *years = "1999-2020"; -const char *copyright = "Copyright (C) 2020 by Jeffrey Fulmer, et al.\n\ +const char *copyright = "Copyright (C) 2018 by Jeffrey Fulmer, et al.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS\n\ FOR A PARTICULAR PURPOSE.\n";