Codebase list goaccess / fb060b30-f157-4e10-865c-9bb70d416d22/main ChangeLog
fb060b30-f157-4e10-865c-9bb70d416d22/main

Tree @fb060b30-f157-4e10-865c-9bb70d416d22/main (Download .tar.gz)

ChangeLog @fb060b30-f157-4e10-865c-9bb70d416d22/mainraw · history · blame

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
Changes to GoAccess 1.6.5 - Monday, October 31, 2022

  - Updated Dockerfile build stage to use alpine:3.
  - Updated deb build to use the right libncursesw6 dependency.

Changes to GoAccess 1.6.4 - Friday, September 30, 2022

  - Added Korean translation (i18n).
  - Added the ability to use filenames as virtualhosts using
    '--fname-as-vhost=<regex>'.
  - Enabled clawlers/bots under the OSs panel instead of being shown as
    'Unknown'.
  - Updated the format on the command-line help output.

Changes to GoAccess 1.6.3 - Thursday, August 31, 2022

  - Enabled DNS thread when resolving a host and outputting real-time HTML.
    This helps avoid stalling the WS server on busy connections.
  - Fixed issue where it would not properly parse an XFF if the '%h' specifier
    was already set.
  - Fixed possible XSS issues when using '--html-custom-css' and
    '--html-custom-js' by allowing valid filenames.

Changes to GoAccess 1.6.2 - Thursday, July 14, 2022

  - Added `Android 12` to the list of OSs.
  - Added `macOS 12 Ventura` to the list of OSs.
  - Fixed implicit declaration build issue due to `timegm(3)` on `BSDs` and `macOS`.
  - Fixed issue where timezone conversion would be performed twice on a given
    date.

Changes to GoAccess 1.6.1 - Thursday, June 30, 2022

  - Added a `--ping-interval=<secs>` in an attempt to keep the WebSocket
    connection opened.
  - Added support for timezone conversion via `--datetime-format=<format>` and
    `--tz=<timezone>`.
  - Added the ability to reconnect to the WebSocket server after 1 sec with
    exponential backoff (x20).
  - Fixed issue where an invalid client connection would stall data out to
    clients via the WebSocket server.
  - Fixed an issue where real-time data would be parsed multiple times under `Cygwin`.

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.
  - Updated Chinese translation (i18n).
  - Updated GeoIP module so it defaults to native language name (i18n) or
    fall-back to English.
  - Updated Russian translation (i18n).
  - Updated Ukrainian translation (i18n).

Changes to GoAccess 1.5.6 - Wednesday, March 30, 2022

  - Added `--anonymize-level=<1|2|3>` option to specify IP anonymization level.
  - Added minute specificity to the Visitors panel via `--date-spec=min`.
  - Added the ability to toggle on/off panels on the HTML report.
  - Changed stderr to stdout on non-error output when exiting goaccess.

Changes to GoAccess 1.5.5 - Monday, January 31, 2022

  - Added mechanism to automatically parse additional bots.
  - Changed area chart interpolation to 'monotone'. This should avoid the issue
    where the interpolated curve has a bend into the negative space.
  - Changed build to use debugging symbols even for release builds.
  - Changed order on which we verify bots to be the first thing we check. This
    adds a slight improvement on parsing time.
  - Ensure we initialize DNS resolver conditions and mutexes before they're used.
  - Fixed possible buffer over-read for cases where a '\0' could be reached
    early when parsing a log line.
  - Fixed possible data race on UI spinner thread.
  - Fixed regression where a lot of robots were not detected by GoAccess.

Changes to GoAccess 1.5.4 - Saturday, December 25, 2021

  - Added AWS ALB to the predefined logs format list --log-format=AWSALB.
  - Ensure we lock our pipe/websocket writer before broadcasting message.
  - Ensure we require a valid host token even when we're not validating the IP.
  - Ensure we simply update the TUI once after tailing multiple files.
  - Ensure we simply update the UI once after tailing multiple files.
  - Fixed buffer overflow when checking if an HTTP code was a 404 on an empty
    status code.
  - Optimized terminal and HTML UI output when tailing multiple files.
  - Updated DB PATH error message to be more descriptive.

Changes to GoAccess 1.5.3 - Thursday, November 25, 2021

  - Added additional crawlers to the default list.
  - Added Italian translation (i18n).
  - Added 'macOS 12' to the list of OS.
  - Fixed buffer overflow caused by an excessive number of invalid requests
    with multiple logs.
  - Fixed visualization issue on the HTML report for panels with disabled
    chart.

Changes to GoAccess 1.5.2 - Tuesday, September 28, 2021

  - Added .avi to the list of static requests/extensions.
  - Changed label from 'Init. Proc. Time' to 'Log Parsing Time'.
  - Fixed issue where lengthy static-file extension wouldn't account certain
    valid requests.
  - Fixed possible buffer underflow when checking static-file extension.
  - Fixed segfault when attempting to parse an invalid JSON log while using a
    JSON log format.
  - Fixed segfault when ignoring a status code and processing a line > '4096'
    chars.

Changes to GoAccess 1.5.1 - Wednesday, June 30, 2021

  - Changed official deb repo so it now builds '--with-getline' in order to
    support request lines longer than 4096.
  - Ensure there's no tail delay if the log file hasn't changed.
  - Fixed data race when writing to a self-pipe and attempting to stop the WS server.
  - Fixed inability to close expanded panel when pressing 'q' on TUI.
  - Fixed possible data race during parsing spinner label assignment.
  - Increased the maximum number of files to monitor from '512' to '3072'.

