Skip to content
Snippets Groups Projects
Commit d48dcd29 authored by Jake Taylor's avatar Jake Taylor
Browse files

fix divide by zero issue

parent 5c143de2
Branches
Tags
No related merge requests found
...@@ -23,10 +23,14 @@ type HostGetter interface { ...@@ -23,10 +23,14 @@ type HostGetter interface {
GetHost(hostId *id.ID) (*connect.Host, bool) GetHost(hostId *id.ID) (*connect.Host, bool)
} }
// Get the Host of a random gateway in the NDF
func Get(ndf *ndf.NetworkDefinition, hg HostGetter, rng io.Reader) (*connect.Host, error) { func Get(ndf *ndf.NetworkDefinition, hg HostGetter, rng io.Reader) (*connect.Host, error) {
// Get a random gateway gwLen := uint32(len(ndf.Gateways))
gateways := ndf.Gateways if gwLen == 0 {
gwIdx := ReadRangeUint32(0, uint32(len(gateways)), rng) return nil, errors.Errorf("no gateways available")
}
gwIdx := ReadRangeUint32(0, gwLen, rng)
gwID, err := id.Unmarshal(ndf.Nodes[gwIdx].ID) gwID, err := id.Unmarshal(ndf.Nodes[gwIdx].ID)
if err != nil { if err != nil {
return nil, errors.WithMessage(err, "failed to get Gateway") return nil, errors.WithMessage(err, "failed to get Gateway")
...@@ -40,6 +44,7 @@ func Get(ndf *ndf.NetworkDefinition, hg HostGetter, rng io.Reader) (*connect.Hos ...@@ -40,6 +44,7 @@ func Get(ndf *ndf.NetworkDefinition, hg HostGetter, rng io.Reader) (*connect.Hos
return gwHost, nil return gwHost, nil
} }
// Get the last gateway Host from the given RoundInfo
func GetLast(hg HostGetter, ri *mixmessages.RoundInfo) (*connect.Host, error) { func GetLast(hg HostGetter, ri *mixmessages.RoundInfo) (*connect.Host, error) {
roundTop := ri.GetTopology() roundTop := ri.GetTopology()
lastGw, err := id.Unmarshal(roundTop[len(roundTop)-1]) lastGw, err := id.Unmarshal(roundTop[len(roundTop)-1])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment