Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Added DHCPv4 server
* Added more modifiers
* Fixed some bugs
|
|
|
|
|
|
|
|
|
|
Fixes #156
Build a simple client like so:
```
package main
import (
"fmt"
"time"
"github.com/insomniacslk/dhcp/dhcpv4"
)
func main() {
client := dhcpv4.Client{ReadTimeout: 5 * time.Second, WriteTimeout: 5 * time.Second}
conversation, err := client.Exchange("en0", nil)
if err != nil {
fmt.Println(err)
}
for _, m := range conversation {
fmt.Println(m.Summary())
}
}
```
and run:
```
$ sudo ./main
Password:
DHCPv4
opcode=BootRequest
hwtype=Ethernet
hwaddrlen=6
hopcount=0
transactionid=0xabfad715
numseconds=0
flags=Broadcast (0x8000)
clientipaddr=0.0.0.0
youripaddr=0.0.0.0
serveripaddr=0.0.0.0
gatewayipaddr=0.0.0.0
clienthwaddr=8c:85:90:20:2e:33
serverhostname=
bootfilename=
options=
DHCP Message Type -> DISCOVER
Parameter Request List -> [Subnet Mask, Router, Domain Name, Domain Name Server]
End -> []
DHCPv4
opcode=BootReply
hwtype=Ethernet
hwaddrlen=6
hopcount=0
transactionid=0xabfad715
numseconds=0
flags=Broadcast (0x8000)
clientipaddr=0.0.0.0
youripaddr=192.168.0.105
serveripaddr=0.0.0.0
gatewayipaddr=0.0.0.0
clienthwaddr=8c:85:90:20:2e:33
serverhostname=
bootfilename=
options=
DHCP Message Type -> OFFER
Server Identifier -> 192.168.0.1
IP Addresses Lease Time -> 5648
Subnet Mask -> ffffff00
Routers -> 192.168.0.1
Domain Name Servers -> 8.8.8.8, 8.8.4.4
End -> []
DHCPv4
opcode=BootRequest
hwtype=Ethernet
hwaddrlen=6
hopcount=0
transactionid=0xabfad715
numseconds=0
flags=Broadcast (0x8000)
clientipaddr=0.0.0.0
youripaddr=0.0.0.0
serveripaddr=192.168.0.1
gatewayipaddr=0.0.0.0
clienthwaddr=8c:85:90:20:2e:33
serverhostname=
bootfilename=
options=
DHCP Message Type -> REQUEST
Requested IP Address -> 192.168.0.105
Server Identifier -> 192.168.0.1
End -> []
DHCPv4
opcode=BootReply
hwtype=Ethernet
hwaddrlen=6
hopcount=0
transactionid=0xabfad715
numseconds=0
flags=Broadcast (0x8000)
clientipaddr=0.0.0.0
youripaddr=192.168.0.105
serveripaddr=0.0.0.0
gatewayipaddr=0.0.0.0
clienthwaddr=8c:85:90:20:2e:33
serverhostname=
bootfilename=
options=
DHCP Message Type -> ACK
Server Identifier -> 192.168.0.1
IP Addresses Lease Time -> 7200
Subnet Mask -> ffffff00
Routers -> 192.168.0.1
Domain Name Servers -> 8.8.8.8, 8.8.4.4
End -> []
```
|
|
* dhcpv4: Add OptRootPath
Adds a root path option that supports DHCPv4 option 17
* Add root path parsing to giant option parsing switch
|
|
As @insomiacslk pointed out in #161, it's probably better to return a
pointer rather than a (MessageType, bool) combo.
|
|
|
|
This is a helper function to extract the BSDP message type from a given
`dhcpv4.DHCPv4` packet structure. It's useful in helping to identify
what kind of BSDP packet you're dealing with (since the distinction is
only made in one of the vendor-specific options encapsulated in Option
43).
|
|
While parsing boot images, the current code reads to the end of the data
stream; however, this could lead to reading past the boot image option
and reading into the next option. Instead, contain how far the option
parsing code reads by only looking at the max length specified in the
option.
|
|
|
|
|
|
|
|
|
|
* Added String methods for types
* Reverted change on bsdp.OptionCode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|