Changes to GoAccess 1.5 - Wednesday, May 26, 2021

  - Added a Docker container based isolated build environment (Debian).
  - Added Dark Mode detection to the HTML report.
  - Added the ability for the WebSocket server to bind to a Unix-domain socket.
  - Added the ability to parse IPs enclosed within brackets (e.g., IPv6).
  - Changed categorization of requests containing 'CFNetwork' to 'iOS' when
    applicable.
  - Changed command line option from '--hide-referer' to '--hide-referrer'.
  - Changed command line option from '--ignore-referer' to '--ignore-referrer'.
  - Fixed a potential division by zero.
  - Fixed inablity to parse IPv6 when using a 'CADDY' log format.
  - Fixed issue where a 'BSD' OS could be displayed as Linux with certain
    user-agents.
  - Fixed memory leak when a JSON value contained an empty string (e.g.,
    JSON/CADDY format).
  - Fixed possible buffer overflow on a WS packet coming from the browser.
  - Refactored a substancial part of the storage codebase for upcoming
    filtering/search capabilities (issue #117).
  - Refactored DB storage to minimize memory consumption up to '35%'.
  - Updated default 'AWS Elastic Load Balancing' log format.
  - Updated German translation.
  - Updated page size to 24 on the HTML report.
  - Updated UNIX OS catergories.

Changes to GoAccess 1.4.6 - Sunday, February 28, 2021

  - Added additional feed reader clients.
  - Added additional browsers and bots to the main list.
  - Added command line option '--unknowns-log' to log unknown browsers and
    OSs.
  - Added 'Referer' to the pre-defined 'Caddy JSON' log format.
  - Added support for real-time piping as non-root user.
  - Added the ability to Handle case when IPv4 is encoded as IPv6 in
    GeoIP1/legacy.
  - Ensure we capture linux (lowercase) when extracting an OS.
  - Fixed a regression in parsing Google Cloud Storage or possibly other
    non-JSON formats.
  - Fixed inability to parse escaped formats.
  - Fixed issue when using '%s' with 'strptime(3)' under musl libc. This
    addresses mostly the Docker image.
  - Fixed possible buffer over-read for certain log-format patterns.
  - Fixed segfault when attempting to process a malformed JSON string.
  - Fixed segfault when setting an empty log-format from the TUI dialog.
  - Fixed sorting on hits and visitors when larger than INT_MAX.
  - Updated CloudFront pre-defined log-format to reflect the latest fields.
  - Updated 'Dockerfile' image to use 'alpine:3.13' instead of edge due to
    compatibility issue with the GNU coreutils.

Changes to GoAccess 1.4.5 - Tuesday, January 26, 2021

  - Fixed build issue due to initial declarations only allowed in C99 mode
    (e.g., CentOS7).

Changes to GoAccess 1.4.4 - Monday, January 25, 2021

  - Added 'Caddy' to the list of pre-defined log formats.
  - Added command line option '--no-strict-status' to disable status validation.
  - Added native support to parse JSON logs.
  - Added the ability to process timestamps in milliseconds using '%*'.
  - Ensure TUI/CSV/HTML reports are able to output 'uint64_t' data.
  - Ensure we allow UI render if the rate at which data is being read is
    greater than '8192' req/s.
  - Ensure we don't re-render Term/HTML output if no data was read/piped.
  - Fixed build configure to work on NetBSD.
  - Fixed issue where it would send data via socket each second when managed
    by systemd.
  - Fixed issue where parser was unable to parse syslog date with padding.
  - Fixed issue where some items under browsers.list were not tab separated.
  - Fixed issue where the format parser was unable to properly parse logs
    delimited by a pipe.
  - Fixed issue where T.X. Amount metrics were not shown when data was piped.
  - Fixed issue where XFF parser could swallow an additional field.
  - Fixed memory leak when using '%x' as date/time specifier.
  - Replaced select(2) with poll(2) as it is more efficient and a lot faster
    than select(2).
  - Updated Swedish i18n.

Changes to GoAccess 1.4.3 - Friday, December 04, 2020

  - Added the ability to set how often goaccess will parse data and output to
    the HTML report via '--html-refresh=<secs>'.
  - Changed how TLS is parsed so the Cypher uses a separate specifier.
    It now uses '%K' for the TLS version and '%k' for the Cypher.
  - Fixed issue where real-time output would double count a rotated log. This
    was due to the change of inode upon rotating the log.
  - Updated man page to reflect proper way of 'tail -f' a remote access log.

Changes to GoAccess 1.4.2 - Monday, November 16, 2020

  - Added the ability to show 'Encryption Settings' such as 'TLSv1.2' and
    Cipher Suites on its own panel.
  - Added the ability to show 'MIME Types' such as 'application/javascript' on
    its own panel.
  - Changed Debian build to use mmdb instead of libgeoip (legacy).
  - Ensure the HTML report defaults to widescreen if viewport is larger than
    '2560px'.
  - Fixed inability to properly process multiple logs in real-time.
  - Fixed issue where named PIPEs were not properly seed upon generating
    filename.
  - Fixed issue where served time metrics were not shown when data was piped.
  - Removed unnecessary padding from SVG charts. Improves readability on mobile.

Changes to GoAccess 1.4.1 - Monday, November 09, 2020

  - Added addtional browsers and bots to the main list.
  - Added 'Android 11' to the list of OSs.
  - Added 'macOS 11.0 Big Sur' to the list of OSs.
  - Added 'average' to each panel overall metrics.
  - Added '.dmg', '.xz', and '.zst' to the static list.
  - Added extra check to ensure restoring from disk verifies the content of the
    log against previous runs.
  - Added Russian translation (i18n).
  - Added Ukrainian translation (i18n).
  - Added support for HTTP status code '308'.
  - Added the ability for 'get_home ()' to return NULL on error, instead of
    terminating the process. Great if using through systemd.
  - Added the ability to read lowercase predefined log formats. For instance,
    '--log-format=COMBINED' or '--log-format=combined'.
  - Changed how FIFOs are created and avoid using predictable filenames under
    '/tmp'.
  - Changed '--ignore-referer' to use whole referrer instead of referring site.
  - Ensure Cache Status can be parsed without sensitivity to case.
  - Ensure restored data enforces '--keep-last' if used by truncating
    accordingly.
  - Fixed a few memory leaks when restoring from disk.
  - Fixed blank time distribution panel when using timestamps.
  - Fixed build issue due to lack of 'mmap' on 'Win'/'Cygwin'/'MinGW'.
  - Fixed crash in mouse enabled mode.
  - Fixed double free on data restore.
  - Fixed inability to keep processing a log when using '--keep-last'.
  - Fixed inability to properly parse truncated logs.
  - Fixed inability to properly count certain requests when restoring from
    disk.
  - Fixed issue where it would not parse subsequent requests coming from stdin (tail).
  - Fixed issue where log truncation could prevent accurate number counting.
  - Fixed issue where parsed date range was not rendered with '--date-spec'.
  - Fixed issue where parser would stop regardless of a valid '--num-test' value.
  - Fixed issue where restoring from disk would increment 'MAX.TS'.
  - Fixed possible incremental issue when log rotation occurs.
  - Fixed possible XSS when getting real-time data into the HTML report.
  - Fixed potential memory leak when failing to get root node.
  - Fixed real-time hits count issue for certain scenarios.
  - Fixed segfault in 'Docker' due to a bad allocation when generating FIFOs.
  - Fixed 'Unknown' Operating Systems with 'W3C' format.
  - Removed unnecessary include from parser.c so it builds in macOS.
  - Updated each panel overall UI to be more streamlined.
  - Updated French translation.
  - Updated German translation.
  - Updated Spanish translation.
  - Updated sigsegv handler.

Changes to GoAccess 1.4 - Monday, May 18, 2020

  - Added a caching storage mechanism to improve parsing raw data and data
    rendering.
  - Added a mechanism to avoid counting duplicate data when restoring persisted
    data from disk.
  - Added additional option to the HTML report to set a maximum number of items
    per page to 3.
  - Added a list of podcast-related user agents under '%sysconfdir%'.
  - Added 'Android 10' to the list of Android codenames.
  - Added a 'widescreen' layout to the HTML report (e.g., 4K TV/KPI Dashboard).
  - Added 'Beaker', 'Brave', and 'Firefox Focus' to the list of browsers
  - Added command line option --user-name=username to avoid running GoAccess as
    root when outputting a real-time report.
  - Added 'DuckDuckGo' and 'MSNBot' browsers to the browsers.list.
  - Added 'facebookexternalhit' to the default crawler list.
  - Added German translation (DE).
  - Added Kubernetes Nginx Ingress Log Format to the default config file.
  - Added 'macOS Catalina' to the list of OSX codenames.
  - Added minor CSS updates to HTML report.
  - Added missing header '<sys/socket.h>' to fix FreeBSD build
  - Added new 'Edg' token to the list of browsers.
  - Added '--no-ip-validation' command line to disable client IP validation
  - Added '--persist' and '--restore' options to persist to disk and restore a
    dump from disk.
  - Added Portuguese translation (pt-BR)
  - Added Swedish translation (SV)
  - Added the ability to parse server cache status and a new panel to display
    those metrics.
  - Changed accumulated time to work by default on '--persist' and '--restore'.
  - Changed back how the hits and visitors percentage is calculated to be more
    intuitive.
  - Changed Geo Location panel display default to show only if database file is
    provided ('LIBMAXMINDDB').
  - Changed initial processing time from secs to HH:MM:SS in HTML output.
  - Changed '--max-items' for the static HTML report to allow no limit on
    output entries.
  - Changed required 'gettext' version to 0.19
  - Changed to ignore 'SIGPIPE' with 'SIG_IGN'
  - Changed version to 10.15 for 'macOS Catalina'.
  - Ensure proper escaping on default AWSELB log format.
  - Ensure valid requests counter is not affected on duplicate entries when
    restoring data.
  - Fixed issue preventing Ctrl-C (SIGINT) for the curses interface to stop the
    program.
  - Fixed issue where HTML report wouldn't update the tables when changing per
    page option.
  - Fixed issue where it wouldn't find either the user's or global config file.
  - Fixed issue where changing the number of items per page in the HTML report
    would not automatically refresh the tables.
  - Fixed issue where last updated label was not updated in real-time.
  - Fixed issue where overall date range wasn't showing the right start/end parse
    dates.
  - Fixed issue where tailing a file could potentially re-parse part of the log.
  - Fixed memory leak when fetching country/continent while using 'LIBMAXMINDDB'.
  - Fixed several '-Wcast-qual' warnings.
  - Fixed unwanted added characters to the HTML output.
  - Fixed websocket issue returning a 400 due to request header size.
  - Increased 'MAX_LINE_CONF' so a JSON string can be properly parsed from the
    config file.
  - Removed deprecated option '--geoip-city-data' from config file.
  - Removed unnecessary dependency from snapcraft.yaml.
  - Removed Vagrantfile per #1410
  - Removed some old browsers from the default curated list.
  - Replaced TokyoCabinet storage for a non-dependency in-memory persistent
    storage.
  - Updated Dockerfile.

Changes to GoAccess 1.3 - Friday, November 23, 2018

  - Added ability to store accumulated processing time into DB_GEN_STATS tcb
    file via '--accumulated-time' command line option.
  - Added additional Apache status codes to the list.
  - Added a few feed readers to the list.
  - Added 'Android 8 Oreo' to the list of OSs.
  - Added 'Android Pie 9' to the list of OSs.
  - Added --anonymize-ip command line option to anonymize ip addresses.
  - Added --browsers-file command line option to load a list of crawlers from a
    text file.
  - Added byte unit (PiB) to C formatter and refactored code.
  - Added byte unit (PiB) to JS formatter.
  - Added Chinese translation (i18n).
  - Added French translation (i18n).
  - Added '%h' date specifier to the allowed date character specifiers.
  - Added "HeadlessChrome" to the list of browsers.
  - Added --hide-referer command line option to hide referers from report.
  - Added HTTP status code 429 (TOO MANY REQUESTS).
  - Added IGNORE_LEVEL_PANEL and IGNORE_LEVEL_REQ definitions.
  - Added Japanese translation (i18n).
  - Added macOS 10.14 Mojave to the list of OSs.
  - Added "Mastodon" user-agent to the list of crawlers/unix-like.
  - Added new fontawesome icons and use angle arrows in HTML paging.
  - Added new purple theme to HTML report and default to it.
  - Added --no-parsing-spinner command line option to switch off parsing
    spinner.
  - Added .ogv and ogg static file extension (ogg video, Ogg Vorbis audio).
  - Added OS X version numbers when outputting with --real-os.
  - Added parsing mechanism in an attempt capture more bots and to include
    unspecified bots/crawlers.
  - Added --pidfile command line option to the default config file.
  - Added Spanish translation (i18n).
  - Added SSL support for Docker goaccess build.
  - Added support to the WebSocket server for openssl-1.1*.
  - Added the ability to show/hide a chart per panel in the HTML report.
  - Added transparency to the navigation bar of the HTML report.
  - Added "WhatsApp" user-agent to the list of crawlers.
  - Changed default db folder so it adds the process id (PID). --db-path is
    required now when using --load-from-disk.
  - Changed Dockerfile to build from the current source.
  - Changed 'hits' to be right-aligned on TUI.
  - Changed to use faster slide animations on HTML report.
  - Changed wording from 'Bandwidth' to the proper term 'Tx. Amount'.
  - Ensure database filenames used by btree are less predictable.
  - Ensure HTML templates, CSS and JS files are minified when outputting
    report.
  - Ensure key phrases from Google are added even when https is used.
  - Ensure live report updates data & charts if tab/document has focus.
  - Ensure multiple 'Yandex' crawlers are properly parsed.
  - Ensure Safari has priority over most crawlers except the ones that are
    known to have it.
  - Ensure the request protocol on its own is properly parsed.
  - Ensure the right number of tests are performed against the given log.
  - Ensure user configuration is parsed first when available.
  - Ensure wss:// is used when connecting via HTTPS.
  - Ensure XFF parser takes into account escaped braces.
  - Fixed a regression where fifo-in/out would fail with ENXIO.
  - Fixed a regression where it would return EXIT_FAILURE on an empty log.
  - Fixed a (ssh) pipeline problem with fgetline()/fgets() when there is a race
    for data on stdin.
  - Fixed broken X-Forwarded-For (XFF) %~ specifier in certain parsing cases.
  - Fixed conf.filenames duplication problem if logs are via pipe.
  - Fixed float percent value on JSON/HTML output for locales using decimal comma.
  - Fixed issue where it was not possible to establish a Web Socket connection
    when attempting to parse and extract HTTP method.
  - Fixed issue where log formats with pipe delimiter were not propely parsed.
  - Fixed memory leak after config file path has been set (housekeeping).
  - Fixed memory leak when adding host to holder introduced in c052d1ea.
  - Fixed possible memory leak when hiding specific referrers.
  - Fixed several JS jshint warnings.
  - Fixed sudo installs on TravisCI.
  - Fixed UNDEFINED time range in HTML report when VISITORS panel was ignored.
  - Fixed unnecessary closing span tags from template.
  - Fixed use-after-free when two color items were found on color_list.

Changes to GoAccess 1.2 - Tuesday, March 07, 2017

  - Added a Dockerfile.
  - Added Amazon S3 bucket name as a VirtualHost (server block).
  - Added a replacement for GNU getline() to dynamically expand line buffer
    while maintaining real-time output.
  - Added --daemonize command line option to run GoAccess as daemon.
  - Added several improvements to the HTML report on small-screen devices.
  - Added option to the HTML report to auto-hide tables on small-screen
    devices.
  - Added --process-and-exit command line option to parse log and exit.
  - Added several feed readers to the list of browsers.
  - Added "-" single dash per convention to read from the standard input.
  - Added support for MaxMind GeoIP2.
  - Added the ability to read and follow from a pipe such as
    "tail -f access.log | goaccess -"
  - Added the ability to specify multiple logs as input sources, e.g.:
    "goaccess access.log access.log.1" while maintaining real-time output.
  - Added time unit (seconds) to the processed time label in the HTML/terminal
    output.
  - Added visitors' percent column to the terminal dashboard.
  - Changed D3 charts to dim Y-axis on mouseover.
  - Changed D3 charts to reflect HTML column sort.
  - Changed D3 charts to render only if within the viewport. This improves the
    overall real-time HTML performance.
  - Changed HTML report tables to render only if within the viewport.
  - Changed percentage calculation to be based on the total within each panel.
  - Ensure start/end dates are updated real-time in the HTML output.
  - Ensure "window.location.hostname" is used as the default WS server host.
    In most cases, this should avoid the need for specifying "--ws-url=host".
    Simply using "--real-time-html" should suffice.
  - Fixed issue on HTML report to avoid outputting scientific notation for all
    byte sizes.
  - Fixed integer overflow when calculating bar graph length on terminal
    output.
  - Fixed issue where global config file would override command line arguments.
  - Fixed issue where it wouldn't allow loading from disk without specifying a
    file when executed from the cron.
  - Fixed issue where parser couldn't read some X-Forwarded-For (XFF) formats.
    Note that this breaks compatibility with the original implementation of
    parsing XFF, but at the same time it gives much more flexibility on different
    formats.
  - Fixed issue where specifying fifo-in/out wouldn't allow HTML real-time
    output.
  - Fixed issue where the wrong number of parsed lines upon erroring out was
    displayed.
  - Fixed issue where the WebSocket server prevented to establish a connection
    with a client due to invalid UTF-8 sequences.
  - Fixed percent issue when calculating visitors field.
  - Updated the list of crawlers.

Changes to GoAccess 1.1.1 - Wednesday, November 23, 2016

  - Added data metric's "unique" count on each panel to the JSON/HTML outputs.
  - Changed D3 bar charts to use .rangeBands and avoid extra outer padding.
  - Fixed mouseover offset position issue on D3 bar charts.
  - Fixed possible heap overflow when an invalid status code was parsed and
    processed. This also ensures that only valid HTTP status codes are parsed
    >=100 or <= 599.
  - Fixed sluggish D3 chart re-rendering by changing how x-axis labels are
    displayed in the HTML report.

Changes to GoAccess 1.1 - Tuesday, November 08, 2016

  - Added a new layout to the HTML report and additional settings and changes.
  - Added --crawlers-only command line option to display crawlers/bots only.
  - Added --fifo-in and --fifo-out command line options to set websocket FIFO
    reader/writer.
  - Added --no-html-last-updated command line option.
  - Added --num-tests command line option.
  - Added --html-prefs command line option to to set default preferences for
    the HTML report.
  - Added "Amazon S3" Log Format to the list of predefined options.
  - Added "Android 7.1 Nougat" to the list of OSs.
  - Added "Android Marshmallow 6.0.1" to the list of OSs.
  - Added "Android Nougat 7.0" to the list of OSs.
  - Added "Feed Wrangler" to the list of feeds.
  - Added "Go-http-client" to the list of browsers.
  - Added "MicroMessenger" (WeChat) to the list of browsers.
  - Added "SemrushBot" to the list of crawlers.
  - Added "Remote User" panel to capture HTTP authentication requests. Use %e
    within the log-format variable to enable this panel.
  - Added tebibyte unit to the byte to string function converter.
  - Added the ability to parse reverse proxy logs that have multiple IPs. This
    adds the ability to parse the "X-Forwarded-For" field in a reverse proxy
    setup.
  - Added the ability to show which token didn't match log/date/time pattern.
    This also ensures that in the absence of data, its output is not treated as
    error but instead it produces an empty report.
  - Added the ability to specify a WebSocket protocol (ws|wss) through
    --ws-url.
  - Added the request query string to the W3C format.
  - Added TLS/SSL support to the HTML real-time report.
  - Changed browser classification for Google Cloud Clients.
  - Changed how "Darwin" OS was reported to display AppName instead.
  - Changed default W3C log format to use the URL path instead of full request.
  - Changed HTML default number of items on each table to 7.
  - Changed request parser to allow empty query strings.
  - Changed default HTML output theme to darkBlue.
  - Ensure every version of iOS is broken down under the OS panel.
  - Ensure latest JSON data is fast-forwarded when connection is opened.
    GoAccess now sends the latest JSON data to the client as soon as the
    WebSocket connection is opened.
  - Ensure localStorage is supported and enabled in the HTML report
  - Ensure unknown coutries/continents are listed.
  - Fixed D3 chart width overflow issue on Edge.
  - Fixed integer to string key conversion for unique visitors. This fixes the
    issue where resulting keys would collide with existing keys and thus not
    keeping the right visitors count on certain panels.
  - Fixed memory leak when unable to URL decode %q specifier.
  - Fixed memory leak when unable to URL decode %U specifier.
  - Fixed month name abbreviation on app.js.
  - Fixed percentage integer overflow with large numbers on 32bits platforms.
  - Fixed percent calculation due to integer division rounding to zero.
  - Fixed possible code injection when outputting an HTML report.
  - Fixed segfault when using options -H or -M without an argument.
  - Removed timestamp from the HTML report title tag.

Changes to GoAccess 1.0.2 - Tuesday, July 05, 2016

  - Added minor changes to the HTML report stylesheet.
  - Added the ability to specify the WebSocket port within --ws-url.
  - Added the proper byte swap functions used by Sun Solaris.
  - Added the proper default --http-method/protocol values on the config file.
  - Changed bar transition to scale delay dynamically to the length of the
    dataset.
  - Fixed build issue on platforms lacking of open_memstream() by refactoring
    the JSON module to use its own memory buffer.
  - Fixed issue where the server wouldn't send cached buffer to slow clients.
  - Fixed OS X build check of ncursesw.
  - Implemented a throttle mechanism for slow clients to avoid caching too much
    data on the server-side.
  - Removed flickering on D3 line and bar chart redraw.

Changes to GoAccess 1.0.1 - Friday, June 17, 2016

  - Added Android version number along with the codename when using --real-os,
    e.g., "Lollipop 5.1".
  - Added some missing headers and function checks to configure.ac.
  - Fixed a regression where it wouldn't allow abbreviated date and time
    formats such as %F or %T.
  - Fixed build issues on systems running GLIBC older than 2.9, such as RHEL <= 5.
  - Fixed issue where it wouldn't send the whole buffer to a socket causing the
    real-time-html WebSocket server to progressively consume a lot more memory.
  - Fixed memory leak when using getline and follow mode enabled.
  - Fixed some buffer initialization issues on read_line() and
    perform_tail_follow().
  - Fixed uint types in sha1 files.

Changes to GoAccess 1.0 - Thursday, June 09, 2016

  - Added --enable-panel=<PANEL> command line option to display the given
    module.
  - Added --json-pretty-print command line option to output pretty json.
  - Added --log-format=<format> command-line shortcuts for standard log
    formats.
  - Added --origin command line option to match the origin WebSocket header.
  - Added --output=<file.[html|csv|json]> as a shortcut to --output-format.
  - Added a complete real-time functionality to the HTML output.
  - Added an option to set the max number of items to show per panel.
  - Added D3 Visualziations to the HTML dashboard.
  - Added metadata metrics to the each of the panels (JSON output)
  - Added option to specify time distribution specificity.
  - Added the ability to download a JSON file from the HTML report.
  - Added the ability to output multiple formats on a single log parse.
  - Added the ability to set the date specificity in hours.
  - Added the ability to sort all HTML tables on all panels.
  - Added the ability to specify a custom CSS and JS file to the HTML report.
  - Added user-agents to the JSON output per each host.
  - Added "Vivaldi" to the list of browsers.
  - Bootstrapify the HTML dashboard.
  - Changed configure.ac to use LDFLAGS instead of CFLAGS where applicable.
  - Changed default terminal color scheme to 256 Monokai if terminal supports 256 colors.
  - Changed GoAccess license to The MIT License (MIT)
  - Changed the visitors panel to display its dates continuously instead of top.
  - Default to 256 Monokai color scheme if terminal supports 256 colors.
  - Default to display HTTP method/protocol (if applicable).
  - Display the children's Max. T.S. as the parent's top Max. T.S.
  - Ensure the parent's Avg. T.S. displays parent's Cum. T.S. over parent's Hits.
  - Fixed color issue when switching from the color scheme dialog.
  - Fixed cross platform build issue when ncurses is built with and without
    termlib=tinfo.
  - Fixed curses header window issue where it wouldn't clear out on small
    window sizes.
  - Fixed issue where tail mode wouldn't parse full lines using getline().
  - Fixed minor background color issue when using ncurses 6.
  - Fixed possible division by zero when calculating percentage.
  - Fixed singly link list node removal.
  - Fixed still reachable memory leak on GeoIP cleanup (geoip legacy >= 1.4.7).
  - Fixed various Valgrind's still reachable memory leaks.
  - Removed -Wredundant-decls.

Changes to GoAccess 0.9.8 - Monday, February 29, 2016

  - Added a more complete list of static extensions to the config file.
  - Added "Android 6.0 Marshmallow" to the list of OSs.
  - Added --no-tab-scroll command line option to disable scroll through panels
    on TAB.
  - Added the first and last log dates to the overall statistics panel.
  - Ensure GoAccess links correctly against libtinfo.
  - Ensure static content is case-insensitive verified.
  - Fixed bandwidth overflow issue (numbers > 2GB on non-x86_64 arch).
  - Fixed broken HTML layout when html-method/protocol is missing in config file.
  - Refactored parsing and display of available modules/panels.

Changes to GoAccess 0.9.7 - Monday, December 21, 2015

  - Added "Squid native" log format to the config file.
  - Fixed integer overflow when getting total bandwidth using the on-disk
    storage.
  - Fixed issue where a timestamp was stored as date under the visitors panel.
  - Fixed issue where config dialog fields were not cleared out on select.
  - Fixed issue where "Virtual Hosts" menu item wasn't shown in the HTML sidebar.

Changes to GoAccess 0.9.6 - Tuesday, October 27, 2015

  - Added --dcf command line option to view the default config file path.
  - Added --ignore-status the ability to ignore parsing status codes.
  - Added "Darwin" to the list of OSs.
  - Fixed segfault when appending data to a log (follow) without virtualhosts.

Changes to GoAccess 0.9.5 - Thursday, October 22, 2015

  - Added major performance improvements to the default storage when parsing and
    storing data (~%44 less memory, ~37% faster).
  - Added the ability to parse virtual hosts and a new panel to display metrics
    per virtual host.
  - Added the ability to parse HTTP/2 requests.
  - Added the ability to use GNU getline() to parse full line requests.
  - Added the ability to output debug info if a log file is specified, even
    without --enable-debug.
  - Added OS X "El Capitan".
  - Added WebDav HTTP methods and HTTP status from RFC 2518 and  RFC 3253.
  - Fixed detection of some Googlebots.
  - Fixed issue where time served metrics were not shown when loading persisted
    data.
  - Fixed linker error on OSX: ld: library not found for -lrt.
  - Fixed percentage on the HTML output when excluding IPs.
  - Removed GLib dependency and refactored storage functionality. By removing
    this dependency, GoAccess is able to store data in a more efficient manner,
    for instance, it avoids storing integer data as void* (generic typing), thus
    greatly improving memory consumption for integers.

Changes to GoAccess 0.9.4 - Tuesday, September 08, 2015

  - Added --all-static-files command line option to parse static files
    containing a query string.
  - Added --invalid-requests command line option to log invalid requests to a file.
  - Added additional overall metric - total valid requests.
  - Added "%~" specifier to move forward through a log string until a non-space
    char is found.
  - Added the ability to parse native Squid access.log format.
  - Fixed a few issues in the configuration script.
  - Fixed inability to parse color due to a missing POSIX extension.
    "ERR:Invalid bg/fg color pairs"

Changes to GoAccess 0.9.3 - Wednesday, August 26, 2015

  - Added --no-column-names command line option to disable column name metrics.
  - Added a default color palette (Monokai) to the config file.
  - Added AWS Elastic Load Balancing to the list of predefined log/date/time
    formats.
  - Added CloudFlare status codes.
  - Added column headers for every enabled metric on each panel.
  - Added cumulative time served metric.
  - Added "DragonFly" BSD to the list of OSs.
  - Added maximum time served metric (slowest running requests).
  - Added "Slackbot" to the list of crawlers/browsers.
  - Added the ability to parse the query string specifier "%q" from a log file.
  - Added the ability to process logs incrementally.
  - Added the ability to set custom colors on the terminal output.
  - Disabled REFERRERS by default.
  - Ensure bandwidth metric is displayed only if %b specifier is parsed.
  - Fixed issue where the --sort-panel option wouldn't sort certain panels.
  - Fixed several compiler warnings.
  - Set predefined static files when no config file is used.
  - Updated "Windows 10" user agent from 6.4 (wrong) to 10.0.(actual)

Changes to GoAccess 0.9.2 - Monday, July 06, 2015

  - Added ability to fully parse browsers that contain spaces within a token.
  - Added multiple user agents to the list of browsers.
  - Added the ability to handle time served in milliseconds as a decimal number
    `%L`.
  - Added the ability to parse a timestamp in microseconds.
  - Added the ability to parse Google Cloud Storage access logs.
  - Added the ability to set a custom title and header in the HTML report.
  - Added "%x" as timestamp log-format specifier.
  - Ensure agents" hash table is destroyed upon exiting the program.
  - Ensure "Game Systems" are processed correctly.
  - Ensure visitors panel header is updated depending if crawlers are parsed or
    not.
  - Fixed issue where the date value was set as time value  in the config
    dialog.
  - Fixed memory leak in the hits metrics when using the in-memory storage
    (GLib).

Changes to GoAccess 0.9.1 - Tuesday, May 26, 2015

  - Added --hl-header command line option to highlight active panel.
  - Added "Applebot" to the list of web crawlers.
  - Added "Microsoft Edge" to the list of browsers.
  - Added additional Nginx-specific status codes.
  - Ensure dump_struct is used only if using __GLIBC__.
  - Ensure goaccess image has an alt attribute on the HTML output for valid
    HTML5.
  - Ensure the config file path is displayed when something goes wrong (FATAL).
  - Ensure there is a character indicator to see which panel is active.
  - Fixed Cygwin compile issue attempting to use -rdynamic.
  - Fixed issue where a single IP did not get excluded after an IP range.
  - Fixed issue where requests showed up in the wrong view even when
    --no-query-string was used.
  - Fixed issue where some browsers were not recognized or marked as "unknown".
  - Fixed memory leak when excluding an IP range.
  - Fixed overflows on sort comparison functions.
  - Fixed segfault when using on-disk storage and loading persisted data with -a.
  - Removed keyphrases menu item from HTML output.
  - Split iOS devices from Mac OS X.

Changes to GoAccess 0.9 - Thursday, March 19, 2015

  - Added --geoip-database command line option for GeoIP Country/City IPv6.
  - Added "Windows 10 (v6.4)" to the real windows user agents.
  - Added ability to double decode an HTTP referer and agent.
  - Added ability to sort views through the command line on initial load.
  - Added additional data values to the backtrace report.
  - Added additional graph to represent the visitors metric on the HTML output.
  - Added AM_PROG_CC_C_O to configure.ac
  - Added "Android Lollipop" to the list of operating systems.
  - Added "average time served" metric to all panels.
  - Added "bandwidth" metric to all panels.
  - Added command line option to disable summary metrics on the CSV output.
  - Added numeric formatting to the HTML output to improve readability.
  - Added request method specifier to the default W3C log format.
  - Added the ability to ignore parsing and displaying given panel(s).
  - Added the ability to ignore referer sites from being counted. A good case
    scenario is to ignore own domains. i.e., owndomain.tld. This also allows
    ignoring hosts using wildcards. For instance, *.mydomain.tld or www.mydomain.*
    or www?.mydomain.tld
  - Added time/hour distribution module. e.g., 00-23.
  - Added "visitors" metrics to all panels.
  - Changed AC_PREREQ macro version so it builds on old versions of autoconf.
  - Changed GEOIP database load to GEOIP_MEMORY_CACHE for faster lookups.
  - Changed maximum number of choices to display per panel to 366 fron 300.
  - Ensure config file is read from home dir if unable to open it from
    %sysconfdir% path.
  - Fixed array overflows when exceeding MAX_* limits on command line options.
  - Fixed a SEGFAULT where sscanf could not handle special chars within the
    referer.
  - Fixed character encoding on geolocation output (ISO-8859 to UTF8).
  - Fixed issue on wild cards containing "?" at the end of the string.
  - Fixed issue where a "Nothing valid to process" error was triggered when the
    number of invalid hits was equal to the number of valid hits.
  - Fixed issue where outputting to a file left a zero-byte file in pwd.
  - Improved parsing of operating systems.
  - Refactored log parser so it allows with ease the addition of new modules.
    This also attempts to decouple the core functionality from the rendering
    functions. It also gives the flexibility to add children metrics to root
    metrics for any module. e.g., Request A was visited by IP1, IP2, IP3, etc.
  - Restyled HTML output.

Changes to GoAccess 0.8.5 - Sunday, September 14, 2014

  - Fixed SEGFAULT when parsing a malformed request that doesn't have HTTP
    status.

Changes to GoAccess 0.8.4 - Monday, September 08, 2014

  - Added --444-as-404 command line option to handle nginx non-standard status
    code 444 as 404.
  - Added --4xx-to-unique-count command line option to count client errors (4xx)
    to the unique visitors count.  Now by default it omits client errors (4xx)
    from being added to the unique visitors count as they are probably not welcomed
    visitors. 4xx errors are always counted in panels other than visitors, OS &
    browsers.
  - Added and updated operating systems, and browsers.
  - Added excluded IP hits count to the general statistics panel on all reports.
  - Added HTTP nonstandard code "444" to the status code list.
  - Fixed compile error due to missing include <sys/types.h> for type
    off_t (gcc 4.1).
  - Fixed issue when excluding IPv4/v6 ranges.
  - Removed request status field restriction. This allows parsing logs that
    contain only a valid date, IPv4/6 and host.

Changes to GoAccess 0.8.3 - Monday, July 28, 2014

  - Fixed SEGFAULT when parsing a CLF log format and using --ignore-crawlers.
  - Fixed parsing conflict between some Opera browsers and Chrome.
  - Fixed parsing of several feed readers that are Firefox/Safari-based.
  - Fixed Steam detection.
  - Added Huawei to the browser's list and removed it from the OS's list.

Changes to GoAccess 0.8.2 - Monday, July 20, 2014

  - Added --version command line option.
  - Added --ignore-crawlers command line option to ignore crawlers.
  - Added ability to parse dates containing whitespaces in between,
    e.g., "Jul 15 20:13:59" (syslog format).
  - Added a variety of browsers, game systems, feed readers, and podcasts.
  - Added missing up/down arrows to the help section.
  - Added the ability to ignore multiple IPv4/v6 and IP ranges.
  - Added the PATCH method according to RFC 5789.
  - Fixed GeoLocation percent issue for the JSON, CSV and HTML outputs.
  - Fixed memory leak when excluding one or multiple IPs.

Changes to GoAccess 0.8.1 - Monday, June 16, 2014

  - Added ability to add/remove static files by extension through the config
    file.
  - Added ability to print backtrace on segmentation fault.
  - Escaped JSON strings correctly according to [RFC4627].
  - Fixed encoding issue when extracting keyphrases for some HTTP referers.
  - Fixed issue where HTML bar graphs were not shown due to numeric locale.
  - Fixed issue with URIs containing "\r?\n" thus breaking the corresponding
    output.
  - Make sure request string is URL decoded on all outputs.

Changes to GoAccess 0.8 - Tuesday, May 20, 2014

  - Added APT-HTTP to the list of browsers.
  - Added data persistence and ability to load data from disk.
  - Added IE11 to the list of browsers.
  - Added IEMobile to the list of browsers.
  - Added multiple command line options.
  - Added Nagios check_http to the list of browsers.
  - Added parsing progress metrics - total requests / requests per second.
  - Added the ability to parse a GeoLiteCity.dat to get the city given an IPv4.
  - Changed the way the configuration file is parsed. This will parse all
    configuration options under ~/.goaccessrc or the specified config file and
    will feed getopt_long with the extracted key/value pairs. This also allows the
    ability to have comments on the config file which won't be overwritten.
  - Ensure autoconf determines the location of ncurses headers.
  - Fixed issue where geo_location_data was NULL.
  - Fixed issue where GoAccess did not run without a tty allocated to it.
  - Fixed potential memory leak on --log-file realpath().
  - Fixed Solaris build errors.
  - Implemented an on-memory hash database using Tokyo Cabinet. This
    implementation allows GoAccess not to rely on GLib's hash table if one is
    needed.
  - Implemented large file support using an on-disk B+ Tree database. This
    implementation allows GoAccess not to hold everything in memory but instead
    it uses an on-disk B+ Tree database.
  - Trimmed leading and trailing whitespaces from keyphrases module.

Changes to GoAccess 0.7.1 - Monday, February 17, 2014

  - Added --no-color command line option to turn off color output.
  - Added --real-os command line option to get real OS names, e.g.,
    "Android, Windows, Mac".
  - Added ability to log debug messages to a file.
  - Added ability to parse tab-separated log format strings.
  - Added ability to support terminals without colors.
  - Added command line option to append HTTP method to request.
  - Added command line option to append HTTP protocol to request.
  - Added long options to command-line.
  - Added missing "Win 9x 4.90" (Windows Me) user-agent.
  - Added missing Windows RT user-agent.
  - Ensure mouse click does not reset expanded module if it is the same.
  - Fixed Amazon CloudFront tab-separated log format.
  - Fixed "FreeBSD style" ncursesw built into system.
  - Fixed HTML report issue where data cell would not wrap.
  - Fixed issue when isatty() could not find a valid file descriptor.
  - Fixed SymbianOS user-agent and retrieve its version.

Changes to GoAccess 0.7 - Monday, December 15, 2013

  - Added a command line option to ignore request query strings.
  - Added additional compiler flags & fixed several warnings.
  - Added additional static file extensions.
  - Added country per IP to HOSTS module (HTML & JSON).
  - Added DEBUG mode to Makefile & -O2 to default release.
  - Added GEOLOCATION report to all outputs - includes continents/countries.
  - Added IP resolver to HTML and JSON output.
  - Added module numbers to each module header.
  - Added the ability to output JSON and CSV.
  - Added Windows NT 6.3 (Win 8.1) to the list.
  - Fixed buffer overflow issue with realpath.
  - New HTML report - HTML5 + CSS styles.
  - Properly split request line into the three request modules.

Changes to GoAccess 0.6.1 - Monday, October 07, 2013

  - Added active module indication by name.
  - Added additional crawlers to the list.
  - Added custom configuration file option.
  - Added human-readable string when unable to open log.
  - Added missing include when compiling on OSX 10.6.
  - Added optional mouse support to the main dashboard.
  - Added the ability to select active module by number (keys).
  - Added the rest of HTTP methods according to RFC2616.
  - Changed referring site sscanf format to process multiple URLs.
  - Changed the default color scheme to monochrome.
  - Fixed issue where %T was not processing floating-point numbers.
  - Fixed percentage issue for browsers and os modules.
  - Fixed SIGSEGV when reading from stdin to stdout.
  - Improved performance when expanding a module.
  - Reduced memory consumption by decreasing number of dns threads.
  - Removed ^UP/^DOWN due to a key mapping conflict.

Changes to GoAccess 0.6 - Monday, July 15, 2013

  - Added a bunch of minor fixes and changes.
  - Added and updated list of browsers and operating systems.
  - Added a predefined log format/date for the Amazon CloudFront (Download
    Distribution).
  - Added parsing/processing indicators.
  - Added the ability to independently sort each module.
  - Added the ability to search across the whole dashboard with the option to
    use regular expressions.
  - Config window now accepts [ENTER] to continue or F10.
  - Fixed issue where Opera +15 was identified as Chrome.
  - Implemented the ability to parse the time taken to serve the request, in
    microseconds and seconds.
  - Improved memory usage and better performance in general.
  - Moved away from the original pop-up UI to a new expandable dashboard
    allowing data to be processed in real-time.
  - Sanitized HTML output with html entities for special chars.
  - Updated the hosts module so it shows the reverse DNS as a sub node.

Changes to GoAccess 0.5 - Monday, June 04, 2012

  - Added ability to output a full stats report to a file.
  - Added a key shortcut to scroll top/bottom.
  - Added a new include sys/socket.h - BSD
  - Added support for IPv6
  - Added the ability to parse a custom format string.
  - Fixed google cache key-phrases.
  - Fixed issue on empty Google query strings.
  - Fixed issue on Opera agents where version was not recognized correctly.
  - Fixed other minor fixes and changes.

Changes to GoAccess 0.4.2 - Monday, January 03, 2011

  - Added UTF-8 support. Now it should handle properly wide-character/UTF-8.
    Run ./configure --enable-utf8
  - Fixed a minor bug when adding monthly totals on visitors subwin.
  - Removed -lrt since GoAccess does not link to librt. (OS X doesn't include
    librt)

Changes to GoAccess 0.4.1 - Monday, December 13, 2010

  - Added more flexibility when resizing the terminal. Should work fine with
    the standard 80x24.
  - Added the ability to pass a flag to ./configure so GeoIP can be enabled if
    needed.
  - Implemented a pipeline from stdin, so the input doesn't have to be only a
    file.

Changes to GoAccess 0.4 - Tuesday, November 30, 2010

  - Added graphs to the unique_visitors subwin.
  - Implemented bandwidth per day, and host.
  - Implemented list of agents for specific hosts.
  - Rewrote hash tables iterative code to avoid the use of GHashTableIter, this
    way it works with all GLib > 2.0.0.
  - Various bug fixes and code cleanups (mainly in the subwin modules).

Changes to GoAccess 0.3.3 - Monday, September 27, 2010

  - Changed tarball's filename.
  - Fixed a request size parsing issue. Due to malformed syntax on the HTTP
    protocol, bandwidth was reset to 0. Ex. "HEAD /" 400 20392
  - Fixed a segfault when goaccess was executed without any options but with an
    additional unknown argument.

Changes to GoAccess 0.3.2 - Thursday, September 09, 2010

  - Fixed an agent parsing issue. As a result, operating systems were not
    properly counted.

Changes to GoAccess 0.3.1 - Friday, September 03, 2010

  - Added a color scheme implementation

Changes to GoAccess 0.3 - Sunday, August 29, 2010

  - Added a counter for total requests since initial parse was implemented
  - Added a more detailed and comprehensive browser and os report
  - Added bandwidth details for requested files
  - Added percentage details on modules 2, 3, 4, 5, 10, 11
  - Code cleanups
  - Fixed a potential segmentation fault when resizing main window
  - Fixed a segmentation fault on pop-up window search if haystack was null
  - Fixed invalid entries when parsing status codes
  - Implemented a real support for LFS - Handles files larger than 2 GiB on
    32-bit systems
  - Implemented support for "vhost_combined" log format
  - Changed position of data/graphs depending on # of hits

Changes to GoAccess 0.2 - Sunday, July 25, 2010

  - Added a keyphrases report coming from Google search engine. This includes,
    raw, cache, and translation queries.
  - Fixed a memory leak when invalid entries were parsed
  - Fixed a potential buffer overflow.
  - Implemented real-time statistics (RTS). Data will be appended as the log
    file grows. Equivalent to "tail -f" on Unix systems
  - Implemented screen resize functionality
  - Simpliflied creation of the "unique visitors" hash-key.
  - Simpliflied the "process_unique_data" function
  - Various small speed increases & code cleanup

Changes to GoAccess 0.1.2 - Monday, July 12, 2010

  - Fixed a segmentation fault when parsing logs with unusual request type. Ex.
    "GET HTTP/1.1 HTTP/1.1"

Changes to GoAccess 0.1.1 - Saturday, July 10, 2010

  - Added an enhanced error handling
  - Added an extra macro on configure.ac to check against GHashTableIter.
    ./configure might not check for glib 2.16 that introduced "GHashTableIter".
  - Added Glibc LFS
  - Cleaned up code a little bit
  - Fixed a segmentation fault when displaying the help text on x86_64.
  - Fixed assignments in conditions. In case the assignment is actually intended
    put extra parenthesis around it. This will shut GCC (and others) up.
  - Fixed casts associated with "g_hash_table_iter_next".
  - Fixed comparison between signed and unsigned integer types.
  - Fixed function declarations.
  - Fixed includes.
  - Fixed two format strings. (If the error was ever triggered, it'd most
    likely lead to a segfault)

Changes to GoAccess 0.1 - Tuesday, July 06, 2010

  - Initial release 0.1