summaryrefslogtreecommitdiffstats
path: root/xdr
diff options
context:
space:
mode:
authorJakob Borg <jakob@nym.se>2014-05-11 19:55:43 -0300
committerJakob Borg <jakob@nym.se>2014-05-11 19:55:43 -0300
commit1d602b9efa74532523e8a71fb27f371df26741e5 (patch)
treefc6fc0e6d24f155388f74bdb234c0d2e6b8d77c5 /xdr
parentb783169c72582e98ded0d657f80945b3bef260d4 (diff)
Enable discovery gossiping
Diffstat (limited to 'xdr')
-rw-r--r--xdr/reader.go13
1 files changed, 9 insertions, 4 deletions
diff --git a/xdr/reader.go b/xdr/reader.go
index c29b7c4b90..8411aadac1 100644
--- a/xdr/reader.go
+++ b/xdr/reader.go
@@ -72,20 +72,25 @@ func (r *Reader) ReadUint16() uint16 {
}
func (r *Reader) ReadUint32() uint32 {
+ var n int
if r.err != nil {
return 0
}
- _, r.err = io.ReadFull(r.r, r.b[:4])
- r.tot += 4
+ n, r.err = io.ReadFull(r.r, r.b[:4])
+ if n < 4 {
+ return 0
+ }
+ r.tot += n
return uint32(r.b[3]) | uint32(r.b[2])<<8 | uint32(r.b[1])<<16 | uint32(r.b[0])<<24
}
func (r *Reader) ReadUint64() uint64 {
+ var n int
if r.err != nil {
return 0
}
- _, r.err = io.ReadFull(r.r, r.b[:8])
- r.tot += 8
+ n, r.err = io.ReadFull(r.r, r.b[:8])
+ r.tot += n
return uint64(r.b[7]) | uint64(r.b[6])<<8 | uint64(r.b[5])<<16 | uint64(r.b[4])<<24 |
uint64(r.b[3])<<32 | uint64(r.b[2])<<40 | uint64(r.b[1])<<48 | uint64(r.b[0])<<56
}