Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package goaccess for openSUSE:Factory 
checked in at 2022-06-01 17:35:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/goaccess (Old)
 and      /work/SRC/openSUSE:Factory/.goaccess.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "goaccess"

Wed Jun  1 17:35:02 2022 rev:21 rq:980298 version:1.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/goaccess/goaccess.changes        2022-04-30 
00:46:12.606986380 +0200
+++ /work/SRC/openSUSE:Factory/.goaccess.new.1548/goaccess.changes      
2022-06-01 17:35:26.870796513 +0200
@@ -1,0 +2,17 @@
+Wed Jun  1 07:15:26 UTC 2022 - Michael Vetter <mvet...@suse.com>
+
+- Update to 1.6:
+  * Changed slightly how the XFF field is specified. See man page for details.
+  * Ensure city is displayed with the DBIP City Lite database.
+  * Ensure no 'cleaning up resources' message  is displayed if `--no-progress`
+    is passed.
+  * Ensure the maximum number of items per panel defaults to 1440 (24hrs) when
+    passing `--date-spec=min`.
+  * Fixed issue when parsing a delimited XFF field followed by a host IP.
+  * Fixed issue where some data was buffered on the WebSocket server before it
+    was sent to each client.
+  * Fixed issue where the WebSocket server would fail with POLLNVAL consuming
+    100% CPU.
+  * Fixed segfault when attempting to open an unresolved IP on mac/BSDs.
+
+-------------------------------------------------------------------

Old:
----
  goaccess-1.5.7.tar.gz

New:
----
  goaccess-1.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ goaccess.spec ++++++
--- /var/tmp/diff_new_pack.3bdWor/_old  2022-06-01 17:35:28.270798167 +0200
+++ /var/tmp/diff_new_pack.3bdWor/_new  2022-06-01 17:35:28.274798172 +0200
@@ -21,7 +21,7 @@
 %global goaccess_services goaccess@.service goaccess@.timer
 
 Name:           goaccess
-Version:        1.5.7
+Version:        1.6
 Release:        0
 Summary:        Apache Web Log Analyzer
 License:        GPL-2.0-or-later

++++++ goaccess-1.5.7.tar.gz -> goaccess-1.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/AUTHORS new/goaccess-1.6/AUTHORS
--- old/goaccess-1.5.7/AUTHORS  2022-04-28 03:25:52.000000000 +0200
+++ new/goaccess-1.6/AUTHORS    2022-06-01 05:34:16.000000000 +0200
@@ -12,6 +12,7 @@
   * Alexander Eifler <nore...@github.com>
   * Alexandre GUIOT--VALENTIN <cont...@alexandregv.fr>
   * Alexandre Perrin <nore...@github.com>
+  * Amos Hayes <aha...@gcrc.carleton.ca>
   * A. Nackov <anac...@gmail.com>
   * Anders Johansson <47452862+tellustheg...@users.noreply.github.com>
   * Andreas Sommer <andreas.som...@ppro.com>
@@ -88,6 +89,7 @@
   * Max Christian Pohle <goacc...@prosoftcorp.com>
   * metrix78 <metrix1...@gmail.com>
   * Michael Vetter <jub...@iodoru.org>
+  * Mika Raunio <mika@diago.global>
   * m-r-r <raybaudro...@gmail.com>
   * mynameiscfed <christopherfeder...@gmail.com>
   * Nicolas Le Manchet <nico...@lemanchet.fr>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/ChangeLog new/goaccess-1.6/ChangeLog
