summaryrefslogtreecommitdiffhomepage
path: root/examples/server6
diff options
context:
space:
mode:
Diffstat (limited to 'examples/server6')
-rw-r--r--examples/server6/README.md10
-rw-r--r--examples/server6/main.go27
-rwxr-xr-xexamples/server6/server6bin0 -> 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
new file mode 100755
index 0000000..16f6153
--- /dev/null
+++ b/examples/server6/server6
Binary files differ