diff --git a/server/broadcast.go b/server/broadcast.go index 43b414d482..89986386ad 100755 --- a/server/broadcast.go +++ b/server/broadcast.go @@ -102,6 +102,9 @@ func (cfg *BroadcastConfig) GetCapabilitiesMaxPrice(caps common.CapabilityCompar return cfg.MaxPrice() } netCaps := caps.ToNetCapabilities() + if netCaps == nil || netCaps.Constraints == nil { + return cfg.MaxPrice() + } price := big.NewRat(0, 1) for capabilityInt, constraints := range netCaps.Constraints.PerCapability { for modelID := range constraints.Models { diff --git a/server/broadcast_test.go b/server/broadcast_test.go index 3b3db77758..f9fa015222 100644 --- a/server/broadcast_test.go +++ b/server/broadcast_test.go @@ -1895,6 +1895,14 @@ func TestGetCapabilitiesMaxPrice(t *testing.T) { cfg.SetMaxPrice(price) assert.Equal(t, big.NewRat(10, 1), cfg.GetCapabilitiesMaxPrice(nil)) + // Should return the max price if net capabilities are nil. + capabilitiesNilNet := &StubCapabilityComparator{NetCaps: nil} + assert.Equal(t, big.NewRat(10, 1), cfg.GetCapabilitiesMaxPrice(capabilitiesNilNet)) + + // Should return the max price if constraints are nil. + capabilitiesNilConstraints := &StubCapabilityComparator{NetCaps: &net.Capabilities{}} + assert.Equal(t, big.NewRat(10, 1), cfg.GetCapabilitiesMaxPrice(capabilitiesNilConstraints)) + // Create capabilities object. capability1 := core.Capability(1) modelID1 := "model1"