I'm not sure this patch is created correctly. I'm learning about patch so I can figure out how to apply these changes and test.
The actual path of the original file is: /srv/web/ipfire/cgi-bin/logs.cgi/ovpnclients.dat
the patch points to diff --git a/html/cgi-bin/logs.cgi/ovpnclients.dat b/html/cgi-bin/logs.cgi/ovpnclients.dat but there is no cgi-bin/ under html/
Please advise or better yet, give me a short primer on how to apply the patch.
Thank you, Paul
On Tue, Feb 15, 2022 at 6:40 AM Michael Tremer michael.tremer@ipfire.org wrote:
This patch changes that we no longer interpret any dates put in by the user as UTC. They used to be converted into localtime because, although they have already been in local time.
This went unnoticed since in Europe we are close (enough) to UTC that there is no significant discrepancy on the report. However, being in North America is enough to generate confusing reports.
Reported-by: Paul kairis@gmail.com Fixes: #12768 Tested-by: Jon Murphy jon.murphy@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
html/cgi-bin/logs.cgi/ovpnclients.dat | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/html/cgi-bin/logs.cgi/ovpnclients.dat b/html/cgi-bin/logs.cgi/ovpnclients.dat index 5e2c1ff49..100573214 100755 --- a/html/cgi-bin/logs.cgi/ovpnclients.dat +++ b/html/cgi-bin/logs.cgi/ovpnclients.dat @@ -115,16 +115,16 @@ my $database_query = qq( common_name, SUM( STRFTIME('%s', ( CASE
WHEN DATETIME(COALESCE(disconnected_at,
CURRENT_TIMESTAMP), 'localtime') < DATETIME('$to_datestring', 'localtime', 'start of day', '+86399 seconds')
WHEN DATETIME(COALESCE(disconnected_at,
CURRENT_TIMESTAMP), 'localtime') < DATETIME('$to_datestring', 'start of day', '+86399 seconds') THEN DATETIME(COALESCE(disconnected_at, CURRENT_TIMESTAMP), 'localtime')
ELSE DATETIME('$to_datestring',
'localtime', 'start of day', '+86399 seconds')
ELSE DATETIME('$to_datestring',
'start of day', '+86399 seconds') END ), 'utc') - STRFTIME('%s', ( CASE
WHEN DATETIME(connected_at, 'localtime')
DATETIME('$from_datestring', 'localtime', 'start of day')
WHEN DATETIME(connected_at, 'localtime')
DATETIME('$from_datestring', 'start of day')
THEN DATETIME(connected_at,
'localtime')
ELSE DATETIME('$from_datestring',
'localtime', 'start of day')
ELSE DATETIME('$from_datestring',
'start of day') END ), 'utc') ) AS duration @@ -133,10 +133,10 @@ my $database_query = qq( ( disconnected_at IS NULL OR
DATETIME(disconnected_at, 'localtime') >
DATETIME('$from_datestring', 'localtime', 'start of day')
DATETIME(disconnected_at, 'localtime') >
DATETIME('$from_datestring', 'start of day') ) AND
DATETIME(connected_at, 'localtime') <
DATETIME('$to_datestring', 'localtime', 'start of day', '+86399 seconds')
DATETIME(connected_at, 'localtime') <
DATETIME('$to_datestring', 'start of day', '+86399 seconds') GROUP BY common_name ORDER BY common_name, duration DESC; ); @@ -148,9 +148,9 @@ if ($cgiparams{'CONNECTION_NAME'}) { WHERE common_name = '$cgiparams{"CONNECTION_NAME"}' AND (
DATETIME(disconnected_at, 'localtime') >
DATETIME('$from_datestring', 'localtime', 'start of day')
DATETIME(disconnected_at, 'localtime') >
DATETIME('$from_datestring', 'start of day') AND
DATETIME(connected_at, 'localtime') <
DATETIME('$to_datestring', 'localtime', 'start of day', '+86399 seconds')
DATETIME(connected_at, 'localtime') <
DATETIME('$to_datestring', 'start of day', '+86399 seconds') ) ORDER BY connected_at; ); -- 2.30.2