summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2020-06-27remove timeout code from Release(), since it is unnecessary after some more ↵Hu Jun
testing Signed-off-by: Hu Jun <hujun.work@gmail.com>
2020-06-27fix a broken test in server_test.go, caused by update of Client.Request() ↵Hu Jun
which now returns a lease instead of ack Signed-off-by: Hu Jun <hujun.work@gmail.com>
2020-06-26- Client.Release() now use existing conn to send packetHu Jun
- update example_lease_test.go accordingly - add lease_test.go, which contain some test cases for lease&release, using socketpair Signed-off-by: Hu Jun <hujun.work@gmail.com>
2020-06-24fix example_lease_test.go that caused import loopHu Jun
Signed-off-by: Hu Jun <hujun.work@gmail.com>
2020-06-23- make changes based on discussion on PR #386 of insomniacslk/dhcpHu Jun
Signed-off-by: Hu Jun <hujun.work@gmail.com>
2020-06-23Merge branch 'master' of https://github.com/insomniacslk/dhcp into ↵Hu Jun
dhcpv4_release
2020-06-20dhcpv4: Fix a panic in parsing of route optionsAnatole Denis
When parsing a route option with a mask size >32, there would be a panic at option_routes.go:47 as user-supplied data is used without verification for a slice bound, causing a read of masksize/8, whic is possibly >4 bytes. Instead reject the invalid route Signed-off-by: Anatole Denis <natolumin@unverle.fr>
2020-06-20dhcpv4: Also write out 0-length optionsAnatole Denis
When there was a 0-length generic option, it would be omitted. Rapid commit (option 80) is a 0-length option with a length tag. There could also be 0-length options in the vendor extensions, and the RFC states that they should be written out: > Any options defined subsequent to this document should contain a > length octet even if the length is fixed or zero. Signed-off-by: Anatole Denis <natolumin@unverle.fr>
2020-06-20dhcpv4: Remove hlen parameter special case in ToBytes()Anatole Denis
There is a special case for when ClientHwAddr is empty, which seems to only apply when creating a packet with New(), which defaults to HWType==Ethernet but doesn't assign the ClientHwAddr field. All the other New*() constructors assign a hardware address and don't use this codepath Remove this special case and instead make New() generate an almost-correct packet in the first place, so that ToBytes() can stay more generic Signed-off-by: Anatole Denis <natolumin@unverle.fr>
2020-06-20dhcpv4: Avoid a panic in ToBytes() with long stringsAnatole Denis
When BootFileName is longer than 128 bytes or ServerHostName is longer than 64 bytes, trying to null-terminate the strings when writing out the packet causes a panic. Since the ToBytes() function cannot return errors, silently truncate the string instead (we do the same with ClientHWAddr if it is longer than 16 bytes for example) Signed-off-by: Anatole Denis <natolumin@unverle.fr>
2020-06-20dhcpv4: Consolidate identical tests into 1Anatole Denis
Those 2 tests did the exact same thing: check that an invalid packet raises an error when parsed. Merge them into the same test, so that we can easily add more test cases to the list Signed-off-by: Anatole Denis <natolumin@unverle.fr>
2020-06-20dhcpv4: Add go-fuzz endpointAnatole Denis
Signed-off-by: Anatole Denis <natolumin@unverle.fr>
2020-06-18fix some lint complains in example_lease_test.goHu Jun
Signed-off-by: Hu Jun <hujun.work@gmail.com>
2020-06-18- move the example to a separate file example_lease_test.goHu Jun
- fix a few more lint complains Signed-off-by: Hu Jun <hujun.work@gmail.com>
2020-06-17fix some lint errorsHu Jun
Signed-off-by: Hu Jun <hujun.work@gmail.com>
2020-06-17add lease&release support for nclient4Hu Jun
Signed-off-by: Hu Jun <hujun.work@gmail.com>
2020-06-01Merge pull request #384 from mcphailtom/add_clientlinklayeraddress_rfc6939Pablo Mazzini
Add Client Link-Layer Address option for RFC6939 support
2020-06-01Merge branch 'master' into add_clientlinklayeraddress_rfc6939Pablo Mazzini
2020-06-01pin golangci-lint versionPablo Mazzini
Signed-off-by: Pablo Mazzini <pmazzini@gmail.com>
2020-06-01Add Client Link-Layer Address option for RFC 6939 support.Tom McPhail
Signed-off-by: Tom McPhail <tom.mcphail@icloud.com>
2020-04-21Generate new TransactionID for RequestTom McPhail
Signed-off-by: Tom McPhail <tom.mcphail@icloud.com>
2020-04-02adding fallback logic to remote id parsingakshay navale
Signed-off-by: akshay navale <akshaynawale@gmail.com>
2020-03-28update README and CONTRIBUTORSPablo Mazzini
Signed-off-by: Pablo Mazzini <pmazzini@gmail.com>
2020-03-28Merge pull request #371 from tanis2000/server-loggerPablo Mazzini
Support for custom logger in servers
2020-03-28remove some testsPablo Mazzini
Signed-off-by: Pablo Mazzini <pmazzini@gmail.com>
2020-03-19Added support for a custom logger when instantiating the server4 orValerio Santinelli
server6 object Signed-off-by: Valerio Santinelli <santinelli@altralogica.it>
2020-03-11v6: introduce Prefix optionsChris Koch
IAPD has PDOptions which allows IAPrefix and StatusCode. IAPrefix has PrefixOptions which allow StatusCode. Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-11v6: rename IAPD option to be shorterChris Koch
Also removes superfluous GetOne/Del proxy functions. Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-11rtr7 has moved to go modulesChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-10dhcpv6 fqdn: fix domain encodingPablo Mazzini
Signed-off-by: Pablo Mazzini <pmazzini@gmail.com>
2020-03-10Merge pull request #363 from mikma/feature/ia-pdPablo Mazzini
dhcpv6: add IA_PD to request from advertise
2020-03-10dhcpv6: add IA_PD to request from advertiseMikael Magnusson
Add the IA_PD option to the request from the advertise if present. Add WithIAPD() as modifier and test. Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net>
2020-03-09v6: add RemoteID getter to RelayOptionsChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-09v6: getter for InterfaceID on RelayOptionsChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-09v6: add RelayOptions with RelayMsgChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-09Merge pull request #366 from hugelgupf/vendorsPablo Mazzini
dhcp6: fix VendorOpts getter
2020-03-09Merge branch 'master' into vendorsPablo Mazzini
2020-03-09Merge pull request #365 from hugelgupf/write16Pablo Mazzini
dhcpv6: always write 16-byte IPs
2020-03-09Merge branch 'master' into write16Pablo Mazzini
2020-03-09Merge branch 'master' into vendorsPablo Mazzini
2020-03-09Merge pull request #361 from mikma/feature/dhcp4-o-dhcp6Pablo Mazzini
dhcpv6: add DHCPv4-over-DHCPv6 support
2020-03-09Merge branch 'master' into feature/dhcp4-o-dhcp6Pablo Mazzini
2020-03-09Merge branch 'master' into write16Pablo Mazzini
2020-03-09Merge pull request #367 from pmazzini/nftablesPablo Mazzini
fix travis: run rtr7 checks on Go > 1.12
2020-03-09fix travis: run rtr7 checks on Go > 1.12Pablo Mazzini
Signed-off-by: Pablo Mazzini <pmazzini@gmail.com>
2020-03-09Merge branch 'master' into write16Pablo Mazzini
2020-03-09Merge branch 'master' into feature/dhcp4-o-dhcp6Pablo Mazzini
2020-03-09v6: add IA AddressOptions (StatusCode only)Chris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-09netconf: use new IANA and IAAddress gettersChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-09v6: add IdentityOptionsChris Koch
IANA and IATA options may contain Status Code and IAAddr options. Signed-off-by: Chris Koch <chrisko@google.com>