diff --git a/cmd/ud.go b/cmd/ud.go index dfc9f5e20f8c4c04628818ff5e532e566a1910ba..439178602125d5ce2015c937aa20657f3dff6352 100644 --- a/cmd/ud.go +++ b/cmd/ud.go @@ -37,14 +37,14 @@ var udCmd = &cobra.Command{ cmixParams, e2eParams := initParams() authCbs := makeAuthCallbacks( viper.GetBool(unsafeChannelCreationFlag), e2eParams) - client := initE2e(cmixParams, e2eParams, authCbs) + messenger := initE2e(cmixParams, e2eParams, authCbs) // get user and save contact to file - user := client.GetReceptionIdentity() + user := messenger.GetReceptionIdentity() jww.INFO.Printf("[UD]User: %s", user.ID) writeContact(user.GetContact()) - err := client.StartNetworkFollower(50 * time.Millisecond) + err := messenger.StartNetworkFollower(50 * time.Millisecond) if err != nil { jww.FATAL.Panicf("%+v", err) } @@ -53,7 +53,7 @@ var udCmd = &cobra.Command{ // Wait until connected or crash on timeout connected := make(chan bool, 10) - client.GetCmix().AddHealthCallback( + messenger.GetCmix().AddHealthCallback( func(isconnected bool) { connected <- isconnected }) @@ -62,14 +62,14 @@ var udCmd = &cobra.Command{ jww.TRACE.Printf("[UD] Connected!") // Make user discovery manager - rng := client.GetRng() + rng := messenger.GetRng() userToRegister := viper.GetString(udRegisterFlag) jww.TRACE.Printf("[UD] Registering user %v...", userToRegister) - userDiscoveryMgr, err := ud.NewManager(client, client.GetComms(), - client.NetworkFollowerStatus, userToRegister, nil) + userDiscoveryMgr, err := ud.NewManager(messenger, messenger.GetComms(), + messenger.NetworkFollowerStatus, userToRegister, nil) if err != nil { if strings.Contains(err.Error(), ud.IsRegisteredErr) { - userDiscoveryMgr, err = ud.LoadManager(client, client.GetComms()) + userDiscoveryMgr, err = ud.LoadManager(messenger, messenger.GetComms()) if err != nil { jww.FATAL.Panicf("Failed to load UD manager: %+v", err) } @@ -146,8 +146,7 @@ var udCmd = &cobra.Command{ } stream := rng.GetStream() - _, _, err = ud.Lookup(client.GetCmix(), - stream, client.GetE2E().GetGroup(), + _, _, err = ud.Lookup(messenger, udContact, cb, lookupID, single.GetDefaultRequestParams()) if err != nil { jww.WARN.Printf("Failed UD lookup: %+v", err) @@ -166,13 +165,13 @@ var udCmd = &cobra.Command{ } jww.INFO.Printf("[UD] BATCHADD: Running") restored, _, _, err := xxmutils.RestoreContactsFromBackup( - idListFile, client, userDiscoveryMgr, nil) + idListFile, messenger, userDiscoveryMgr, nil) if err != nil { jww.FATAL.Panicf("%+v", err) } for i := 0; i < len(restored); i++ { uid := restored[i] - for !client.GetE2E().HasAuthenticatedChannel(uid) { + for !messenger.GetE2E().HasAuthenticatedChannel(uid) { time.Sleep(time.Second) } jww.INFO.Printf("[UD] Authenticated channel established for %s", uid) @@ -225,7 +224,7 @@ var udCmd = &cobra.Command{ } if len(facts) == 0 { - err = client.StopNetworkFollower() + err = messenger.StopNetworkFollower() if err != nil { jww.WARN.Print(err) } @@ -241,19 +240,15 @@ var udCmd = &cobra.Command{ } } - stream := rng.GetStream() - defer stream.Close() jww.INFO.Printf("[UD] Search: %v", facts) - _, _, err = ud.Search(client.GetCmix(), - client.GetEventReporter(), - stream, client.GetE2E().GetGroup(), + _, _, err = ud.Search(messenger, udContact, cb, facts, single.GetDefaultRequestParams()) if err != nil { jww.FATAL.Panicf("%+v", err) } time.Sleep(91 * time.Second) - err = client.StopNetworkFollower() + err = messenger.StopNetworkFollower() if err != nil { jww.WARN.Print(err) } diff --git a/ud/lookup.go b/ud/lookup.go index 6f23a8ccd91ac4eb7c76f1c3a71787717695e0b3..d87d68218cdf1e9b15560b413d4011d0efd96bcb 100644 --- a/ud/lookup.go +++ b/ud/lookup.go @@ -22,12 +22,17 @@ type lookupCallback func(contact.Contact, error) // Lookup returns the public key of the passed ID as known by the user discovery // system or returns by the timeout. -func Lookup(net udCmix, - rng csprng.Source, grp *cyclic.Group, +func Lookup(messenger udE2e, udContact contact.Contact, callback lookupCallback, uid *id.ID, p single.RequestParams) ([]id.Round, receptionID.EphemeralIdentity, error) { + // Extract information from messenger + net := messenger.GetCmix() + grp := messenger.GetE2E().GetGroup() + rng := messenger.GetRng().GetStream() + defer rng.Close() + jww.INFO.Printf("ud.Lookup(%s, %s)", uid, p.Timeout) return lookup(net, rng, uid, grp, udContact, callback, p) } diff --git a/ud/lookup_test.go b/ud/lookup_test.go index 662ac8552c4bb2409944fddcc61f27f4b3288371..d89e5b6d671d19e1568b2527847ad1300e425891 100644 --- a/ud/lookup_test.go +++ b/ud/lookup_test.go @@ -87,8 +87,7 @@ func TestManager_Lookup(t *testing.T) { } // Run the lookup - _, _, err = Lookup(m.getCmix(), prng, - grp, udContact, callback, uid, p) + _, _, err = Lookup(m.messenger, udContact, callback, uid, p) if err != nil { t.Errorf("Lookup() returned an error: %+v", err) } diff --git a/ud/search.go b/ud/search.go index 473ba7a7fabfb754669726c92063fda1cec52658..e04acde7cda71782e95394faa1bb6018eccbe0b5 100644 --- a/ud/search.go +++ b/ud/search.go @@ -13,7 +13,6 @@ import ( "gitlab.com/elixxir/crypto/cyclic" "gitlab.com/elixxir/crypto/factID" "gitlab.com/elixxir/primitives/fact" - "gitlab.com/xx_network/crypto/csprng" "gitlab.com/xx_network/primitives/id" ) @@ -28,8 +27,7 @@ type searchCallback func([]contact.Contact, error) // used to search for multiple users at once; that can have a privacy reduction. // Instead, it is intended to be used to search for a user where multiple pieces // of information is known. -func Search(net udCmix, events event.Reporter, - rng csprng.Source, grp *cyclic.Group, +func Search(messenger udE2e, udContact contact.Contact, callback searchCallback, list fact.FactList, params single.RequestParams) ([]id.Round, @@ -46,6 +44,14 @@ func Search(net udCmix, events event.Reporter, errors.WithMessage(err, "Failed to form outgoing search request.") } + // Extract information from messenger + net := messenger.GetCmix() + events := messenger.GetEventReporter() + grp := messenger.GetE2E().GetGroup() + rng := messenger.GetRng().GetStream() + defer rng.Close() + + // Build response handler response := searchResponse{ cb: callback, services: net, @@ -54,6 +60,7 @@ func Search(net udCmix, events event.Reporter, factMap: factMap, } + // Send message rndId, ephId, err := single.TransmitRequest(udContact, SearchTag, requestMarshaled, response, params, net, rng, grp) diff --git a/ud/search_test.go b/ud/search_test.go index 9276aece3c7b46ad6dbf0c18659e6c6846d72b4c..9a0bacb0af27744e12000141716a6561386a242b 100644 --- a/ud/search_test.go +++ b/ud/search_test.go @@ -71,7 +71,7 @@ func TestManager_Search(t *testing.T) { CmixParams: cmix.GetDefaultCMIXParams(), } - _, _, err = Search(m.getCmix(), m.getEventReporter(), prng, m.messenger.GetE2E().GetGroup(), + _, _, err = Search(m.messenger, udContact, callback, factList, p) if err != nil { t.Fatalf("Search() returned an error: %+v", err) diff --git a/xxmutils/restoreContacts.go b/xxmutils/restoreContacts.go index 0ec8e38c00b8b2a7693921f88651c633ad643525..e1f261442a4b8530c57d9600dc1ec1aa65fc1842 100644 --- a/xxmutils/restoreContacts.go +++ b/xxmutils/restoreContacts.go @@ -243,10 +243,8 @@ func LookupContact(userID *id.ID, messenger *xxdk.E2e, udContact contact.Contact waiter.Lock() // in MS, so 90 seconds - stream := messenger.GetRng().GetStream() - defer stream.Close() - _, _, err = ud.Lookup(messenger.GetCmix(), stream, messenger.GetE2E().GetGroup(), - udContact, lookupCB, userID, single.GetDefaultRequestParams()) + _, _, err = ud.Lookup(messenger, udContact, lookupCB, userID, + single.GetDefaultRequestParams()) // Now force a wait for callback to exit waiter.Lock()