@@ -36,6 +36,7 @@ import (
3636 "github.com/mysteriumnetwork/node/p2p"
3737 "github.com/mysteriumnetwork/node/services/datatransfer"
3838 "github.com/mysteriumnetwork/node/services/dvpn"
39+ "github.com/mysteriumnetwork/node/services/monitoring"
3940 service_noop "github.com/mysteriumnetwork/node/services/noop"
4041 service_openvpn "github.com/mysteriumnetwork/node/services/openvpn"
4142 openvpn_service "github.com/mysteriumnetwork/node/services/openvpn/service"
@@ -87,6 +88,7 @@ func (di *Dependencies) bootstrapServices(nodeOptions node.Options) error {
8788 di .bootstrapServiceScraping (nodeOptions , resourcesAllocator , di .WireguardClientFactory )
8889 di .bootstrapServiceDataTransfer (nodeOptions , resourcesAllocator , di .WireguardClientFactory )
8990 di .bootstrapServiceDVPN (nodeOptions , resourcesAllocator , di .WireguardClientFactory )
91+ di .bootstrapServiceMonitoring (nodeOptions , resourcesAllocator , di .WireguardClientFactory )
9092
9193 return nil
9294}
@@ -201,6 +203,30 @@ func (di *Dependencies) bootstrapServiceDVPN(nodeOptions node.Options, resources
201203 )
202204}
203205
206+ func (di * Dependencies ) bootstrapServiceMonitoring (nodeOptions node.Options , resourcesAllocator * resources.Allocator , wgClientFactory * endpoint.WgClientFactory ) {
207+ di .ServiceRegistry .Register (
208+ monitoring .ServiceType ,
209+ func (serviceOptions service.Options ) (service.Service , error ) {
210+ loc , err := di .LocationResolver .DetectLocation ()
211+ if err != nil {
212+ return nil , err
213+ }
214+
215+ svc := wireguard_service .NewManager (
216+ di .IPResolver ,
217+ loc .Country ,
218+ di .NATService ,
219+ di .EventBus ,
220+ di .ServiceFirewall ,
221+ resourcesAllocator ,
222+ wgClientFactory ,
223+ di .dnsProxy ,
224+ )
225+ return svc , nil
226+ },
227+ )
228+ }
229+
204230func (di * Dependencies ) bootstrapServiceOpenvpn (nodeOptions node.Options ) {
205231 createService := func (serviceOptions service.Options ) (service.Service , error ) {
206232 if err := nodeOptions .Openvpn .Check (); err != nil {
@@ -373,6 +399,7 @@ func (di *Dependencies) registerConnections(nodeOptions node.Options) {
373399 di .registerQuicConnection ()
374400 di .registerDataTransferConnection (nodeOptions , resourceAllocator , di .WireguardClientFactory )
375401 di .registerDVPNConnection (nodeOptions , resourceAllocator , di .WireguardClientFactory )
402+ di .registerMonitoringConnection (nodeOptions , resourceAllocator , di .WireguardClientFactory )
376403}
377404
378405func (di * Dependencies ) registerWireguardConnection (nodeOptions node.Options , resourceAllocator * resources.Allocator , wgClientFactory * endpoint.WgClientFactory ) {
@@ -447,6 +474,22 @@ func (di *Dependencies) registerDVPNConnection(nodeOptions node.Options, resourc
447474 di .ConnectionRegistry .Register (dvpn .ServiceType , connFactory )
448475}
449476
477+ func (di * Dependencies ) registerMonitoringConnection (nodeOptions node.Options , resourceAllocator * resources.Allocator , wgClientFactory * endpoint.WgClientFactory ) {
478+ monitoring .Bootstrap ()
479+ handshakeWaiter := wireguard_connection .NewHandshakeWaiter ()
480+ endpointFactory := func () (wireguard.ConnectionEndpoint , error ) {
481+ return endpoint .NewConnectionEndpoint (resourceAllocator , wgClientFactory )
482+ }
483+ connFactory := func () (connection.Connection , error ) {
484+ opts := wireguard_connection.Options {
485+ DNSScriptDir : nodeOptions .Directories .Script ,
486+ HandshakeTimeout : 1 * time .Minute ,
487+ }
488+ return wireguard_connection .NewConnection (opts , di .IPResolver , endpointFactory , handshakeWaiter )
489+ }
490+ di .ConnectionRegistry .Register (monitoring .ServiceType , connFactory )
491+ }
492+
450493func (di * Dependencies ) bootstrapMMN () error {
451494 client := mmn .NewClient (di .HTTPClient , config .GetString (config .FlagMMNAPIAddress ), di .SignerFactory )
452495
0 commit comments