From 90d447a14df68497f355a20e8816aa221dd1208c Mon Sep 17 00:00:00 2001 From: Michael Hoisie Date: Sun, 18 Apr 2010 14:46:24 -0700 Subject: net: fix bugs in packStructValue packStructValue was cutting off last byte of uint32 in _Dns_msg.Unpack, use packRR for rr types R=rsc CC=golang-dev http://codereview.appspot.com/844048 Committer: Russ Cox --- src/pkg/net/dnsmsg.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/pkg/net/dnsmsg.go b/src/pkg/net/dnsmsg.go index adedcab99..509189639 100644 --- a/src/pkg/net/dnsmsg.go +++ b/src/pkg/net/dnsmsg.go @@ -389,7 +389,7 @@ func packStructValue(val *reflect.StructValue, msg []byte, off int) (off1 int, o msg[off] = byte(i >> 24) msg[off+1] = byte(i >> 16) msg[off+2] = byte(i >> 8) - msg[off+4] = byte(i) + msg[off+3] = byte(i) off += 4 case *reflect.StringValue: // There are multiple string encodings. @@ -633,13 +633,13 @@ func (dns *_DNS_Msg) Pack() (msg []byte, ok bool) { off, ok = packStruct(&question[i], msg, off) } for i := 0; i < len(answer); i++ { - off, ok = packStruct(answer[i], msg, off) + off, ok = packRR(answer[i], msg, off) } for i := 0; i < len(ns); i++ { - off, ok = packStruct(ns[i], msg, off) + off, ok = packRR(ns[i], msg, off) } for i := 0; i < len(extra); i++ { - off, ok = packStruct(extra[i], msg, off) + off, ok = packRR(extra[i], msg, off) } if !ok { return nil, false -- cgit v1.2.3