From 8d31f9712370c4a4cd8a39ef640fea42c3152ff5 Mon Sep 17 00:00:00 2001 From: Matt Drollette Date: Mon, 16 Mar 2015 22:35:34 -0500 Subject: [PATCH] 500 error if there are no su3s --- reseed/server.go | 2 +- reseed/service.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/reseed/server.go b/reseed/server.go index 5eb958e..883d921 100644 --- a/reseed/server.go +++ b/reseed/server.go @@ -80,7 +80,7 @@ func (s *Server) reseedHandler(w http.ResponseWriter, r *http.Request) { su3Bytes, err := s.Reseeder.PeerSu3Bytes(peer) if nil != err { - http.Error(w, "500 Unable to get SU3", http.StatusInternalServerError) + http.Error(w, "500 Unable to serve su3", http.StatusInternalServerError) return } diff --git a/reseed/service.go b/reseed/service.go index 42bd6a6..1e35fd1 100644 --- a/reseed/service.go +++ b/reseed/service.go @@ -3,6 +3,7 @@ package reseed import ( "crypto/rsa" "crypto/sha256" + "errors" "fmt" "hash/crc32" "io/ioutil" @@ -199,6 +200,10 @@ func (rs *ReseederImpl) PeerSu3Bytes(peer Peer) ([]byte, error) { m := <-rs.su3s defer func() { rs.su3s <- m }() + if 0 == len(m) { + return nil, errors.New("404") + } + return m[peer.Hash()%len(m)], nil }