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 }