From 60f72236c260c3ee0a0c72fe29d61786671424f8 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 11 Aug 2015 16:11:38 +0200 Subject: Primitive, but works somehow --- ber/marshal.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'ber/marshal.go') 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) { -- cgit v1.2.3