summaryrefslogtreecommitdiffhomepage
path: root/dhcpv6/dhcpv6message.go
diff options
context:
space:
mode:
Diffstat (limited to 'dhcpv6/dhcpv6message.go')
-rw-r--r--dhcpv6/dhcpv6message.go38
1 files changed, 22 insertions, 16 deletions
diff --git a/dhcpv6/dhcpv6message.go b/dhcpv6/dhcpv6message.go
index e68284f..17f371a 100644
--- a/dhcpv6/dhcpv6message.go
+++ b/dhcpv6/dhcpv6message.go
@@ -4,6 +4,7 @@ import (
"errors"
"fmt"
"net"
+ "strings"
"time"
"github.com/insomniacslk/dhcp/iana"
@@ -549,22 +550,27 @@ func (m *Message) String() string {
// Summary prints all options associated with this message.
func (m *Message) Summary() string {
- ret := fmt.Sprintf(
- "Message\n"+
- " messageType=%s\n"+
- " transactionid=%s\n",
- m.MessageType,
- m.TransactionID,
- )
- ret += " options=["
- if len(m.Options.Options) > 0 {
- ret += "\n"
- }
- for _, opt := range m.Options.Options {
- ret += fmt.Sprintf(" %v\n", opt.String())
- }
- ret += " ]\n"
- return ret
+ return m.LongString(0)
+}
+
+// LongString prints all options associated with this message.
+func (m *Message) LongString(spaceIndent int) string {
+ indent := strings.Repeat(" ", spaceIndent)
+
+ var s strings.Builder
+ s.WriteString("Message{\n")
+ s.WriteString(indent)
+ s.WriteString(fmt.Sprintf(" MessageType=%s\n", m.MessageType))
+ s.WriteString(indent)
+ s.WriteString(fmt.Sprintf(" TransactionID=%s\n", m.TransactionID))
+ s.WriteString(indent)
+ s.WriteString(" Options: ")
+ s.WriteString(m.Options.Options.LongString(spaceIndent + 2))
+ s.WriteString("\n")
+ s.WriteString(indent)
+ s.WriteString("}")
+
+ return s.String()
}
// ToBytes returns the serialized version of this message as defined by RFC