diff --git a/auth/store/store.go b/auth/store/store.go index df5535715a833a038d2f738cbe57638d1453eb00..25e22d234ee81639b4c60292a3cf687a56f06424 100644 --- a/auth/store/store.go +++ b/auth/store/store.go @@ -244,9 +244,8 @@ func (s *Store) HandleReceivedRequest(partner *id.ID, handler func(*ReceivedRequ s.mux.RLock() rr, ok := s.receivedByID[*partner] - s.mux.RUnlock() - if !ok { + s.mux.RUnlock() return errors.Errorf("Received request not "+ "found: %s", partner) } @@ -255,29 +254,19 @@ func (s *Store) HandleReceivedRequest(partner *id.ID, handler func(*ReceivedRequ rr.mux.Lock() defer rr.mux.Unlock() - // Check that the request still exists; it could have been deleted while the - // lock was taken - s.mux.RLock() - _, ok = s.receivedByID[*partner] s.mux.RUnlock() - if !ok { - return errors.Errorf("Received request not "+ - "found: %s", partner) - } - //run the handler handleErr := handler(rr) - if handleErr != nil { return errors.WithMessage(handleErr, "Received error from handler") } delete(s.receivedByID, *partner) - s.save() + err := s.save() rr.delete() - return nil + return err } // HandleSentRequest handles the request singly, only a single operator @@ -311,16 +300,15 @@ func (s *Store) HandleSentRequest(partner *id.ID, handler func(request *SentRequ //run the handler handleErr := handler(sr) - if handleErr != nil { return errors.WithMessage(handleErr, "Received error from handler") } delete(s.sentByID, *partner) - s.save() + err := s.save() sr.delete() - return nil + return err } // GetReceivedRequest returns the contact representing the partner request