aboutsummaryrefslogtreecommitdiff
path: root/ber/packet.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-09-25 15:07:15 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-09-25 15:07:15 +0200
commit0559b7d4eab07cacf0f005e8e756c1d04470e0c7 (patch)
tree45f327235303491747140bb10f92edce922b7d98 /ber/packet.go
parent5d024539d5cc2f4deaa88f783533fd453b78586f (diff)
Broken, but a step in right direction
Diffstat (limited to 'ber/packet.go')
-rw-r--r--ber/packet.go19
1 files changed, 11 insertions, 8 deletions
diff --git a/ber/packet.go b/ber/packet.go
index f244c4e..ea90240 100644
--- a/ber/packet.go
+++ b/ber/packet.go
@@ -1,12 +1,15 @@
package ber
-func Split(b []byte) (c Class, k Kind, t Tag, l int, v []byte, r []byte) {
- var n int
- c, k, t, n = Ident(b)
- b = b[n:]
- l, n = UnmarshalLen(b)
- b = b[n:]
- v = b[:l]
- r = b[l:]
+import "io"
+
+func Split(r io.ByteReader) (c Class, k Kind, t Tag, l int, v []byte) {
+ c, k, t = Ident(r)
+ l = UnmarshalLen(r)
+ if l > 0 {
+ v = make([]byte, l)
+ for i := 0; i < l; i++ {
+ v[i], _ = r.ReadByte()
+ }
+ }
return
}