aboutsummaryrefslogtreecommitdiff
path: root/bencode
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-07-18 00:51:43 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-07-18 00:51:43 +0200
commite4b008b534de791b10864cbb4cab34fcee471c34 (patch)
treecb950fc35cebb44da4837e78377bbe868a520d75 /bencode
parent0d3592231c8eae65fbd7e479763639fd7524dbf7 (diff)
wip, broken
Diffstat (limited to 'bencode')
-rw-r--r--bencode/bdecode.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/bencode/bdecode.go b/bencode/bdecode.go
index 19f2a12..837dbec 100644
--- a/bencode/bdecode.go
+++ b/bencode/bdecode.go
@@ -56,7 +56,16 @@ func (d *decodeState) unmarshalDict(v reflect.Value) error {
for d.data[d.off] != 'e' {
key, n := parseString(d.data[d.off:])
d.off += n
- d.unmarshalField(findKey(key, v))
+ val := findKey(key, v)
+ /*
+ if val.CanAddr() && val.Addr().Type().NumMethod() > 0 {
+ if u, ok := val.Addr().Interface().(Unmarshaler); ok {
+ u.UnmarshalBencode(d.data[d.off:])
+ log.Println("has unmarshaler", u)
+ }
+ }
+ */
+ d.unmarshalField(val)
}
d.off++