From ce5964f925667fedda63a03e8eadf5e2ccc68f25 Mon Sep 17 00:00:00 2001
From: Mauricio Scheffer <mauricioscheffer@gmail.com>
Date: Tue, 31 Oct 2023 21:36:08 +0000
Subject: [PATCH 1/2] fix: Prevent invalid negative timestamps getting
 container logs (#1035)

---
 src/Testcontainers/Clients/DockerContainerOperations.cs | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/Testcontainers/Clients/DockerContainerOperations.cs b/src/Testcontainers/Clients/DockerContainerOperations.cs
index 33d7e7d9e..aee7e39b1 100644
--- a/src/Testcontainers/Clients/DockerContainerOperations.cs
+++ b/src/Testcontainers/Clients/DockerContainerOperations.cs
@@ -69,8 +69,8 @@ public async Task<long> GetExitCodeAsync(string id, CancellationToken ct = defau
       {
         ShowStdout = true,
         ShowStderr = true,
-        Since = since.TotalSeconds.ToString("0", CultureInfo.InvariantCulture),
-        Until = until.TotalSeconds.ToString("0", CultureInfo.InvariantCulture),
+        Since = Math.Max(0, since.TotalSeconds).ToString("0", CultureInfo.InvariantCulture),
+        Until = Math.Max(0, until.TotalSeconds).ToString("0", CultureInfo.InvariantCulture),
         Timestamps = timestampsEnabled,
       };
 

From ba76abbc2c0b2cf66a888b1d9083454ab689067c Mon Sep 17 00:00:00 2001
From: Andre Hofmeister <9199345+HofmeisterAn@users.noreply.github.com>
Date: Wed, 1 Nov 2023 08:04:02 +0100
Subject: [PATCH 2/2] chore: Set since and until log param default to unix
 epoch

---
 src/Testcontainers/Clients/TestcontainersClient.cs | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/Testcontainers/Clients/TestcontainersClient.cs b/src/Testcontainers/Clients/TestcontainersClient.cs
index e122610d4..2714bb0a6 100644
--- a/src/Testcontainers/Clients/TestcontainersClient.cs
+++ b/src/Testcontainers/Clients/TestcontainersClient.cs
@@ -106,12 +106,12 @@ public Task<long> GetContainerExitCodeAsync(string id, CancellationToken ct = de
 
       if (default(DateTime).Equals(since))
       {
-        since = DateTime.MinValue;
+        since = unixEpoch;
       }
 
       if (default(DateTime).Equals(until))
       {
-        until = DateTime.MaxValue;
+        until = unixEpoch;
       }
 
       return Container.GetLogsAsync(id, since.ToUniversalTime().Subtract(unixEpoch), until.ToUniversalTime().Subtract(unixEpoch), timestampsEnabled, ct);