diff options
author | Sean Karlage <skarlage@fb.com> | 2018-08-15 10:17:59 -0700 |
---|---|---|
committer | Sean Karlage <skarlage@fb.com> | 2018-08-15 10:17:59 -0700 |
commit | 3a9b7911aa8d69f16a3d11bdaf2dc757470192d0 (patch) | |
tree | a6efb24290b69204d5f002d739a00d1675d27d10 /dhcpv4 | |
parent | 78d75f4d4be95787bd3e8b1bf28172059d09273d (diff) | |
parent | 926a42d133247d7a4fa388548e4323b77421f798 (diff) |
Merge branch 'master' into bsdp-acks
Diffstat (limited to 'dhcpv4')
-rw-r--r-- | dhcpv4/options.go | 3 | ||||
-rw-r--r-- | dhcpv4/options_test.go | 5 |
2 files changed, 4 insertions, 4 deletions
diff --git a/dhcpv4/options.go b/dhcpv4/options.go index d869b7d..02fa6e4 100644 --- a/dhcpv4/options.go +++ b/dhcpv4/options.go @@ -126,6 +126,9 @@ func OptionsFromBytesWithoutMagicCookie(data []byte) ([]Option, error) { return nil, err } options = append(options, opt) + if opt.Code() == OptionEnd { + break + } // Options with zero length have no length byte, so here we handle the // ones with nonzero length diff --git a/dhcpv4/options_test.go b/dhcpv4/options_test.go index 0268483..899fb2c 100644 --- a/dhcpv4/options_test.go +++ b/dhcpv4/options_test.go @@ -167,12 +167,9 @@ func TestOptionsFromBytes(t *testing.T) { } opts, err := OptionsFromBytes(options) require.NoError(t, err) - require.Equal(t, 5, len(opts)) + require.Equal(t, 2, len(opts)) require.Equal(t, opts[0].(*OptionGeneric), &OptionGeneric{OptionCode: OptionNameServer, Data: []byte{192, 168, 1, 1}}) require.Equal(t, opts[1].(*OptionGeneric), &OptionGeneric{OptionCode: OptionEnd}) - require.Equal(t, opts[2].(*OptionGeneric), &OptionGeneric{OptionCode: OptionPad}) - require.Equal(t, opts[3].(*OptionGeneric), &OptionGeneric{OptionCode: OptionPad}) - require.Equal(t, opts[4].(*OptionGeneric), &OptionGeneric{OptionCode: OptionPad}) } func TestOptionsFromBytesZeroLength(t *testing.T) { |