diff options
Diffstat (limited to 'examples/server6')
-rw-r--r-- | examples/server6/README.md | 10 | ||||
-rw-r--r-- | examples/server6/main.go | 27 | ||||
-rwxr-xr-x | examples/server6/server6 | bin | 0 -> 2842321 bytes |
3 files changed, 37 insertions, 0 deletions
diff --git a/examples/server6/README.md b/examples/server6/README.md new file mode 100644 index 0000000..490fa72 --- /dev/null +++ b/examples/server6/README.md @@ -0,0 +1,10 @@ +# DHCPv6 server + +A DHCPv6 server requires the user to implement a request handler. Basically the +user has to provide the logic to answer to each packet. The library offers a few +facilities to forge response packets, e.g. `NewAdvertiseFromSolicit`, +`NewReplyFromDHCPv6Message` and so on. Look at the source code to see what's +available. + +An example server that will print (but not reply to) the client's request is +shown in [main.go](./main.go) diff --git a/examples/server6/main.go b/examples/server6/main.go new file mode 100644 index 0000000..174f798 --- /dev/null +++ b/examples/server6/main.go @@ -0,0 +1,27 @@ +package main + +import ( + "log" + "net" + + "github.com/insomniacslk/dhcp/dhcpv6" + "github.com/insomniacslk/dhcp/dhcpv6/server6" +) + +func handler(conn net.PacketConn, peer net.Addr, m dhcpv6.DHCPv6) { + // this function will just print the received DHCPv6 message, without replying + log.Print(m.Summary()) +} + +func main() { + laddr := net.UDPAddr{ + IP: net.ParseIP("::1"), + Port: dhcpv6.DefaultServerPort, + } + server := server6.NewServer(laddr, handler) + + defer server.Close() + if err := server.ActivateAndServe(); err != nil { + log.Panic(err) + } +} diff --git a/examples/server6/server6 b/examples/server6/server6 Binary files differnew file mode 100755 index 0000000..16f6153 --- /dev/null +++ b/examples/server6/server6 |