etcdhttp: never return 0 from genId

This commit is contained in:
Blake Mizerany 2014-08-31 18:41:39 -07:00 committed by Yicheng Qin
parent 56c6fab53c
commit 6d7acc6b1e

View File

@ -86,12 +86,18 @@ func (h Handler) serveRaft(ctx context.Context, w http.ResponseWriter, r *http.R
}
}
// genId generates an random id that is: n < 0 < n.
func genId() int64 {
b := make([]byte, 8)
if _, err := io.ReadFull(rand.Reader, b); err != nil {
panic(err) // really bad stuff happened
for {
b := make([]byte, 8)
if _, err := io.ReadFull(rand.Reader, b); err != nil {
panic(err) // really bad stuff happened
}
n := int64(binary.BigEndian.Uint64(b))
if n != 0 {
return n
}
}
return int64(binary.BigEndian.Uint64(b))
}
func parseRequest(r *http.Request) (etcdserverpb.Request, error) {