diff --git a/ud/manager.go b/ud/manager.go index 0a4247fb809d876b4c0659639827bc2929ba3b83..75380113f86a7632db15d99b830e47c2e855181b 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 // ////////////////////////////////////////////////////////////////////////////////