@@ -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-
2519public interface IManager : IDisposable
2620{
2721 public Task StopAsync ( CancellationToken ct = default ) ;
@@ -32,9 +26,6 @@ public interface IManager : IDisposable
3226/// </summary>
3327public 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