head 1.1; access; symbols; locks; strict; comment @ * @; 1.1 date 2026.10.19.07.36.19; author tm; state Exp; branches; next ; commitid FA4v9w7ktdNPH30H; desc @@ 1.1 log @goaccess: update to 1.12 Changes to GoAccess 1.12 - Wednesday, September 16, 2026 - Added a dedicated "AI Crawlers" browser category, separating AI assistants and model training bots from traditional search engine crawlers. - Added a Fediverse browser category for identifiable ActivityPub server traffic, separating it from traditional web crawlers. - Added a live requests-per-second rate alongside total requests in the terminal and HTML reports while following logs, and exposed it through the WebSocket JSON output. - Added a warning when restoring databases that predate request-grouping metadata, and rejected restores whose `--http-method` or `--http-protocol` settings no longer match the ones the database was created with. - Added `--exclude-asn` to exclude requests whose client address resolves to a given Autonomous System Number. It can be repeated, accepts either 8075 or AS8075, and requires a GeoIP2 ASN database. - Added resolved, total and pending hostname metrics to the progress display when resolving IP addresses for static output. - Added the negotiated TLS key exchange group via `%g`, nested beneath its cipher suite in the TLS panel. - Added `VCOMBINED_PORT` and `VCOMMON_PORT` predefined log formats for virtual host logs that carry a colon-delimited port. - Documented `--concat-vhost-req` and `--unix-socket`, which were accepted but missing from the man page and the `--help` output. - Fixed a shutdown race that could leave WebSocket server threads running. - Fixed crawler filtering skipping bots whose operating system could not be determined. - Fixed panel sorting not being initialized for panels rendered after the initial load of the HTML report. - Fixed the globe projection not centering on an expanded continent, while preserving the current zoom level and manual rotation. - Fixed the printf format used for `size_t` values in bin2c, which warned on 32-bit platforms. - Fixed the same log source being processed twice when it was passed more than once through different paths. - Fixed the spinner falling out of sync with the progress output while resolving hostnames. - Fixed user agent classification, correcting the Applebot spelling and giving HTTP library and uptime signatures precedence over broader fallback tokens. - Fixed `VCOMBINED` and `VCOMMON` requiring a port after the virtual host, which prevented logs without one from being parsed. - Fixed WebSocket text frames being parsed as null-terminated strings rather than by payload length. - Hardened WebSocket authentication by tracking the verified JWT `exp` claim and closing the connection once the token expires, and by clearing browser credentials when a token refresh fails or returns an unusable token. - Refined subitem indentation in the HTML report with a more compact layout and subtle tree guides. - Removed the deprecated `--no-column-names` from the `--help` output and the sample configuration, where it lingered after being dropped in v1.10. - Replaced the keyphrases panel with a UTM Campaigns panel reporting `utm_source`, `utm_medium`, `utm_campaign`, `utm_content` and `utm_term`. - Updated operating system detection, adding iPadOS, visionOS, watchOS, tvOS, KaiOS, Fuchsia, Xbox and Windows Phone. - Updated the Caddy predefined format to match the current JSON access log structure. - Updated the CloudFront predefined format to the current standard log schema, capturing the query string, virtual host and TLS fields while safely ignoring newer trailing fields. Changes to GoAccess 1.11 - Sunday, July 19, 2026 - Added automatic, crash-safe migration of persisted databases to storage format version 3. - Added configured zlib and AddressSanitizer options to the version output. - Added fullscreen expand and collapse controls to geolocation maps in the HTML report. - Added Traditional Chinese translation. - Expanded Debian package builds to Ubuntu 26.04 and additional architectures, and updated the packaging workflow actions. - Fixed a heap buffer overflow when parsing malformed Opera user agents. - Fixed an infinite loop while writing log parsing errors from multiple input files. - Fixed city lookups ignoring the City database when a Country database was listed first. - Fixed geolocation maps appearing grey after restoring persisted city data. New databases preserve the exact country-to-continent mapping, while older databases use a compatible built-in fallback. - Fixed `.gz` file extensions being interpreted as macros in the man page. - Fixed iOS version parsing from user-agent strings. - Fixed unique visitor undercounting caused by collisions between reversed data and visitor key pairs. - Fixed WebSocket payload size checks for large and fragmented messages. - Grouped Lynx, Links, ELinks, w3m and Chawan under a new "Text-based" browser category. - Reduced storage memory usage by about 20% and parsing time by about 35%. Changes to GoAccess 1.10.2 - Tuesday, March 31, 2026 - Added detection for Arc and Zen browsers in the HTML report. - Added Georgian translation. - Fixed a crash caused by invalid country/city parsing from the GeoIP database. - Fixed empty string data field crashing the HTML report on initial page load when entries contain no Referer, unknown UA strings, missing Host headers, or unresolvable GeoIP locations. - Fixed relative paths not being resolved to absolute paths while ingesting data. - Fixed old local stored preference objects not being validated on load, preventing corrupted localStorage from breaking the UI. Changes to GoAccess 1.10.1 - Saturday, February 14, 2026 - Fixed a crash when restoring persisted data via `--restore` that contained GEOLOCATION data generated in versions ≤ v1.9.4 and loaded with v1.10. Changes to GoAccess 1.10 - Wednesday, February 11, 2026 - Added new bar charts to the terminal UI for a quicker visual read of metrics. - Added city-level entries to the GEOLOCATION panel. - Added optional zlib support to parse compressed log files. - Added panel reordering in the TUI, letting you customize the dashboard layout. - Added sorting for panels in the HTML report. - Added the ability to expand and collapse subitems within TUI panels for easier navigation of large datasets. - Added a TX Amount percent column to the TUI for clearer traffic share insight. - Added the ability to prepend the virtual host to a request via --concat-vhost-req - Deprecated `--no-column-names` in favor of a unified TUI dashboard. - Fixed log tailing edge cases, including empty reads and date specificity overrides from the CLI. - Fixed stability issues in multi-threaded parsing and during Ctrl+C with multiple jobs. - Fixed inability to override date specificity from the CLI. - Fixed dry-run lines being counted as processed during config format testing. - Improved the TUI spinner and progress display for smoother, clearer feedback during parsing. - Refreshed the HTML dashboard styling and theme visuals. - Updated browser and OS detection lists, including macOS 26 (Tahoe) and Alibaba Cloud Linux. - Updated packaging targets, adding Debian Trixie while dropping Debian Buster and i386 builds. - Updated Swedish, Chinese and Japanese translations - Updated Dockerfile to use openssl-dev for compatibility with SSL_CIPHER_standard_name(3ssl). Changes to GoAccess 1.9.4 - Monday, March 31, 2025 - Added an azimuthal (globe) projection to the HTML report for geolocation, providing a less distorted view of the global map. - Added 'apple-touch-icon' for improved iPhone home screen support, enabling quick access to reports directly from the home screen. - Added 'aria-*' attributes to HTML report for better accessibility, ensuring that the report is more inclusive for screen readers and other assistive technologies. - Added 'theme-color' '' tag to the HTML report for better integration with mobile devices, allowing the browser's address bar to match the report's theme color. - Added additional validation checks to ensure the existence of file paths provided in CLI options, preventing errors. - Added WebSocket authentication to support both local-generated JSON Web Tokens (JWT) and external verification methods. This enhancement enables easy integration with external authentication systems while ensuring CSRF protection for token refresh requests. - Changed WebSocket server to avoid swapping bytes on big-endian platforms, fixing compatibility issues on AIX systems. - Fixed the issue where zooming/panning the map would unexpectedly skip or jump back, providing a smoother user experience. - Fixed the issue where the same mime types were displayed as duplicates due to different casing by normalizing mime types before adding them to the storage, ensuring consistent reporting. - Replaced div elements with more semantic HTML elements like
,
, and
, improving the structure and accessibility of the report. - Updated the list of supported browsers and operating systems to ensure more accurate tracking and reporting. - Updated the method of parsing the browser list for bots/crawlers, enabling the capture of previously difficult-to-parse bots, allowing for more precise targeting and better analytics. Changes to GoAccess 1.9.3 - Friday, May 31, 2024 - Added additional common bots to the list. - Added Address Sanitizer via '--enable-asan' to the configure options for debugging purposes. - Fixed inability to parse JSON keys containing dots. - Fixed out-of-bounds access for invalid HTTP status codes. - Fixed out-of-bounds access when parsing a log in serial processing mode. - Fixed regression introduced in 8f570c, which caused duplicate counts upon restoring from disk via '--restore'. Changes to GoAccess 1.9.2 - Friday, April 12, 2024 - Added World Map to the Geo Location panel on the HTML report. - Added additional non-official/standard HTTP status codes such as Caddy's 0 HTTP status among others. - Added support for '%z' on strptime for non-glibc systems, such as musl libc in Alpine Linux (Docker container), enabling the use of '--tz' - Changed the '--hide/ignore-referrer' options to filter by hostname directly without the use of wildcards, e.g., '--ignore-referrer=wiki.google.com'. - Fixed inability to parse duplicate specifiers during log format parsing. - Fixed regression which previously hindered the ability to modify log, date, and time formats within the TUI dialog. i.e., '# goaccess access.log -c'. - Replaced 'remote_ip' with 'client_ip' for Caddy's JSON format, allowing the use of trusted proxies. - Updated Caddy JSON example log format to handle headers correctly. - Updated Swedish i18n. Changes to GoAccess 1.9.1 - Tuesday, February 05, 2024 - Added support for macOS to the OS detection. - Fixed C99 mode issue with initial declarations [CentOS7]. - Fixed minor typographical, orthographic, and grammatical errors in the German translation. - Fixed a regression issue wherein parsing would halt at the first empty log file. @ text @$NetBSD$ --- src/wsauth.c.orig 2026-10-16 11:33:37.615001854 +0000 +++ src/wsauth.c @@@@ -141,7 +141,7 @@@@ generate_ws_auth_secret (void) { static char * create_jwt_payload (const char *sub, long iat, long exp) { char *payload = NULL; - char hostname[HOST_NAME_MAX + 1] = { 0 }; + char hostname[_POSIX_HOST_NAME_MAX + 1] = { 0 }; if (gethostname (hostname, sizeof (hostname)) != 0) { perror ("gethostname"); @@@@ -438,7 +438,7 @@@@ static int validate_jwt_claims (const char *payload_json, size_t payload_len, time_t *expires_at) { json_stream json; JWTClaims claims = { 0 }; - char hostname[HOST_NAME_MAX + 1] = { 0 }; + char hostname[_POSIX_HOST_NAME_MAX + 1] = { 0 }; time_t now = 0; int parsed = 0, verify_only = 0; @