@@ -19,7 +19,7 @@ use syncserver_common::{
1919 Taggable ,
2020} ;
2121use syncserver_db_common:: { GetPoolState , PoolState } ;
22- use syncserver_settings:: Settings ;
22+ use syncserver_settings:: { Settings , ServerAddress } ;
2323use syncstorage_db:: { DbError , DbPool , DbPoolImpl } ;
2424use syncstorage_settings:: { Deadman , ServerLimits } ;
2525use tokio:: { sync:: RwLock , time} ;
@@ -108,7 +108,7 @@ pub struct Server;
108108
109109#[ macro_export]
110110macro_rules! build_app {
111- ( $reverse_proxy_state : expr, $syncstorage_state: expr, $tokenserver_state: expr, $secrets: expr, $limits: expr, $cors: expr, $metrics: expr) => {
111+ ( $server_address : expr , $public_address : expr, $syncstorage_state: expr, $tokenserver_state: expr, $secrets: expr, $limits: expr, $cors: expr, $metrics: expr) => {
112112 App :: new( )
113113 . configure( |cfg| {
114114 cfg. app_data( Data :: new( $syncstorage_state) ) ;
@@ -119,7 +119,7 @@ macro_rules! build_app {
119119 }
120120 } )
121121 . app_data( Data :: new( $secrets) )
122- . app_data( Data :: new( $reverse_proxy_state ) )
122+ . app_data( Data :: new( $public_address ) )
123123 // Middleware is applied LIFO
124124 // These will wrap all outbound responses with matching status codes.
125125 . wrap( ErrorHandlers :: new( ) . handler( StatusCode :: NOT_FOUND , ApiError :: render_404) )
@@ -184,7 +184,7 @@ macro_rules! build_app {
184184 )
185185 // Tokenserver
186186 . service(
187- web:: resource( "/ 1.0/{application}/{version}")
187+ web:: resource( format! ( "{} 1.0/{}" , $server_address . path ( ) , "{ application}/{version}") )
188188 . route( web:: get( ) . to( tokenserver:: handlers:: get_tokenserver_result) ) ,
189189 )
190190 // Dockerflow
@@ -370,6 +370,7 @@ impl Server {
370370
371371 build_app ! (
372372 ReverseProxyState :: from_settings( & settings_copy) ,
373+ & settings_copy. public_address. clone( ) ,
373374 syncstorage_state,
374375 tokenserver_state. clone( ) ,
375376 Arc :: clone( & secrets) ,
0 commit comments