Skip to content
Snippets Groups Projects
Commit a8193a9a authored by Richard T. Carback III's avatar Richard T. Carback III
Browse files

Merge branch 'hotfix/DivideByZero' into 'release'

fix divide by zero issue

See merge request !502
parents 5c143de2 d48dcd29
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