--- old/goaccess-1.5.7/ChangeLog        2022-04-28 03:24:02.000000000 +0200
+++ new/goaccess-1.6/ChangeLog  2022-06-01 05:04:44.000000000 +0200
@@ -1,3 +1,18 @@
+Changes to GoAccess 1.6 - Tuesday, May 31, 2022
+
+  - Changed slightly how the XFF field is specified. See man page for details.
+  - Ensure city is displayed with the DBIP City Lite database.
+  - Ensure no 'cleaning up resources' message  is displayed if `--no-progress`
+    is passed.
+  - Ensure the maximum number of items per panel defaults to 1440 (24hrs) when
+    passing `--date-spec=min`.
+  - Fixed issue when parsing a delimited XFF field followed by a host IP.
+  - Fixed issue where some data was buffered on the WebSocket server before it
+    was sent to each client.
+  - Fixed issue where the WebSocket server would fail with POLLNVAL consuming
+    100% CPU.
+  - Fixed segfault when attempting to open an unresolved IP on mac/BSDs.
+
 Changes to GoAccess 1.5.7 - Thursday, April 28, 2022
 
   - Updated Caddy's JSON format. This should address CADDY's v2.5.0 change.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/NEWS new/goaccess-1.6/NEWS
--- old/goaccess-1.5.7/NEWS     2022-04-28 03:18:06.000000000 +0200
+++ new/goaccess-1.6/NEWS       2022-06-01 04:56:02.000000000 +0200
@@ -2,6 +2,8 @@
 Gerardo Orellana <goacc...@prosoftcorp.com>
 
 * Version history:
+    - 1.6 [Tuesday, May 31 , 2022]
+        . GoAccess 1.6 Released. See ChangeLog for new features/bug-fixes.
     - 1.5.7 [Thursday, April 28 , 2022]
         . GoAccess 1.5.7 Released. See ChangeLog for new features/bug-fixes.
     - 1.5.6 [Wednesday, March 30, 2022]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/configure new/goaccess-1.6/configure
--- old/goaccess-1.5.7/configure        2022-04-28 03:29:48.000000000 +0200
+++ new/goaccess-1.6/configure  2022-06-01 05:34:51.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for goaccess 1.5.7.
+# Generated by GNU Autoconf 2.69 for goaccess 1.6.
 #
 # Report bugs to <he...@goaccess.io>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='goaccess'
 PACKAGE_TARNAME='goaccess'
-PACKAGE_VERSION='1.5.7'
-PACKAGE_STRING='goaccess 1.5.7'
+PACKAGE_VERSION='1.6'
+PACKAGE_STRING='goaccess 1.6'
 PACKAGE_BUGREPORT='he...@goaccess.io'
 PACKAGE_URL='https://goaccess.io'
 
