@@ -5,8 +5,9 @@ use std::sync::Arc;
55use crucible_downstairs_api:: * ;
66use crucible_downstairs_types:: repair:: { ExtentFilePath , ExtentPath , FileType } ;
77use dropshot:: {
8- Body , CompressionConfig , ConfigDropshot , HandlerTaskMode , HttpError ,
9- HttpResponseOk , HttpServerStarter , Path , RequestContext ,
8+ Body , ClientSpecifiesVersionInHeader , CompressionConfig , ConfigDropshot ,
9+ HandlerTaskMode , HttpError , HttpResponseOk , Path , RequestContext ,
10+ VersionPolicy ,
1011} ;
1112use hyper:: { Response , StatusCode } ;
1213
@@ -68,10 +69,17 @@ pub fn repair_main(
6869 /*
6970 * Set up the server.
7071 */
71- let server =
72- HttpServerStarter :: new ( & config_dropshot, api, context. into ( ) , log)
73- . map_err ( |error| format ! ( "failed to create server: {}" , error) ) ?
74- . start ( ) ;
72+ let server = dropshot:: ServerBuilder :: new ( api, context. into ( ) , log. clone ( ) )
73+ . config ( config_dropshot)
74+ . version_policy ( VersionPolicy :: Dynamic ( Box :: new (
75+ ClientSpecifiesVersionInHeader :: new (
76+ omicron_common:: api:: VERSION_HEADER ,
77+ crucible_downstairs_api:: latest_version ( ) ,
78+ ) ,
79+ ) ) )
80+ . build_starter ( )
81+ . map_err ( |error| format ! ( "failed to create server: {}" , error) ) ?
82+ . start ( ) ;
7583 let local_addr = server. local_addr ( ) ;
7684
7785 let h = tokio:: spawn ( async move {
0 commit comments