diff --git a/cmd/ud.go b/cmd/ud.go index 67fa9d933bd02e92ee542fa475649bd9767a2ef0..431f774f3f6d56f81fca53f2709b1f00903caf9a 100644 --- a/cmd/ud.go +++ b/cmd/ud.go @@ -15,6 +15,7 @@ import ( "gitlab.com/elixxir/client/xxmutils" "gitlab.com/elixxir/primitives/fact" "gitlab.com/xx_network/primitives/utils" + "strings" "time" "github.com/spf13/cobra" @@ -87,12 +88,17 @@ var udCmd = &cobra.Command{ stream, userToRegister, client.GetStorage().GetKV()) if err != nil { - userDiscoveryMgr, err = ud.LoadManager(client.GetNetworkInterface(), - client.GetE2EHandler(), client.GetEventReporter(), - client.GetComms(), - client.GetStorage(), client.GetStorage().GetKV()) - if err != nil { + if strings.Contains(err.Error(), ud.IsRegisteredErr) { + userDiscoveryMgr, err = ud.LoadManager(client.GetNetworkInterface(), + client.GetE2EHandler(), client.GetEventReporter(), + client.GetComms(), + client.GetStorage(), client.GetStorage().GetKV()) + if err != nil { + jww.FATAL.Panicf("Failed to load UD manager: %+v", err) + } + } else { jww.FATAL.Panicf("Failed to create new UD manager: %+v", err) + } } diff --git a/ud/manager.go b/ud/manager.go index 32e2cb25d6da1575d71d5abd947940a2e516c4ff..9d60515e5995059eb4926e6ef33384a69e6a0347 100644 --- a/ud/manager.go +++ b/ud/manager.go @@ -17,6 +17,12 @@ import ( "time" ) +const ( + IsRegisteredErr = "NewManager is already registered. " + + "NewManager is meant for the first instantiation. Use LoadManager " + + "for all other calls" +) + // Manager is the control structure for the contacting the user discovery service. type Manager struct { // Network is a sub-interface of the cmix.Client interface. It @@ -86,8 +92,7 @@ func NewManager(services CMix, e2e E2E, } if m.isRegistered() { - return nil, errors.Errorf("NewManager is already registered. " + - "NewManager is meant for the first instantiation. Use LoadManager for all other calls") + return nil, errors.Errorf(IsRegisteredErr) } // Initialize store diff --git a/ud/search.go b/ud/search.go index d432f47561b079ffecb335c9b999d07561a1cb7e..7061f4cc3a5c0b1c463b665a06f7cc9b3d70bdaf 100644 --- a/ud/search.go +++ b/ud/search.go @@ -54,7 +54,8 @@ func Search(services CMix, events event.Reporter, factMap: factMap, } - rndId, ephId, err := single.TransmitRequest(udContact, SearchTag, requestMarshaled, + rndId, ephId, err := single.TransmitRequest(udContact, SearchTag, + requestMarshaled, response, params, services, rng, grp) if err != nil { return []id.Round{}, receptionID.EphemeralIdentity{},