Skip to content

Commit da0ff72

Browse files
committed
Also use ServerVersionUtilities in Manager
1 parent cb3a049 commit da0ff72

File tree

1 file changed

+3
-21
lines changed

1 file changed

+3
-21
lines changed

Vpn.Service/Manager.cs

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,6 @@ public enum TunnelStatus
1616
Stopped,
1717
}
1818

19-
public class ServerVersion
20-
{
21-
public required string String { get; set; }
22-
public required SemVersion SemVersion { get; set; }
23-
}
24-
2519
public interface IManager : IDisposable
2620
{
2721
public Task StopAsync(CancellationToken ct = default);
@@ -32,9 +26,6 @@ public interface IManager : IDisposable
3226
/// </summary>
3327
public class Manager : IManager
3428
{
35-
// TODO: determine a suitable value for this
36-
private static readonly SemVersionRange ServerVersionRange = SemVersionRange.All;
37-
3829
private readonly ManagerConfig _config;
3930
private readonly IDownloader _downloader;
4031
private readonly ILogger<Manager> _logger;
@@ -141,7 +132,7 @@ private async ValueTask<StartResponse> HandleClientMessageStart(ClientMessage me
141132
var serverVersion =
142133
await CheckServerVersionAndCredentials(message.Start.CoderUrl, message.Start.ApiToken, ct);
143134
if (_status == TunnelStatus.Started && _lastStartRequest != null &&
144-
_lastStartRequest.Equals(message.Start) && _lastServerVersion?.String == serverVersion.String)
135+
_lastStartRequest.Equals(message.Start) && _lastServerVersion?.RawString == serverVersion.RawString)
145136
{
146137
// The client is requesting to start an identical tunnel while
147138
// we're already running it.
@@ -373,20 +364,11 @@ private async ValueTask<ServerVersion> CheckServerVersionAndCredentials(string b
373364

374365
var buildInfo = await client.GetBuildInfo(ct);
375366
_logger.LogInformation("Fetched server version '{ServerVersion}'", buildInfo.Version);
376-
if (buildInfo.Version.StartsWith('v')) buildInfo.Version = buildInfo.Version[1..];
377-
var serverVersion = SemVersion.Parse(buildInfo.Version);
378-
if (!serverVersion.Satisfies(ServerVersionRange))
379-
throw new InvalidOperationException(
380-
$"Server version '{serverVersion}' is not within required server version range '{ServerVersionRange}'");
381-
367+
var serverVersion = ServerVersionUtilities.ParseAndValidateServerVersion(buildInfo.Version);
382368
var user = await client.GetUser(User.Me, ct);
383369
_logger.LogInformation("Authenticated to server as '{Username}'", user.Username);
384370

385-
return new ServerVersion
386-
{
387-
String = buildInfo.Version,
388-
SemVersion = serverVersion,
389-
};
371+
return serverVersion;
390372
}
391373

392374
/// <summary>

0 commit comments

Comments
 (0)