aboutsummaryrefslogtreecommitdiff
path: root/ber/dump.go
diff options
context:
space:
mode:
Diffstat (limited to 'ber/dump.go')
-rw-r--r--ber/dump.go12
1 files changed, 5 insertions, 7 deletions
diff --git a/ber/dump.go b/ber/dump.go
index d207366..75d7f52 100644
--- a/ber/dump.go
+++ b/ber/dump.go
@@ -8,7 +8,10 @@ func Dump(b []byte) string {
return newState(b).dump(0)
}
-func (s *state) universal(h Header) string {
+func (s *state) primitive(h Header) string {
+ if h.Class != classUniversal {
+ return fmt.Sprint(s.next())
+ }
switch h.Tag {
case tagInteger, tagEnumerated:
return fmt.Sprint(s.unmarshalInt())
@@ -34,12 +37,7 @@ func (s *state) dump(indent int) (ret string) {
ret += fmt.Sprintf("%3d: %*s", s.Len(), 2*indent, "")
switch h.Kind {
case kindPrimitive:
- switch h.Class {
- case classUniversal:
- ret += fmt.Sprintln(h, "=", s.universal(h))
- default:
- ret += fmt.Sprintln(h, "=", s.next())
- }
+ ret += fmt.Sprintln(h, "=", s.primitive(h))
case kindConstructed:
ret += fmt.Sprintln(h, "→")
ret += s.subState().dump(indent + 1)