@@ -263,7 +263,7 @@ func (n *Node) startRPC(services map[reflect.Type]Service) error {
263
263
n .stopInProc ()
264
264
return err
265
265
}
266
- if err := n .startHTTP (n .httpEndpoint , apis , n .config .HTTPModules , n .config .HTTPCors ); err != nil {
266
+ if err := n .startHTTP (n .httpEndpoint , apis , n .config .HTTPModules , n .config .HTTPCors , n . config . HTTPVirtualHosts ); err != nil {
267
267
n .stopIPC ()
268
268
n .stopInProc ()
269
269
return err
@@ -287,7 +287,7 @@ func (n *Node) startInProc(apis []rpc.API) error {
287
287
if err := handler .RegisterName (api .Namespace , api .Service ); err != nil {
288
288
return err
289
289
}
290
- n .log .Debug (fmt . Sprintf ( "InProc registered %T under '%s'" , api .Service , api .Namespace ) )
290
+ n .log .Debug ("InProc registered" , "service" , api .Service , "namespace" , api .Namespace )
291
291
}
292
292
n .inprocHandler = handler
293
293
return nil
@@ -313,7 +313,7 @@ func (n *Node) startIPC(apis []rpc.API) error {
313
313
if err := handler .RegisterName (api .Namespace , api .Service ); err != nil {
314
314
return err
315
315
}
316
- n .log .Debug (fmt . Sprintf ( "IPC registered %T under '%s'" , api .Service , api .Namespace ) )
316
+ n .log .Debug ("IPC registered" , "service" , api .Service , "namespace" , api .Namespace )
317
317
}
318
318
// All APIs registered, start the IPC listener
319
319
var (
@@ -324,7 +324,7 @@ func (n *Node) startIPC(apis []rpc.API) error {
324
324
return err
325
325
}
326
326
go func () {
327
- n .log .Info (fmt . Sprintf ( "IPC endpoint opened: %s" , n .ipcEndpoint ))
327
+ n .log .Info ("IPC endpoint opened" , "url" , fmt . Sprintf ( " %s" , n .ipcEndpoint ))
328
328
329
329
for {
330
330
conn , err := listener .Accept ()
@@ -337,7 +337,7 @@ func (n *Node) startIPC(apis []rpc.API) error {
337
337
return
338
338
}
339
339
// Not closed, just some error; report and continue
340
- n .log .Error (fmt . Sprintf ( "IPC accept failed: %v" , err ) )
340
+ n .log .Error ("IPC accept failed" , "err" , err )
341
341
continue
342
342
}
343
343
go handler .ServeCodec (rpc .NewJSONCodec (conn ), rpc .OptionMethodInvocation | rpc .OptionSubscriptions )
@@ -356,7 +356,7 @@ func (n *Node) stopIPC() {
356
356
n .ipcListener .Close ()
357
357
n .ipcListener = nil
358
358
359
- n .log .Info (fmt . Sprintf ( "IPC endpoint closed: %s" , n .ipcEndpoint ) )
359
+ n .log .Info ("IPC endpoint closed" , "endpoint" , n .ipcEndpoint )
360
360
}
361
361
if n .ipcHandler != nil {
362
362
n .ipcHandler .Stop ()
@@ -365,7 +365,7 @@ func (n *Node) stopIPC() {
365
365
}
366
366
367
367
// startHTTP initializes and starts the HTTP RPC endpoint.
368
- func (n * Node ) startHTTP (endpoint string , apis []rpc.API , modules []string , cors []string ) error {
368
+ func (n * Node ) startHTTP (endpoint string , apis []rpc.API , modules []string , cors []string , vhosts [] string ) error {
369
369
// Short circuit if the HTTP endpoint isn't being exposed
370
370
if endpoint == "" {
371
371
return nil
@@ -382,7 +382,7 @@ func (n *Node) startHTTP(endpoint string, apis []rpc.API, modules []string, cors
382
382
if err := handler .RegisterName (api .Namespace , api .Service ); err != nil {
383
383
return err
384
384
}
385
- n .log .Debug (fmt . Sprintf ( "HTTP registered %T under '%s'" , api .Service , api .Namespace ) )
385
+ n .log .Debug ("HTTP registered" , "service" , api .Service , "namespace" , api .Namespace )
386
386
}
387
387
}
388
388
// All APIs registered, start the HTTP listener
@@ -393,9 +393,8 @@ func (n *Node) startHTTP(endpoint string, apis []rpc.API, modules []string, cors
393
393
if listener , err = net .Listen ("tcp" , endpoint ); err != nil {
394
394
return err
395
395
}
396
- go rpc .NewHTTPServer (cors , handler ).Serve (listener )
397
- n .log .Info (fmt .Sprintf ("HTTP endpoint opened: http://%s" , endpoint ))
398
-
396
+ go rpc .NewHTTPServer (cors , vhosts , handler ).Serve (listener )
397
+ n .log .Info ("HTTP endpoint opened" , "url" , fmt .Sprintf ("http://%s" , endpoint ), "cors" , strings .Join (cors , "," ), "hvosts" , strings .Join (vhosts , "," ))
399
398
// All listeners booted successfully
400
399
n .httpEndpoint = endpoint
401
400
n .httpListener = listener
@@ -410,7 +409,7 @@ func (n *Node) stopHTTP() {
410
409
n .httpListener .Close ()
411
410
n .httpListener = nil
412
411
413
- n .log .Info (fmt . Sprintf ( "HTTP endpoint closed: http://%s" , n .httpEndpoint ))
412
+ n .log .Info ("HTTP endpoint closed" , "url" , fmt . Sprintf ( " http://%s" , n .httpEndpoint ))
414
413
}
415
414
if n .httpHandler != nil {
416
415
n .httpHandler .Stop ()
@@ -436,7 +435,7 @@ func (n *Node) startWS(endpoint string, apis []rpc.API, modules []string, wsOrig
436
435
if err := handler .RegisterName (api .Namespace , api .Service ); err != nil {
437
436
return err
438
437
}
439
- n .log .Debug (fmt . Sprintf ( "WebSocket registered %T under '%s'" , api .Service , api .Namespace ) )
438
+ n .log .Debug ("WebSocket registered" , "service" , api .Service , "namespace" , api .Namespace )
440
439
}
441
440
}
442
441
// All APIs registered, start the HTTP listener
@@ -448,7 +447,7 @@ func (n *Node) startWS(endpoint string, apis []rpc.API, modules []string, wsOrig
448
447
return err
449
448
}
450
449
go rpc .NewWSServer (wsOrigins , handler ).Serve (listener )
451
- n .log .Info (fmt . Sprintf ( "WebSocket endpoint opened: ws://%s" , listener .Addr ()))
450
+ n .log .Info ("WebSocket endpoint opened" , "url" , fmt . Sprintf ( " ws://%s" , listener .Addr ()))
452
451
453
452
// All listeners booted successfully
454
453
n .wsEndpoint = endpoint
@@ -464,7 +463,7 @@ func (n *Node) stopWS() {
464
463
n .wsListener .Close ()
465
464
n .wsListener = nil
466
465
467
- n .log .Info (fmt . Sprintf ( "WebSocket endpoint closed: ws://%s" , n .wsEndpoint ))
466
+ n .log .Info ("WebSocket endpoint closed" , "url" , fmt . Sprintf ( " ws://%s" , n .wsEndpoint ))
468
467
}
469
468
if n .wsHandler != nil {
470
469
n .wsHandler .Stop ()
0 commit comments