From 92c4a6c8dc57dad466f778580d80cebac192d1d1 Mon Sep 17 00:00:00 2001 From: joshemb <josh@elixxir.io> Date: Tue, 9 Aug 2022 17:02:07 -0700 Subject: [PATCH] Fix ud.NewOrLoad always registering --- ud/manager.go | 61 ++++++++++++++++++--------------------------------- 1 file changed, 21 insertions(+), 40 deletions(-) diff --git a/ud/manager.go b/ud/manager.go index 0a4247fb8..75380113f 100644 --- a/ud/manager.go +++ b/ud/manager.go @@ -66,18 +66,34 @@ func NewOrLoad(user udE2e, comms Comms, follower udNetworkStatus, jww.INFO.Println("ud.NewOrLoad()") - // Construct manager - m, err := loadOrNewManager(user, comms, follower) - if err != nil { - return nil, err + if follower() != xxdk.Running { + return nil, errors.New( + "cannot start UD Manager when network follower is not running.") + } + + // Initialize manager + m := &Manager{ + user: user, + comms: comms, } // Set user discovery - err = m.setUserDiscovery(cert, contactFile, address) + err := m.setUserDiscovery(cert, contactFile, address) if err != nil { return nil, err } + // Initialize store + m.store, err = store.NewOrLoadStore(m.getKv()) + if err != nil { + return nil, errors.Errorf("Failed to initialize store: %v", err) + } + + // If already registered, return + if m.isRegistered() { + return m, nil + } + // Register manager rng := m.getRng().GetStream() defer rng.Close() @@ -197,41 +213,6 @@ func (m *Manager) GetContact() contact.Contact { return m.ud.contact } -// loadOrNewManager is a helper function which loads from storage or -// creates a new Manager object. -func loadOrNewManager(user udE2e, comms Comms, - follower udNetworkStatus) (*Manager, error) { - if follower() != xxdk.Running { - return nil, errors.New( - "cannot start UD Manager when network follower is not running.") - } - - // Initialize manager - m := &Manager{ - user: user, - comms: comms, - } - - if m.isRegistered() { - // Load manager if already registered - var err error - m.store, err = store.NewOrLoadStore(m.getKv()) - if err != nil { - return nil, errors.Errorf("Failed to initialize store: %v", err) - } - return m, nil - } - - // Initialize store - var err error - m.store, err = store.NewOrLoadStore(m.getKv()) - if err != nil { - return nil, errors.Errorf("Failed to initialize store: %v", err) - } - - return m, nil -} - //////////////////////////////////////////////////////////////////////////////// // Internal Getters // //////////////////////////////////////////////////////////////////////////////// -- GitLab