@@ -82,7 +82,7 @@ func getNetworkByIA(iaCli string) (*snet.SCIONNetwork, error) {
82
82
// sciond data sources and calls
83
83
84
84
// PathTopoHandler handles requests for paths, returning results from sciond.
85
- func PathTopoHandler (w http.ResponseWriter , r * http.Request , scionRoot string ) {
85
+ func PathTopoHandler (w http.ResponseWriter , r * http.Request , options * CmdOptions ) {
86
86
r .ParseForm ()
87
87
SIa := r .PostFormValue ("ia_ser" )
88
88
CIa := r .PostFormValue ("ia_cli" )
@@ -116,7 +116,7 @@ func PathTopoHandler(w http.ResponseWriter, r *http.Request, scionRoot string) {
116
116
117
117
// Since segments data is supplimentary to paths data, if segments data
118
118
// fails, provide the error, but we must still allow paths data to return.
119
- segments , err := getSegmentsJSON (* clientCCAddr , scionRoot )
119
+ segments , err := getSegmentsJSON (* clientCCAddr , options )
120
120
if CheckError (err ) {
121
121
returnPathHandler (w , paths , nil , err )
122
122
return
@@ -126,9 +126,9 @@ func PathTopoHandler(w http.ResponseWriter, r *http.Request, scionRoot string) {
126
126
returnPathHandler (w , paths , segments , err )
127
127
}
128
128
129
- func getSegmentsJSON (local snet.Addr , scionRoot string ) ([]byte , error ) {
129
+ func getSegmentsJSON (local snet.Addr , options * CmdOptions ) ([]byte , error ) {
130
130
// load segments from paths database
131
- var dbSrcFile = findDBFilename (local .IA , scionRoot )
131
+ var dbSrcFile = findDBFilename (local .IA , options )
132
132
dbTmpFile , err := copyDBToTemp (dbSrcFile )
133
133
if err != nil {
134
134
return nil , err
@@ -168,14 +168,14 @@ func getSegmentsJSON(local snet.Addr, scionRoot string) ([]byte, error) {
168
168
return jsonSegsInfo , nil
169
169
}
170
170
171
- func findDBFilename (ia addr.IA , scionRoot string ) string {
172
- filenames , err := filepath .Glob (filepath .Join (scionRoot , "gen-cache" , "ps*path.db" ))
171
+ func findDBFilename (ia addr.IA , options * CmdOptions ) string {
172
+ filenames , err := filepath .Glob (filepath .Join (options . ScionGenCache , "ps*path.db" ))
173
173
CheckError (err )
174
174
if len (filenames ) == 1 {
175
175
return filenames [0 ]
176
176
}
177
177
pathDBFileName := fmt .Sprintf ("ps%s-1.path.db" , ia .FileFmt (false ))
178
- return filepath .Join (scionRoot , "gen-cache" , pathDBFileName )
178
+ return filepath .Join (options . ScionGenCache , pathDBFileName )
179
179
}
180
180
181
181
// returns the name of the created file
@@ -288,10 +288,10 @@ func AsTopoHandler(w http.ResponseWriter, r *http.Request) {
288
288
}
289
289
290
290
// TrcHandler handles requests for all local trust root data.
291
- func TrcHandler (w http.ResponseWriter , r * http.Request , scionRoot string ) {
291
+ func TrcHandler (w http.ResponseWriter , r * http.Request , options * CmdOptions ) {
292
292
r .ParseForm ()
293
293
CIa := r .PostFormValue ("src" )
294
- raw , err := loadJSONCerts (CIa , "*.trc" , scionRoot )
294
+ raw , err := loadJSONCerts (CIa , "*.trc" , options )
295
295
if CheckError (err ) {
296
296
returnError (w , err )
297
297
return
@@ -301,10 +301,10 @@ func TrcHandler(w http.ResponseWriter, r *http.Request, scionRoot string) {
301
301
}
302
302
303
303
// CrtHandler handles requests for all local certificate data.
304
- func CrtHandler (w http.ResponseWriter , r * http.Request , scionRoot string ) {
304
+ func CrtHandler (w http.ResponseWriter , r * http.Request , options * CmdOptions ) {
305
305
r .ParseForm ()
306
306
CIa := r .PostFormValue ("src" )
307
- raw , err := loadJSONCerts (CIa , "*.crt" , scionRoot )
307
+ raw , err := loadJSONCerts (CIa , "*.crt" , options )
308
308
if CheckError (err ) {
309
309
returnError (w , err )
310
310
return
@@ -313,13 +313,13 @@ func CrtHandler(w http.ResponseWriter, r *http.Request, scionRoot string) {
313
313
fmt .Fprintf (w , string (raw ))
314
314
}
315
315
316
- func loadJSONCerts (src , pattern string , scionRoot string ) ([]byte , error ) {
316
+ func loadJSONCerts (src , pattern string , options * CmdOptions ) ([]byte , error ) {
317
317
ia , err := addr .IAFromString (src )
318
318
if err != nil {
319
319
return nil , err
320
320
}
321
- certDir := path .Join (scionRoot , fmt .Sprintf ("gen/ ISD%d/AS%s/endhost/certs" , ia .I , ia .A .FileFmt ()))
322
- cacheDir := path . Join ( scionRoot , "gen-cache" )
321
+ certDir := path .Join (options . ScionGen , fmt .Sprintf ("ISD%d/AS%s/endhost/certs" , ia .I , ia .A .FileFmt ()))
322
+ cacheDir := options . ScionGenCache
323
323
files , err := filepath .Glob (fmt .Sprintf ("%s/%s" , certDir , pattern ))
324
324
if err != nil {
325
325
return nil , err
0 commit comments