@@ -16,12 +16,6 @@ public enum TunnelStatus
16
16
Stopped ,
17
17
}
18
18
19
- public class ServerVersion
20
- {
21
- public required string String { get ; set ; }
22
- public required SemVersion SemVersion { get ; set ; }
23
- }
24
-
25
19
public interface IManager : IDisposable
26
20
{
27
21
public Task StopAsync ( CancellationToken ct = default ) ;
@@ -32,9 +26,6 @@ public interface IManager : IDisposable
32
26
/// </summary>
33
27
public class Manager : IManager
34
28
{
35
- // TODO: determine a suitable value for this
36
- private static readonly SemVersionRange ServerVersionRange = SemVersionRange . All ;
37
-
38
29
private readonly ManagerConfig _config ;
39
30
private readonly IDownloader _downloader ;
40
31
private readonly ILogger < Manager > _logger ;
@@ -141,7 +132,7 @@ private async ValueTask<StartResponse> HandleClientMessageStart(ClientMessage me
141
132
var serverVersion =
142
133
await CheckServerVersionAndCredentials ( message . Start . CoderUrl , message . Start . ApiToken , ct ) ;
143
134
if ( _status == TunnelStatus . Started && _lastStartRequest != null &&
144
- _lastStartRequest . Equals ( message . Start ) && _lastServerVersion ? . String == serverVersion . String )
135
+ _lastStartRequest . Equals ( message . Start ) && _lastServerVersion ? . RawString == serverVersion . RawString )
145
136
{
146
137
// The client is requesting to start an identical tunnel while
147
138
// we're already running it.
@@ -373,20 +364,11 @@ private async ValueTask<ServerVersion> CheckServerVersionAndCredentials(string b
373
364
374
365
var buildInfo = await client . GetBuildInfo ( ct ) ;
375
366
_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 ) ;
382
368
var user = await client . GetUser ( User . Me , ct ) ;
383
369
_logger . LogInformation ( "Authenticated to server as '{Username}'" , user . Username ) ;
384
370
385
- return new ServerVersion
386
- {
387
- String = buildInfo . Version ,
388
- SemVersion = serverVersion ,
389
- } ;
371
+ return serverVersion ;
390
372
}
391
373
392
374
/// <summary>
0 commit comments