500 error if there are no su3s
This commit is contained in:
@@ -80,7 +80,7 @@ func (s *Server) reseedHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
su3Bytes, err := s.Reseeder.PeerSu3Bytes(peer)
|
su3Bytes, err := s.Reseeder.PeerSu3Bytes(peer)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
http.Error(w, "500 Unable to get SU3", http.StatusInternalServerError)
|
http.Error(w, "500 Unable to serve su3", http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package reseed
|
|||||||
import (
|
import (
|
||||||
"crypto/rsa"
|
"crypto/rsa"
|
||||||
"crypto/sha256"
|
"crypto/sha256"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"hash/crc32"
|
"hash/crc32"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
@@ -199,6 +200,10 @@ func (rs *ReseederImpl) PeerSu3Bytes(peer Peer) ([]byte, error) {
|
|||||||
m := <-rs.su3s
|
m := <-rs.su3s
|
||||||
defer func() { rs.su3s <- m }()
|
defer func() { rs.su3s <- m }()
|
||||||
|
|
||||||
|
if 0 == len(m) {
|
||||||
|
return nil, errors.New("404")
|
||||||
|
}
|
||||||
|
|
||||||
return m[peer.Hash()%len(m)], nil
|
return m[peer.Hash()%len(m)], nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user