@@ -1333,7 +1333,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 goaccess 1.5.7 to adapt to many kinds of systems.
+\`configure' configures goaccess 1.6 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1404,7 +1404,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of goaccess 1.5.7:";;
+     short | recursive ) echo "Configuration of goaccess 1.6:";;
    esac
   cat <<\_ACEOF
 
@@ -1514,7 +1514,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-goaccess configure 1.5.7
+goaccess configure 1.6
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2067,7 +2067,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by goaccess $as_me 1.5.7, which was
+It was created by goaccess $as_me 1.6, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2934,7 +2934,7 @@
 
 # Define the identity of the package.
  PACKAGE='goaccess'
- VERSION='1.5.7'
+ VERSION='1.6'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -9658,7 +9658,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by goaccess $as_me 1.5.7, which was
+This file was extended by goaccess $as_me 1.6, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -9725,7 +9725,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-goaccess config.status 1.5.7
+goaccess config.status 1.6
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/configure.ac 
new/goaccess-1.6/configure.ac
--- old/goaccess-1.5.7/configure.ac     2022-04-28 03:16:05.000000000 +0200
+++ new/goaccess-1.6/configure.ac       2022-06-01 04:51:48.000000000 +0200
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.69])
-AC_INIT([goaccess],[1.5.7],[he...@goaccess.io],[],[https://goaccess.io])
+AC_INIT([goaccess],[1.6],[he...@goaccess.io],[],[https://goaccess.io])
 AM_INIT_AUTOMAKE
 AC_CONFIG_SRCDIR([src/goaccess.c])
 AC_CONFIG_HEADERS([src/config.h])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/goaccess.1 new/goaccess-1.6/goaccess.1
--- old/goaccess-1.5.7/goaccess.1       2022-04-28 03:29:31.000000000 +0200
+++ new/goaccess-1.6/goaccess.1 2022-06-01 05:32:59.000000000 +0200
@@ -1,4 +1,4 @@
-.TH goaccess 1 "APRIL 2022" GNU+Linux "User Manuals"
+.TH goaccess 1 "MAY 2022" GNU+Linux "User Manuals"
 .SH NAME
 goaccess \- fast web log analyzer and interactive viewer.
 .SH SYNOPSIS
@@ -909,10 +909,31 @@
 
 It uses a special specifier which consists of a tilde before the host
 specifier, followed by the character(s) that delimit the XFF field, which are
-enclosed by curly braces (i.e., ~h{," })
+enclosed by curly braces. i.e., "~h{, }
+
+For example, "~h{, }" is used in order to parse "11.25.11.53, 17.68.33.17" 
field
+which is delimited by a comma and a space (enclosed by double quotes).
+
+.TS
+allbox;
+lb lb
+l l.
+XFF field      specifier
+T{
+.BR \[dq]192.1.2.3, \~192.68.33.17,\~192.1.1.2\[dq]
+T}     \[dq]~h{, }\[dq]
+T{
+.BR \[dq]192.1.2.12\[dq],\~\[dq]192.68.33.17\[dq]
+T}     ~h{\[dq], }
+T{
+.BR 192.1.2.12,\~192.68.33.17
+T}     ~h{, }
+T{
+.BR 192.1.2.14\~192.68.33.17\~192.1.1.2
+T}     ~h{ }
+.TE
+
 
-For example, ~h{," } is used in order to parse "11.25.11.53, 17.68.33.17" field
-which is delimited by a double quote, a comma, and a space.
 .P
 .I Note:
 In order to get the average, cumulative and maximum time served in GoAccess,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/po/de.po new/goaccess-1.6/po/de.po
--- old/goaccess-1.5.7/po/de.po 2022-04-28 03:30:13.000000000 +0200
+++ new/goaccess-1.6/po/de.po   2022-06-01 05:35:17.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: he...@goaccess.io\n"
-"POT-Creation-Date: 2022-04-27 20:30-0500\n"
+"POT-Creation-Date: 2022-05-31 22:35-0500\n"
 "PO-Revision-Date: 2019-05-05 16:03+0200\n"
 "Last-Translator: Axel Wehner <m...@axelwehner.de>\n"
 "Language: de\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/po/es.po new/goaccess-1.6/po/es.po
--- old/goaccess-1.5.7/po/es.po 2022-04-28 03:30:13.000000000 +0200
+++ new/goaccess-1.6/po/es.po   2022-06-01 05:35:17.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Goaccess\n"
 "Report-Msgid-Bugs-To: he...@goaccess.io\n"
-"POT-Creation-Date: 2022-04-27 20:30-0500\n"
+"POT-Creation-Date: 2022-05-31 22:35-0500\n"
 "PO-Revision-Date: 2017-08-04 13:00-0300\n"
 "Last-Translator: Enrique Becerra <kab...@gmail.com>\n"
 "Language-Team: \n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/po/fr.po new/goaccess-1.6/po/fr.po
--- old/goaccess-1.5.7/po/fr.po 2022-04-28 03:30:13.000000000 +0200
+++ new/goaccess-1.6/po/fr.po   2022-06-01 05:35:17.000000000 +0200
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: goaccess 1.4\n"
 "Report-Msgid-Bugs-To: he...@goaccess.io\n"
-"POT-Creation-Date: 2022-04-27 20:30-0500\n"
+"POT-Creation-Date: 2022-05-31 22:35-0500\n"
 "PO-Revision-Date: 2020-07-10 11:44+0200\n"
 "Last-Translator: Coban L. <coban.leb...@nfrance.com>\n"
 "Language-Team: fran??ais\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/po/goaccess.pot 
new/goaccess-1.6/po/goaccess.pot
--- old/goaccess-1.5.7/po/goaccess.pot  2022-04-28 03:30:13.000000000 +0200
+++ new/goaccess-1.6/po/goaccess.pot    2022-06-01 05:35:17.000000000 +0200
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: goaccess 1.5.7\n"
+"Project-Id-Version: goaccess 1.6\n"
 "Report-Msgid-Bugs-To: he...@goaccess.io\n"
-"POT-Creation-Date: 2022-04-27 20:30-0500\n"
+"POT-Creation-Date: 2022-05-31 22:35-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <l...@li.org>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/po/it.po new/goaccess-1.6/po/it.po
--- old/goaccess-1.5.7/po/it.po 2022-04-28 03:30:13.000000000 +0200
+++ new/goaccess-1.6/po/it.po   2022-06-01 05:35:18.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Goaccess\n"
 "Report-Msgid-Bugs-To: he...@goaccess.io\n"
-"POT-Creation-Date: 2022-04-27 20:30-0500\n"
+"POT-Creation-Date: 2022-05-31 22:35-0500\n"
 "PO-Revision-Date: 2017-08-04 13:00-0300\n"
 "Last-Translator: Mario Donnarumma <mario.donnarumma...@gmail.com>\n"
 "Language-Team: \n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/po/ja.po new/goaccess-1.6/po/ja.po
--- old/goaccess-1.5.7/po/ja.po 2022-04-28 03:30:13.000000000 +0200
+++ new/goaccess-1.6/po/ja.po   2022-06-01 05:35:17.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: goaccess 1.3\n"
 "Report-Msgid-Bugs-To: he...@goaccess.io\n"
-"POT-Creation-Date: 2022-04-27 20:30-0500\n"
+"POT-Creation-Date: 2022-05-31 22:35-0500\n"
 "PO-Revision-Date: 2020-08-19 06:27+0900\n"
 "Last-Translator: Kamino <67395018+err...@users.noreply.github.com>\n"
 "Language-Team: Japanese\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/po/pt_BR.po 
new/goaccess-1.6/po/pt_BR.po
--- old/goaccess-1.5.7/po/pt_BR.po      2022-04-28 03:30:13.000000000 +0200
+++ new/goaccess-1.6/po/pt_BR.po        2022-06-01 05:35:18.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Goaccess\n"
 "Report-Msgid-Bugs-To: he...@goaccess.io\n"
-"POT-Creation-Date: 2022-04-27 20:30-0500\n"
+"POT-Creation-Date: 2022-05-31 22:35-0500\n"
 "PO-Revision-Date: 2019-04-25 20:34-0300\n"
 "Last-Translator: Alan Placidina Maria <alanplacid...@gmail.com>\n"
 "Language-Team: \n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/po/ru.po new/goaccess-1.6/po/ru.po
--- old/goaccess-1.5.7/po/ru.po 2022-04-28 03:30:13.000000000 +0200
+++ new/goaccess-1.6/po/ru.po   2022-06-01 05:35:18.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: goaccess 1.5.6\n"
 "Report-Msgid-Bugs-To: he...@goaccess.io\n"
-"POT-Creation-Date: 2022-04-27 20:30-0500\n"
+"POT-Creation-Date: 2022-05-31 22:35-0500\n"
 "PO-Revision-Date: 2022-04-21 10:17+0300\n"
 "Last-Translator: Artyom Karlov <artyom.kar...@gmail.com>\n"
 "Language-Team: \n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/po/sv.po new/goaccess-1.6/po/sv.po
--- old/goaccess-1.5.7/po/sv.po 2022-04-28 03:30:13.000000000 +0200
+++ new/goaccess-1.6/po/sv.po   2022-06-01 05:35:18.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: goaccess 1.3\n"
 "Report-Msgid-Bugs-To: he...@goaccess.io\n"
-"POT-Creation-Date: 2022-04-27 20:30-0500\n"
+"POT-Creation-Date: 2022-05-31 22:35-0500\n"
 "PO-Revision-Date: 2018-12-13 22:48-0600\n"
 "Last-Translator: Anders Johansson <johans...@aljmedia.se>\n"
 "Language-Team: none\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/po/uk.po new/goaccess-1.6/po/uk.po
--- old/goaccess-1.5.7/po/uk.po 2022-04-28 03:30:13.000000000 +0200
+++ new/goaccess-1.6/po/uk.po   2022-06-01 05:35:18.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: goaccess 1.5.6\n"
 "Report-Msgid-Bugs-To: he...@goaccess.io\n"
-"POT-Creation-Date: 2022-04-27 20:30-0500\n"
+"POT-Creation-Date: 2022-05-31 22:35-0500\n"
 "PO-Revision-Date: 2022-04-21 10:17+0300\n"
 "Last-Translator: Artyom Karlov <artyom.kar...@gmail.com>\n"
 "Language-Team: \n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/po/zh_CN.po 
new/goaccess-1.6/po/zh_CN.po
--- old/goaccess-1.5.7/po/zh_CN.po      2022-04-28 03:30:13.000000000 +0200
+++ new/goaccess-1.6/po/zh_CN.po        2022-06-01 05:35:18.000000000 +0200
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: goaccess 1.5.6\n"
 "Report-Msgid-Bugs-To: he...@goaccess.io\n"
-"POT-Creation-Date: 2022-04-27 20:30-0500\n"
+"POT-Creation-Date: 2022-05-31 22:35-0500\n"
 "PO-Revision-Date: 2017-04-03 09:43+0200\n"
 "Last-Translator: Ai<he...@goaccess.io>\n"
 "Language-Team: Ai\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/src/commons.c 
new/goaccess-1.6/src/commons.c
--- old/goaccess-1.5.7/src/commons.c    2022-04-28 02:53:00.000000000 +0200
+++ new/goaccess-1.6/src/commons.c      2022-05-31 18:48:57.000000000 +0200
@@ -90,7 +90,8 @@
 
   /* no max choices, return defaults */
   if (conf.max_items <= 0)
-    return conf.real_time_html ? MAX_CHOICES_RT : MAX_CHOICES;
+    return conf.real_time_html ? MAX_CHOICES_RT : (conf.date_spec_hr ==
+                                                   2 ? MAX_CHOICES_MINUTE : 
MAX_CHOICES);
 
   /* TERM */
   if (!conf.output_stdout)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/src/commons.h 
new/goaccess-1.6/src/commons.h
--- old/goaccess-1.5.7/src/commons.h    2022-04-28 03:15:34.000000000 +0200
+++ new/goaccess-1.6/src/commons.h      2022-06-01 04:50:36.000000000 +0200
@@ -43,7 +43,7 @@
 #define __attribute__(x) /**/
 #endif
 #define GO_UNUSED __attribute__((unused))
-#define GO_VERSION             "1.5.7"
+#define GO_VERSION             "1.6"
 #define GO_WEBSITE             "https://goaccess.io/";
 extern struct tm now_tm;
 
@@ -58,9 +58,11 @@
 #endif
 
 /* maximum number of items within a panel */
-#define MAX_CHOICES      366
+#define MAX_CHOICES          366
 /* real-time */
-#define MAX_CHOICES_RT    50
+#define MAX_CHOICES_RT        50
+/* max default items when date-spec = min */
+#define MAX_CHOICES_MINUTE  1440        /* 24hrs */
 
 /* date and time length - e.g., 2016/12/12 12:12:12 -0600 */
 #define DATE_TIME     25 + 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/src/gdashboard.c 
new/goaccess-1.6/src/gdashboard.c
--- old/goaccess-1.5.7/src/gdashboard.c 2022-04-28 02:53:00.000000000 +0200
+++ new/goaccess-1.6/src/gdashboard.c   2022-05-31 18:48:57.000000000 +0200
@@ -1343,7 +1343,8 @@
   char *data = NULL;
   int *idx;
 
-  if (!metrics->data)
+  data = is_subitem ? render_child_node (metrics->data) : metrics->data;
+  if (!data)
     return;
 
   idx = &(*dash)->module[module].idx_data;
@@ -1353,8 +1354,6 @@
   idata->metrics = new_gmetrics ();
   idata->is_subitem = is_subitem;
 
-  data = is_subitem ? render_child_node (metrics->data) : metrics->data;
-
   idata->metrics->hits = metrics->hits;
   idata->metrics->hits_perc = get_percentage (totals.hits, metrics->hits);
   idata->metrics->visitors = metrics->visitors;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/src/gdns.c new/goaccess-1.6/src/gdns.c
--- old/goaccess-1.5.7/src/gdns.c       2022-04-28 02:53:00.000000000 +0200
+++ new/goaccess-1.6/src/gdns.c 2022-05-31 19:05:02.000000000 +0200
@@ -157,13 +157,17 @@
  * On success, a malloc'd hostname is returned. */
 static char *
 reverse_host (const struct sockaddr *a, socklen_t length) {
-  char h[H_SIZE];
+  char h[H_SIZE] = { 0 };
   int flags, st;
 
   flags = NI_NAMEREQD;
   st = getnameinfo (a, length, h, H_SIZE, NULL, 0, flags);
-  if (!st)
+  if (!st) {
+    /* BSD returns \0 while Linux . on solve lookups */
+    if (*h == '\0')
+      return alloc_string (".");
     return alloc_string (h);
+  }
   return alloc_string (gai_strerror (st));
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/src/geoip2.c 
new/goaccess-1.6/src/geoip2.c
--- old/goaccess-1.5.7/src/geoip2.c     2022-04-28 02:53:10.000000000 +0200
+++ new/goaccess-1.6/src/geoip2.c       2022-05-31 18:48:57.000000000 +0200
@@ -90,7 +90,7 @@
     FATAL ("Unable to open GeoIP2 database %s: %s\n", fn, MMDB_strerror 
(status));
   }
 
-  if (strcmp (mmdb->metadata.database_type, "GeoLite2-City") == 0)
+  if (strstr (mmdb->metadata.database_type, "-City") != NULL)
     geoip_city_type = 1;
 }
 
@@ -209,8 +209,12 @@
   if (res.found_entry) {
     city = get_value (res, "city", "names", DOC_LANG, NULL);
     region = get_value (res, "subdivisions", "0", "names", DOC_LANG, NULL);
-    if (!city) { city = get_value (res, "city", "names", "en", NULL); }
-    if (!region) { region = get_value (res, "subdivisions", "0", "names", 
"en", NULL); }
+    if (!city) {
+      city = get_value (res, "city", "names", "en", NULL);
+    }
+    if (!region) {
+      region = get_value (res, "subdivisions", "0", "names", "en", NULL);
+    }
   }
   geoip_set_city (city, region, location);
   free (city);
@@ -228,7 +232,9 @@
   if (res.found_entry) {
     country = get_value (res, "country", "names", DOC_LANG, NULL);
     code = get_value (res, "country", "iso_code", NULL);
-    if (!country) { country = get_value (res, "country", "names", "en", NULL); 
}
+    if (!country) {
+      country = get_value (res, "country", "names", "en", NULL);
+    }
   }
   geoip_set_country (country, code, location);
   free (code);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/src/goaccess.c 
new/goaccess-1.6/src/goaccess.c
--- old/goaccess-1.5.7/src/goaccess.c   2022-04-28 02:53:00.000000000 +0200
+++ new/goaccess-1.6/src/goaccess.c     2022-05-31 18:48:57.000000000 +0200
@@ -210,7 +210,9 @@
   if (!conf.output_stdout)
     endwin ();
 
-  fprintf (stdout, "Cleaning up resources...\n");
+  if (!conf.no_progress)
+    fprintf (stdout, "Cleaning up resources...\n");
+
   /* unable to process valid data */
   if (ret)
     output_logerrors ();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/src/parser.c 
new/goaccess-1.6/src/parser.c
--- old/goaccess-1.5.7/src/parser.c     2022-04-28 02:53:00.000000000 +0200
+++ new/goaccess-1.6/src/parser.c       2022-05-31 18:48:57.000000000 +0200
@@ -1283,14 +1283,11 @@
  * On success, the malloc'd token is assigned to a GLogItem->host and
  * 0 is returned. */
 static int
-find_xff_host (GLogItem * logitem, char **str, char **p) {
-  char *ptr = NULL, *tkn = NULL, *skips = NULL;
+set_xff_host (GLogItem * logitem, char **str, char *skips, int out) {
+  char *ptr = NULL, *tkn = NULL;
   int invalid_ip = 1, len = 0, type_ip = TYPE_IPINV;
   int idx = 0, skips_len = 0;
 
-  if (!(skips = extract_braces (p)))
-    return spec_err (logitem, SPEC_SFMT_MIS, **p, "{}");
-
   skips_len = strlen (skips);
   ptr = *str;
   while (*ptr != '\0') {
@@ -1321,13 +1318,48 @@
     free (tkn);
     idx = 0;
 
+    /* found the client IP, break then */
+    if (logitem->host && out)
+      break;
+
   move:
     *str += len;
   }
 
+  return logitem->host == NULL;
+}
+
+/* Attempt to find possible delimiters in the X-Forwarded-For (XFF) field.
+ *
+ * If no IP is found, 1 is returned.
+ * On success, the malloc'd token is assigned to a GLogItem->host and 0 is 
returned. */
+static int
+find_xff_host (GLogItem * logitem, char **str, char **p) {
+  char *skips = NULL, *extract = NULL;
+  char pch[2] = { 0 };
+  int res = 0;
+
+  if (!(skips = extract_braces (p)))
+    return spec_err (logitem, SPEC_SFMT_MIS, **p, "{}");
+
+  /* if the log format current char is not within the braces special chars, 
then
+   * we assume the range of IPs are within hard delimiters */
+  if (!strchr (skips, **p) && strchr (*str, **p)) {
+    strcpy (pch, (char[2]) { (char) **p, '\0' });
+    if (!(extract = parse_string (&(*str), pch, 1)))
+      goto clean;
+
+    if (!(res = set_xff_host (logitem, &extract, skips, 1)))
+      free (extract);
+    (*str)++;   /* move a char forward from the trailing delim */
+  } else {
+    res = set_xff_host (logitem, str, skips, 0);
+  }
+
+clean:
   free (skips);
 
-  return logitem->host == NULL;
+  return res;
 }
 
 /* Handle special specifiers.
@@ -1447,7 +1479,9 @@
     if (!glog->log_erridx)
       continue;
 
-    fprintf (stderr, "==%d== GoAccess - Copyright (C) 2009-2020 by Gerardo 
Orellana\n", pid);
+    fprintf (stderr, "==%d== GoAccess - version %s - %s %s\n", pid, 
GO_VERSION, __DATE__,
+             __TIME__);
+    fprintf (stderr, "==%d== Config file: %s\n", pid, conf.iconfigfile ? : 
NO_CONFIG_FILE);
     fprintf (stderr, "==%d== https://goaccess.io - <he...@goaccess.io>\n", 
pid);
     fprintf (stderr, "==%d== Released under the MIT License.\n", pid);
     fprintf (stderr, "==%d==\n", pid);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/goaccess-1.5.7/src/websocket.c 
new/goaccess-1.6/src/websocket.c
--- old/goaccess-1.5.7/src/websocket.c  2022-04-19 01:31:21.000000000 +0200
+++ new/goaccess-1.6/src/websocket.c    2022-05-31 18:48:57.000000000 +0200
@@ -88,9 +88,9 @@
 static nfds_t nfdstate = 0;
 static WSConfig wsconfig = { 0 };
 
-static void handle_read_close (int conn, WSClient * client, WSServer * server);
-static void handle_reads (int conn, WSServer * server);
-static void handle_writes (int conn, WSServer * server);
+static void handle_read_close (int *conn, WSClient * client, WSServer * 
server);
+static void handle_reads (int *conn, WSServer * server);
+static void handle_writes (int *conn, WSServer * server);
 #ifdef HAVE_LIBSSL
 static int shutdown_ssl (WSClient * client);
 #endif
@@ -878,7 +878,7 @@
  * On error or if no SSL pending status, 1 is returned.
  * On success, the TLS/SSL pending action is called and 0 is returned */
 static int
-handle_ssl_pending_rw (int conn, WSServer * server, WSClient * client) {
+handle_ssl_pending_rw (int *conn, WSServer * server, WSClient * client) {
   if (!wsconfig.use_ssl)
     return 1;
 
@@ -2183,13 +2183,13 @@
 
 /* Handle a tcp read close connection. */
 static void
-handle_read_close (int conn, WSClient * client, WSServer * server) {
+handle_read_close (int *conn, WSClient * client, WSServer * server) {
   if (client->status & WS_SENDING) {
     server->closing = 1;
     set_pollfd (client->listener, POLLOUT);
     return;
   }
-  handle_tcp_close (conn, client, server);
+  handle_tcp_close (*conn, client, server);
 }
 
 /* Handle a new socket connection. */
@@ -2216,10 +2216,10 @@
 
 /* Handle a tcp read. */
 static void
-handle_reads (int conn, WSServer * server) {
+handle_reads (int *conn, WSServer * server) {
   WSClient *client = NULL;
 
-  if (!(client = ws_get_client_from_list (conn, &server->colist)))
+  if (!(client = ws_get_client_from_list (*conn, &server->colist)))
     return;
 
 #ifdef HAVE_LIBSSL
@@ -2235,6 +2235,7 @@
   /* An error occurred while reading data or connection closed */
   if ((client->status & WS_CLOSE)) {
     handle_read_close (conn, client, server);
+    *conn = -1;
   }
 }
 
@@ -2246,10 +2247,10 @@
 
 /* Handle a tcp write. */
 static void
-handle_writes (int conn, WSServer * server) {
+handle_writes (int *conn, WSServer * server) {
   WSClient *client = NULL;
 
-  if (!(client = ws_get_client_from_list (conn, &server->colist)))
+  if (!(client = ws_get_client_from_list (*conn, &server->colist)))
     return;
 
 #ifdef HAVE_LIBSSL
@@ -2268,7 +2269,7 @@
    * waiting from the last send() from the server to the client.  e.g.,
    * sending status code */
   if ((client->status & WS_CLOSE) && !(client->status & WS_SENDING))
-    handle_write_close (conn, client, server);
+    handle_write_close (*conn, client, server);
 }
 
 /* Create named pipe (FIFO) with the given pipe name.
@@ -2742,7 +2743,7 @@
  * descriptors until we have something to read or write. */
 void
 ws_start (WSServer * server) {
-  int listener = -1;
+  int listener = -1, ret = 0;
   struct pollfd *cfdstate = NULL, *pfd, *efd;
   nfds_t ncfdstate = 0;
   bool run = true;
@@ -2770,12 +2771,13 @@
     if (ncfdstate != nfdstate) {
       free (cfdstate);
       cfdstate = xmalloc (nfdstate * sizeof (*cfdstate));
+      memset (cfdstate, 0, sizeof (*cfdstate) * nfdstate);
       ncfdstate = nfdstate;
     }
     memcpy (cfdstate, fdstate, ncfdstate * sizeof (*cfdstate));
 
     /* yep, wait patiently */
-    if (poll (cfdstate, nfdstate, -1) == -1) {
+    if ((ret = poll (cfdstate, nfdstate, -1)) == -1) {
       switch (errno) {
       case EINTR:
         LOG (("A signal was caught on poll(2)\n"));
@@ -2788,6 +2790,13 @@
     /* iterate over existing connections */
     efd = cfdstate + nfdstate;
     for (pfd = cfdstate; pfd < efd; pfd++) {
+      if (pfd->revents & POLLHUP)
+        LOG (("Got POLLHUP %d\n", pfd->fd));
+      if (pfd->revents & POLLNVAL)
+        LOG (("Got POLLNVAL %d\n", pfd->fd));
+      if (pfd->revents & POLLERR)
+        LOG (("Got POLLERR %d\n", pfd->fd));
+
       /* handle self-pipe trick */
       if (pfd->fd == server->self_pipe[0]) {
         if (pfd->revents & POLLIN) {
@@ -2815,11 +2824,11 @@
             if (ffd != NULL)
               ffd->events &= ~POLLIN;
           } else
-            handle_reads (pfd->fd, server);
+            handle_reads (&pfd->fd, server);
         }
         /* handle sending data to a client */
         if (pfd->revents & POLLOUT)
-          handle_writes (pfd->fd, server);
+          handle_writes (&pfd->fd, server);
       }
     }
   }

Reply via email to