diff --git a/auth/store/receivedRequest.go b/auth/store/receivedRequest.go index 1c2a6e8e95c03fbe6c5d24990772cad64db596e7..63b338269f666f816b7d40e65db21417e7331b83 100644 --- a/auth/store/receivedRequest.go +++ b/auth/store/receivedRequest.go @@ -33,7 +33,7 @@ type ReceivedRequest struct { round rounds.Round //lock to make sure only one operator at a time - mux *sync.Mutex + mux sync.Mutex } func newReceivedRequest(kv *versioned.KV, c contact.Contact, @@ -60,7 +60,6 @@ func newReceivedRequest(kv *versioned.KV, c contact.Contact, partner: c, theirSidHPubKeyA: key, round: round, - mux: &sync.Mutex{}, } } diff --git a/auth/store/store.go b/auth/store/store.go index df5535715a833a038d2f738cbe57638d1453eb00..5a42a0aa9cf2d356c62a4d23189746c16ef90349 100644 --- a/auth/store/store.go +++ b/auth/store/store.go @@ -23,8 +23,6 @@ import ( "gitlab.com/xx_network/primitives/netTime" ) -const NoRequest = "Request Not Found" - const storePrefix = "requestMap" const requestMapKey = "map" @@ -268,16 +266,15 @@ func (s *Store) HandleReceivedRequest(partner *id.ID, handler func(*ReceivedRequ //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 +308,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 diff --git a/auth/store/store_test.go b/auth/store/store_test.go index 3de11bc3b6d7e2a122af2a2849c2bc729effa88e..acd6156c50ddca150e755826e8481fbb91c3d5f2 100644 --- a/auth/store/store_test.go +++ b/auth/store/store_test.go @@ -277,7 +277,7 @@ func TestStore_GetReceivedRequest_RequestDeleted(t *testing.T) { } // Check if the request's mutex is locked - if reflect.ValueOf(rr.mux).Elem().FieldByName("state").Int() != 0 { + if reflect.ValueOf(&rr.mux).Elem().FieldByName("state").Int() != 0 { t.Errorf("GetReceivedRequest() did not unlock mutex.") } } diff --git a/go.mod b/go.mod index 7b732085c5ae630d5ef1cca6c40e3af43f7b5d70..75d47972aac9c823166694d786525e1281c9b9d7 100644 --- a/go.mod +++ b/go.mod @@ -8,17 +8,18 @@ require ( github.com/golang/protobuf v1.5.2 github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 github.com/pkg/errors v0.9.1 + github.com/pkg/profile v1.6.0 github.com/spf13/cobra v1.5.0 github.com/spf13/jwalterweatherman v1.1.0 github.com/spf13/viper v1.12.0 gitlab.com/elixxir/bloomfilter v0.0.0-20211222005329-7d931ceead6f - gitlab.com/elixxir/comms v0.0.4-0.20220603231314-e47e4af13326 - gitlab.com/elixxir/crypto v0.0.7-0.20220826192201-c00efec3c556 - gitlab.com/elixxir/ekv v0.1.7 - gitlab.com/elixxir/primitives v0.0.3-0.20220606195757-40f7a589347f - gitlab.com/xx_network/comms v0.0.4-0.20220630163702-f3d372ef6acd - gitlab.com/xx_network/crypto v0.0.5-0.20220729193517-1e5e96f39f6e - gitlab.com/xx_network/primitives v0.0.4-0.20220712193914-aebd8544396e + gitlab.com/elixxir/comms v0.0.4-0.20220901222604-9fa1911afdd7 + gitlab.com/elixxir/crypto v0.0.7-0.20220901215826-1ceaeb59081f + gitlab.com/elixxir/ekv v0.2.1-0.20220901224437-ab4cbf94bf8b + gitlab.com/elixxir/primitives v0.0.3-0.20220901220638-1acc75fabdc6 + gitlab.com/xx_network/comms v0.0.4-0.20220902183108-fe7b710b7efe + gitlab.com/xx_network/crypto v0.0.5-0.20220902182733-69aad094b487 + gitlab.com/xx_network/primitives v0.0.4-0.20220902183448-319596e2fec8 go.uber.org/ratelimit v0.2.0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa golang.org/x/net v0.0.0-20220802222814-0bcc04d9c69b @@ -39,7 +40,6 @@ require ( github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/pelletier/go-toml/v2 v2.0.2 // indirect - github.com/pkg/profile v1.6.0 // indirect github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect github.com/spf13/afero v1.9.2 // indirect github.com/spf13/cast v1.5.0 // indirect diff --git a/go.sum b/go.sum index f7e6a7f3bd583b9e23004c714f103b137a2cd4aa..2022f6ef9f37c1e1705aa39a50638abf65e4d8fa 100644 --- a/go.sum +++ b/go.sum @@ -433,53 +433,42 @@ github.com/zeebo/pcg v1.0.1 h1:lyqfGeWiv4ahac6ttHs+I5hwtH/+1mrhlCtVNQM2kHo= github.com/zeebo/pcg v1.0.1/go.mod h1:09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4= gitlab.com/elixxir/bloomfilter v0.0.0-20211222005329-7d931ceead6f h1:yXGvNBqzZwAhDYlSnxPRbgor6JWoOt1Z7s3z1O9JR40= gitlab.com/elixxir/bloomfilter v0.0.0-20211222005329-7d931ceead6f/go.mod h1:H6jztdm0k+wEV2QGK/KYA+MY9nj9Zzatux/qIvDDv3k= -gitlab.com/elixxir/comms v0.0.4-0.20220603231314-e47e4af13326 h1:Zid8oNHtbOqF6ebrcGIccvIMabFNGh9dzY1b7mgIcF0= -gitlab.com/elixxir/comms v0.0.4-0.20220603231314-e47e4af13326/go.mod h1:tlHSrtSliKWUxsck8z/Ql/VJkMdSONV2BeWaUAAXzgk= +gitlab.com/elixxir/comms v0.0.4-0.20220901222604-9fa1911afdd7 h1:VKeC0MEuTyyeCakXl3YRYdBn9Btp2e0cbqC4WIDSLlU= +gitlab.com/elixxir/comms v0.0.4-0.20220901222604-9fa1911afdd7/go.mod h1:j6so9oYAj2YRjOOu11gFBldtxy4ez/oPkYfqM2J1q1k= gitlab.com/elixxir/crypto v0.0.0-20200804182833-984246dea2c4/go.mod h1:ucm9SFKJo+K0N2GwRRpaNr+tKXMIOVWzmyUD0SbOu2c= gitlab.com/elixxir/crypto v0.0.3/go.mod h1:ZNgBOblhYToR4m8tj4cMvJ9UsJAUKq+p0gCp07WQmhA= -gitlab.com/elixxir/crypto v0.0.7-0.20220317172048-3de167bd9406/go.mod h1:tD6XjtQh87T2nKZL5I/pYPck5M2wLpkZ1Oz7H/LqO10= -gitlab.com/elixxir/crypto v0.0.7-0.20220606201132-c370d5039cea h1:+FjwbKl6X9TDT7qd7gG5N5PSbziPWP3NgjK5ci1b7/8= gitlab.com/elixxir/crypto v0.0.7-0.20220606201132-c370d5039cea/go.mod h1:Oy+VWQ2Sa0Ybata3oTV+Yc46hkaDwAsuIMW0wJ01z2M= -gitlab.com/elixxir/crypto v0.0.7-0.20220822171410-3699212bb2b3 h1:e42j+T2Fr5on1pD/BoDCPFjkYZYPb7Bj1a0bpentSNw= -gitlab.com/elixxir/crypto v0.0.7-0.20220822171410-3699212bb2b3/go.mod h1:0gH41Kb/a9Akdv+2+vMJVdx+REVwR8CZXTr2+BrgeeA= -gitlab.com/elixxir/crypto v0.0.7-0.20220822180551-92d06134b333 h1:V19ek4Hz3k1JB5pdUTpBQ8TewB418TTnvyYByuug2yo= -gitlab.com/elixxir/crypto v0.0.7-0.20220822180551-92d06134b333/go.mod h1:0gH41Kb/a9Akdv+2+vMJVdx+REVwR8CZXTr2+BrgeeA= -gitlab.com/elixxir/crypto v0.0.7-0.20220822180822-5e1b688a9500 h1:KI+7GoG2/9x/J5qdr9VCd2woGwE8RDaSMrt9STYfBKU= -gitlab.com/elixxir/crypto v0.0.7-0.20220822180822-5e1b688a9500/go.mod h1:0gH41Kb/a9Akdv+2+vMJVdx+REVwR8CZXTr2+BrgeeA= -gitlab.com/elixxir/crypto v0.0.7-0.20220823235814-7f7036f95acb h1:J5/yaBi7ZucSLIVHUanxgV6FKT/yDzF5I4TQYZsQqIQ= -gitlab.com/elixxir/crypto v0.0.7-0.20220823235814-7f7036f95acb/go.mod h1:0gH41Kb/a9Akdv+2+vMJVdx+REVwR8CZXTr2+BrgeeA= -gitlab.com/elixxir/crypto v0.0.7-0.20220826192201-c00efec3c556 h1:8ExJNUdf8JvGpfQH5Ch+Zk+sc9YJ2pLExO/ZKnGo11w= -gitlab.com/elixxir/crypto v0.0.7-0.20220826192201-c00efec3c556/go.mod h1:0gH41Kb/a9Akdv+2+vMJVdx+REVwR8CZXTr2+BrgeeA= -gitlab.com/elixxir/ekv v0.1.7 h1:OW2z+N4QCqqMFzouAwFTWWMKz0Y/PDhyYReN7gQ5NiQ= -gitlab.com/elixxir/ekv v0.1.7/go.mod h1:e6WPUt97taFZe5PFLPb1Dupk7tqmDCTQu1kkstqJvw4= +gitlab.com/elixxir/crypto v0.0.7-0.20220901215826-1ceaeb59081f h1:G5I01Ob+ff0YjGyluQ2h3+I97qWtOyNRrJGIJkJWaW8= +gitlab.com/elixxir/crypto v0.0.7-0.20220901215826-1ceaeb59081f/go.mod h1:IYRYQwpS3zhTVtrir+kGGTqRCMI3It/i6mGW/mxezrM= +gitlab.com/elixxir/ekv v0.2.1-0.20220901224437-ab4cbf94bf8b h1:0cN/WHbFaonJEN+odqyjtSrkuEbBnEnWfggT91svPGc= +gitlab.com/elixxir/ekv v0.2.1-0.20220901224437-ab4cbf94bf8b/go.mod h1:USLD7xeDnuZEavygdrgzNEwZXeLQJK/w1a+htpN+JEU= gitlab.com/elixxir/primitives v0.0.0-20200731184040-494269b53b4d/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg= gitlab.com/elixxir/primitives v0.0.0-20200804170709-a1896d262cd9/go.mod h1:p0VelQda72OzoUckr1O+vPW0AiFe0nyKQ6gYcmFSuF8= gitlab.com/elixxir/primitives v0.0.0-20200804182913-788f47bded40/go.mod h1:tzdFFvb1ESmuTCOl1z6+yf6oAICDxH2NPUemVgoNLxc= gitlab.com/elixxir/primitives v0.0.1/go.mod h1:kNp47yPqja2lHSiS4DddTvFpB/4D9dB2YKnw5c+LJCE= -gitlab.com/elixxir/primitives v0.0.3-0.20220222212109-d412a6e46623/go.mod h1:MtFIyJUQn9P7djzVlBpEYkPNnnWFTjZvw89swoXY+QM= -gitlab.com/elixxir/primitives v0.0.3-0.20220323183834-b98f255361b8/go.mod h1:MtFIyJUQn9P7djzVlBpEYkPNnnWFTjZvw89swoXY+QM= -gitlab.com/elixxir/primitives v0.0.3-0.20220606195757-40f7a589347f h1:CTf2+ewHWYrzp5Ar3RwNvHePfTHyFniJTVjFW4zqoaE= gitlab.com/elixxir/primitives v0.0.3-0.20220606195757-40f7a589347f/go.mod h1:9Bb2+u+CDSwsEU5Droo6saDAXuBDvLRjexpBhPAYxhA= +gitlab.com/elixxir/primitives v0.0.3-0.20220810173935-592f34a88326/go.mod h1:9Bb2+u+CDSwsEU5Droo6saDAXuBDvLRjexpBhPAYxhA= +gitlab.com/elixxir/primitives v0.0.3-0.20220901220638-1acc75fabdc6 h1:/cxxZBP5jTPDpC3zgOx9vV1ojmJyG8pYtkl3IbcewNQ= +gitlab.com/elixxir/primitives v0.0.3-0.20220901220638-1acc75fabdc6/go.mod h1:9Bb2+u+CDSwsEU5Droo6saDAXuBDvLRjexpBhPAYxhA= gitlab.com/xx_network/comms v0.0.0-20200805174823-841427dd5023/go.mod h1:owEcxTRl7gsoM8c3RQ5KAm5GstxrJp5tn+6JfQ4z5Hw= -gitlab.com/xx_network/comms v0.0.4-0.20220315161313-76acb14429ac/go.mod h1:isHnwem0v4rTcwwHP455FhVlFyPcHkHiVz+N3s/uCSI= -gitlab.com/xx_network/comms v0.0.4-0.20220630163702-f3d372ef6acd h1:qYR2V/8KliGyJ2clWpVYhpgwpnfS1MXGpAbrFoOkSWk= gitlab.com/xx_network/comms v0.0.4-0.20220630163702-f3d372ef6acd/go.mod h1:TraR4sW+YxK/2CV+IQUNaAV61+ElrBV0kXd5HLEjM7M= +gitlab.com/xx_network/comms v0.0.4-0.20220902183108-fe7b710b7efe h1:AiivMJmow6QqIZgCck5FFmvdyuq2hHFMAGs6koWXd14= +gitlab.com/xx_network/comms v0.0.4-0.20220902183108-fe7b710b7efe/go.mod h1:TraR4sW+YxK/2CV+IQUNaAV61+ElrBV0kXd5HLEjM7M= gitlab.com/xx_network/crypto v0.0.3/go.mod h1:DF2HYvvCw9wkBybXcXAgQMzX+MiGbFPjwt3t17VRqRE= gitlab.com/xx_network/crypto v0.0.4/go.mod h1:+lcQEy+Th4eswFgQDwT0EXKp4AXrlubxalwQFH5O0Mk= -gitlab.com/xx_network/crypto v0.0.5-0.20220222212031-750f7e8a01f4/go.mod h1:6apvsoHCQJDjO0J4E3uhR3yO9tTz/Mq5be5rjB3tQPU= -gitlab.com/xx_network/crypto v0.0.5-0.20220317171841-084640957d71/go.mod h1:/SJf+R75E+QepdTLh0H1/udsovxx2Q5ru34q1v0umKk= gitlab.com/xx_network/crypto v0.0.5-0.20220606200528-3f886fe49e81/go.mod h1:/SJf+R75E+QepdTLh0H1/udsovxx2Q5ru34q1v0umKk= -gitlab.com/xx_network/crypto v0.0.5-0.20220729193517-1e5e96f39f6e h1:k+M0zo9eyL2mGaduggdQnwxzOIqOIBV9WIt1QCq92sA= gitlab.com/xx_network/crypto v0.0.5-0.20220729193517-1e5e96f39f6e/go.mod h1:/SJf+R75E+QepdTLh0H1/udsovxx2Q5ru34q1v0umKk= +gitlab.com/xx_network/crypto v0.0.5-0.20220902182733-69aad094b487 h1:CsnSSVw2o4PXFKo4OFbivjoLA0RE/Ktx9hxvtQRGNjw= +gitlab.com/xx_network/crypto v0.0.5-0.20220902182733-69aad094b487/go.mod h1:/SJf+R75E+QepdTLh0H1/udsovxx2Q5ru34q1v0umKk= gitlab.com/xx_network/primitives v0.0.0-20200803231956-9b192c57ea7c/go.mod h1:wtdCMr7DPePz9qwctNoAUzZtbOSHSedcK++3Df3psjA= gitlab.com/xx_network/primitives v0.0.0-20200804183002-f99f7a7284da/go.mod h1:OK9xevzWCaPO7b1wiluVJGk7R5ZsuC7pHY5hteZFQug= gitlab.com/xx_network/primitives v0.0.2/go.mod h1:cs0QlFpdMDI6lAo61lDRH2JZz+3aVkHy+QogOB6F/qc= gitlab.com/xx_network/primitives v0.0.4-0.20220222211843-901fa4a2d72b/go.mod h1:9imZHvYwNFobxueSvVtHneZLk9wTK7HQTzxPm+zhFhE= -gitlab.com/xx_network/primitives v0.0.4-0.20220317172007-4d2a53e6e669/go.mod h1:AXVVFt7dDAeIUpOGPiStCcUIKsBXLWbmV/BgZ4T+tOo= gitlab.com/xx_network/primitives v0.0.4-0.20220324193139-b292d1ae6e7e/go.mod h1:AXVVFt7dDAeIUpOGPiStCcUIKsBXLWbmV/BgZ4T+tOo= gitlab.com/xx_network/primitives v0.0.4-0.20220630163313-7890038258c6/go.mod h1:AXVVFt7dDAeIUpOGPiStCcUIKsBXLWbmV/BgZ4T+tOo= -gitlab.com/xx_network/primitives v0.0.4-0.20220712193914-aebd8544396e h1:zRRo/v3KUo3MtpjNJaB03LR+Zi2g1afYF8yKWl1t19o= gitlab.com/xx_network/primitives v0.0.4-0.20220712193914-aebd8544396e/go.mod h1:AXVVFt7dDAeIUpOGPiStCcUIKsBXLWbmV/BgZ4T+tOo= +gitlab.com/xx_network/primitives v0.0.4-0.20220902183448-319596e2fec8 h1:esjWkrzTD+bpTgT5NphhdpX/fbSpZRXLpPaXb4HqkXg= +gitlab.com/xx_network/primitives v0.0.4-0.20220902183448-319596e2fec8/go.mod h1:AXVVFt7dDAeIUpOGPiStCcUIKsBXLWbmV/BgZ4T+tOo= gitlab.com/xx_network/ring v0.0.3-0.20220222211904-da613960ad93 h1:eJZrXqHsMmmejEPWw8gNAt0I8CGAMNO/7C339Zco3TM= gitlab.com/xx_network/ring v0.0.3-0.20220222211904-da613960ad93/go.mod h1:aLzpP2TiZTQut/PVHR40EJAomzugDdHXetbieRClXIM= go.etcd.io/etcd/api/v3 v3.5.4/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A= @@ -510,7 +499,6 @@ golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200707235045-ab33eee955e0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -518,6 +506,7 @@ golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220128200615-198e4374d7ed/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= @@ -680,7 +669,6 @@ golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200917073148-efd3b9a0ff20/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201014080544-cc95f250f6bc/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/ud/manager.go b/ud/manager.go index 5ab902fbb9f21059cb0538f900debc6d69b3e7bf..89edc765fa7820e761dd824b56dd4fb85cfdec4a 100644 --- a/ud/manager.go +++ b/ud/manager.go @@ -114,9 +114,7 @@ func NewOrLoad(user udE2e, comms Comms, follower udNetworkStatus, return nil, err } - err = m.store.StoreUsername(usernameFact) - - return m, nil + return m, m.store.StoreUsername(usernameFact) } // NewManagerFromBackup builds a new user discover manager from a backup. diff --git a/ud/store/facts.go b/ud/store/facts.go index 37ad17b4f7f60cb54a4d708a2f0c8c5ac70c342f..4721b864ead28fb44a6e2a3c7bd7b87196d4c9f8 100644 --- a/ud/store/facts.go +++ b/ud/store/facts.go @@ -55,7 +55,7 @@ func (s *Store) StoreUsername(f fact.Fact) error { s.confirmedFacts[f] = struct{}{} - return s.saveUnconfirmedFacts() + return s.saveConfirmedFacts() } // GetUsername retrieves the username from the Store object. diff --git a/ud/store/facts_test.go b/ud/store/facts_test.go index 9e3143139af82972f958e21d188cb38f84f190c2..3155d383b36e7eb95d218f3389fa62e0ba9be0b6 100644 --- a/ud/store/facts_test.go +++ b/ud/store/facts_test.go @@ -20,9 +20,9 @@ func TestNewStore(t *testing.T) { kv := versioned.NewKV(ekv.MakeMemstore()) - _, err := NewStore(kv) + _, err := newStore(kv) if err != nil { - t.Errorf("NewStore() produced an error: %v", err) + t.Errorf("newStore() produced an error: %v", err) } } @@ -32,9 +32,9 @@ func TestStore_RestoreFromBackUp(t *testing.T) { kv := versioned.NewKV(ekv.MakeMemstore()) - s, err := NewStore(kv) + s, err := newStore(kv) if err != nil { - t.Errorf("NewStore() produced an error: %v", err) + t.Errorf("newStore() produced an error: %v", err) } expected := fact.Fact{ @@ -61,9 +61,9 @@ func TestStore_RestoreFromBackUp_StatefulStore(t *testing.T) { kv := versioned.NewKV(ekv.MakeMemstore()) - s, err := NewStore(kv) + s, err := newStore(kv) if err != nil { - t.Errorf("NewStore() produced an error: %v", err) + t.Errorf("newStore() produced an error: %v", err) } confirmId := "confirm" @@ -90,9 +90,9 @@ func TestStore_RestoreFromBackUp_StatefulStore(t *testing.T) { func TestStore_ConfirmFact(t *testing.T) { kv := versioned.NewKV(ekv.MakeMemstore()) - expectedStore, err := NewStore(kv) + expectedStore, err := newStore(kv) if err != nil { - t.Errorf("NewStore() produced an error: %v", err) + t.Errorf("newStore() produced an error: %v", err) } confirmId := "confirm" @@ -128,9 +128,9 @@ func TestStore_ConfirmFact(t *testing.T) { func TestStore_StoreUnconfirmedFact(t *testing.T) { kv := versioned.NewKV(ekv.MakeMemstore()) - expectedStore, err := NewStore(kv) + expectedStore, err := newStore(kv) if err != nil { - t.Errorf("NewStore() produced an error: %v", err) + t.Errorf("newStore() produced an error: %v", err) } confirmId := "confirm" @@ -156,9 +156,9 @@ func TestStore_StoreUnconfirmedFact(t *testing.T) { func TestStore_DeleteFact(t *testing.T) { kv := versioned.NewKV(ekv.MakeMemstore()) - expectedStore, err := NewStore(kv) + expectedStore, err := newStore(kv) if err != nil { - t.Errorf("NewStore() produced an error: %v", err) + t.Errorf("newStore() produced an error: %v", err) } expected := fact.Fact{ @@ -188,9 +188,9 @@ func TestStore_DeleteFact(t *testing.T) { func TestStore_BackUpMissingFacts(t *testing.T) { kv := versioned.NewKV(ekv.MakeMemstore()) - expectedStore, err := NewStore(kv) + expectedStore, err := newStore(kv) if err != nil { - t.Errorf("NewStore() produced an error: %v", err) + t.Errorf("newStore() produced an error: %v", err) } email := fact.Fact{ @@ -228,9 +228,9 @@ func TestStore_BackUpMissingFacts(t *testing.T) { func TestStore_BackUpMissingFacts_DuplicateFactType(t *testing.T) { kv := versioned.NewKV(ekv.MakeMemstore()) - expectedStore, err := NewStore(kv) + expectedStore, err := newStore(kv) if err != nil { - t.Errorf("NewStore() produced an error: %v", err) + t.Errorf("newStore() produced an error: %v", err) } email := fact.Fact{ @@ -270,9 +270,9 @@ func TestStore_BackUpMissingFacts_DuplicateFactType(t *testing.T) { func TestStore_GetFacts(t *testing.T) { kv := versioned.NewKV(ekv.MakeMemstore()) - testStore, err := NewStore(kv) + testStore, err := newStore(kv) if err != nil { - t.Errorf("NewStore() produced an error: %v", err) + t.Errorf("newStore() produced an error: %v", err) } emailFact := fact.Fact{ @@ -324,9 +324,9 @@ func TestStore_GetFacts(t *testing.T) { func TestStore_GetFactStrings(t *testing.T) { kv := versioned.NewKV(ekv.MakeMemstore()) - testStore, err := NewStore(kv) + testStore, err := newStore(kv) if err != nil { - t.Errorf("NewStore() produced an error: %v", err) + t.Errorf("newStore() produced an error: %v", err) } emailFact := fact.Fact{ diff --git a/ud/store/store.go b/ud/store/store.go index 11638fd53c17afcb61043125fa0b0404977d7030..5e5cfaaa8af245e9467e08bd4fa8d809c4b77b10 100644 --- a/ud/store/store.go +++ b/ud/store/store.go @@ -28,8 +28,7 @@ const ( // Error constants const ( - malformedFactErr = "Failed to load due to " + - "malformed fact" + malformedFactErr = "Failed to load due to malformed fact %s" loadConfirmedFactErr = "Failed to load confirmed facts" loadUnconfirmedFactErr = "Failed to load unconfirmed facts" saveUnconfirmedFactErr = "Failed to save unconfirmed facts" @@ -48,13 +47,13 @@ type Store struct { mux sync.RWMutex } -// NewStore creates a new, empty Store object. -func NewStore(kv *versioned.KV) (*Store, error) { +// newStore creates a new, empty Store object. +func newStore(kv *versioned.KV) (*Store, error) { kv = kv.Prefix(prefix) s := &Store{ - confirmedFacts: make(map[fact.Fact]struct{}, 0), - unconfirmedFacts: make(map[string]fact.Fact, 0), + confirmedFacts: make(map[fact.Fact]struct{}), + unconfirmedFacts: make(map[string]fact.Fact), kv: kv, } @@ -130,14 +129,11 @@ func (s *Store) saveUnconfirmedFacts() error { func NewOrLoadStore(kv *versioned.KV) (*Store, error) { s := &Store{ - confirmedFacts: make(map[fact.Fact]struct{}, 0), - unconfirmedFacts: make(map[string]fact.Fact, 0), - kv: kv.Prefix(prefix), + kv: kv.Prefix(prefix), } - if err := s.load(); err != nil { if !s.kv.Exists(err) { - return s, s.save() + return newStore(kv) } else { return nil, err } @@ -205,11 +201,11 @@ func (s *Store) loadUnconfirmedFacts() error { ///////////////////////////////////////////////////////////////// // unconfirmedFactDisk is an object used to store the data of an unconfirmed fact. -// It combines the key (confirmationId) and fact data (stringifiedFact) into a +// It combines the key (ConfirmationId) and fact data (StringifiedFact) into a // single JSON-able object. type unconfirmedFactDisk struct { - confirmationId string - stringifiedFact string + ConfirmationId string + StringifiedFact string } // marshalConfirmedFacts is a marshaller which serializes the data @@ -229,8 +225,8 @@ func (s *Store) marshalUnconfirmedFacts() ([]byte, error) { ufdList := make([]unconfirmedFactDisk, 0, len(s.unconfirmedFacts)) for confirmationId, f := range s.unconfirmedFacts { ufd := unconfirmedFactDisk{ - confirmationId: confirmationId, - stringifiedFact: f.Stringify(), + ConfirmationId: confirmationId, + StringifiedFact: f.Stringify(), } ufdList = append(ufdList, ufd) } @@ -250,10 +246,12 @@ func (s *Store) unmarshalConfirmedFacts(data []byte) (map[fact.Fact]struct{}, er // Deserialize the list into a map confirmedFacts := make(map[fact.Fact]struct{}, 0) - for _, fStr := range fStrings { + for i := range fStrings { + fStr := fStrings[i] f, err := fact.UnstringifyFact(fStr) if err != nil { - return nil, errors.WithMessage(err, malformedFactErr) + return confirmedFacts, errors.WithMessagef(err, + malformedFactErr, string(data)) } confirmedFacts[f] = struct{}{} @@ -274,13 +272,15 @@ func (s *Store) unmarshalUnconfirmedFacts(data []byte) (map[string]fact.Fact, er // Deserialize the list into a map unconfirmedFacts := make(map[string]fact.Fact, 0) - for _, ufd := range ufdList { - f, err := fact.UnstringifyFact(ufd.stringifiedFact) + for i := range ufdList { + ufd := ufdList[i] + f, err := fact.UnstringifyFact(ufd.StringifiedFact) if err != nil { - return nil, errors.WithMessage(err, malformedFactErr) + return unconfirmedFacts, errors.WithMessagef(err, + malformedFactErr, string(data)) } - unconfirmedFacts[ufd.confirmationId] = f + unconfirmedFacts[ufd.ConfirmationId] = f } return unconfirmedFacts, nil diff --git a/ud/store/store_test.go b/ud/store/store_test.go index 33485b43e06dedc59b362410b2378ba535f55ce7..a319d81284e122e420c89efc3a3828826c95ae3a 100644 --- a/ud/store/store_test.go +++ b/ud/store/store_test.go @@ -20,9 +20,9 @@ import ( func TestNewOrLoadStore_LoadStore(t *testing.T) { kv := versioned.NewKV(ekv.MakeMemstore()) - expectedStore, err := NewStore(kv) + expectedStore, err := newStore(kv) if err != nil { - t.Errorf("NewStore() produced an error: %v", err) + t.Errorf("newStore() produced an error: %v", err) } receivedStore, err := NewOrLoadStore(kv) @@ -66,9 +66,9 @@ func TestNewOrLoadStore_NewStore(t *testing.T) { func TestStore_MarshalUnmarshal_ConfirmedFacts(t *testing.T) { kv := versioned.NewKV(ekv.MakeMemstore()) - expectedStore, err := NewStore(kv) + expectedStore, err := newStore(kv) if err != nil { - t.Errorf("NewStore() produced an error: %v", err) + t.Errorf("newStore() produced an error: %v", err) } data, err := expectedStore.kv.Get(confirmedFactKey, version) @@ -82,7 +82,7 @@ func TestStore_MarshalUnmarshal_ConfirmedFacts(t *testing.T) { } if !bytes.Equal(expectedData, data.Data) { - t.Errorf("NewStore() returned incorrect Store."+ + t.Errorf("newStore() returned incorrect Store."+ "\nexpected: %+v\nreceived: %+v", expectedData, data.Data) } @@ -102,9 +102,9 @@ func TestStore_MarshalUnmarshal_ConfirmedFacts(t *testing.T) { func TestStore_MarshalUnmarshal_UnconfirmedFacts(t *testing.T) { kv := versioned.NewKV(ekv.MakeMemstore()) - expectedStore, err := NewStore(kv) + expectedStore, err := newStore(kv) if err != nil { - t.Errorf("NewStore() produced an error: %v", err) + t.Errorf("newStore() produced an error: %v", err) } data, err := expectedStore.kv.Get(unconfirmedFactKey, version) @@ -118,7 +118,7 @@ func TestStore_MarshalUnmarshal_UnconfirmedFacts(t *testing.T) { } if !bytes.Equal(expectedData, data.Data) { - t.Errorf("NewStore() returned incorrect Store."+ + t.Errorf("newStore() returned incorrect Store."+ "\nexpected: %+v\nreceived: %+v", expectedData, data.Data) }