Add clock drift error messages to remaining 18 implementations
When timestamp auth fails (401 with timestamp in error), show helpful message: - Error: Request timestamp expired (must be within 5 minutes of server time) - Your computer's clock may have drifted. - NTP sync commands for Linux/macOS/Windows Updated: Un.cs, Un.java, un.clj, un.cob, un.erl, un.ex, un.f90, un.forth, un.fs, un.hs, un.lisp, un.m, un.ml, un.pro, un.r, un.raku, un.scm, un.zig All 42 implementations now have clock drift detection.
This commit is contained in:
parent
bc0da08a08
commit
a5a4f23594
18 changed files with 455 additions and 42 deletions
18
Un.cs
18
Un.cs
|
|
@ -605,13 +605,31 @@ class Un
|
|||
catch (WebException ex)
|
||||
{
|
||||
string error = "";
|
||||
int statusCode = 0;
|
||||
if (ex.Response != null)
|
||||
{
|
||||
using (StreamReader reader = new StreamReader(ex.Response.GetResponseStream()))
|
||||
{
|
||||
error = reader.ReadToEnd();
|
||||
}
|
||||
if (ex.Response is HttpWebResponse httpResponse)
|
||||
{
|
||||
statusCode = (int)httpResponse.StatusCode;
|
||||
}
|
||||
}
|
||||
|
||||
// Check for clock drift errors
|
||||
if (error.Contains("timestamp") && (statusCode == 401 || error.ToLower().Contains("expired") || error.ToLower().Contains("invalid")))
|
||||
{
|
||||
Console.Error.WriteLine($"{RED}Error: Request timestamp expired (must be within 5 minutes of server time){RESET}");
|
||||
Console.Error.WriteLine($"{YELLOW}Your computer's clock may have drifted.{RESET}");
|
||||
Console.Error.WriteLine("Check your system time and sync with NTP if needed:");
|
||||
Console.Error.WriteLine(" Linux: sudo ntpdate -s time.nist.gov");
|
||||
Console.Error.WriteLine(" macOS: sudo sntp -sS time.apple.com");
|
||||
Console.Error.WriteLine(" Windows: w32tm /resync");
|
||||
Environment.Exit(1);
|
||||
}
|
||||
|
||||
throw new Exception($"HTTP error - {error}");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue