Skip to content
Snippets Groups Projects
Commit c78b861e authored by Jake Taylor's avatar Jake Taylor :lips:
Browse files

Merge branch 'Josh/UdSearchLookup' into 'release'

Have ud.Search/Lookup take in udE2e

See merge request !289
parents e6a4f347 9b8afc50
Branches
Tags
2 merge requests!510Release,!289Have ud.Search/Lookup take in udE2e
......@@ -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)
}
......
......@@ -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)
}
......
......@@ -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)
}
......
......@@ -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)
......
......@@ -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)
......
......@@ -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()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment