aboutsummaryrefslogtreecommitdiff
path: root/ber/marshal.go
diff options
context:
space:
mode:
Diffstat (limited to 'ber/marshal.go')
-rw-r--r--ber/marshal.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/ber/marshal.go b/ber/marshal.go
index 282ab45..aaca0c2 100644
--- a/ber/marshal.go
+++ b/ber/marshal.go
@@ -88,9 +88,16 @@ func objEncoder(e *encodeState, v reflect.Value) {
}
func structEncoder(e *encodeState, v reflect.Value) {
+ sube := &encodeState{}
for i := 0; i < v.NumField(); i++ {
- e.reflectValue(v.Field(i))
+ sube.reflectValue(v.Field(i))
}
+ b := sube.Bytes()
+ l := MarshalLen(len(b))
+ t := MarshalClass(classUniversal, kindConstructed, tagSequence)
+ e.Write(t)
+ e.Write(l)
+ e.Write(b)
}
func sliceEncoder(e *encodeState, v reflect.Value) {