Make err non-exported

This commit is contained in:
Miek Gieben 2013-06-20 07:25:29 +01:00
parent 76dd2f8220
commit 70f9c6b964
3 changed files with 9 additions and 20 deletions

View File

@ -265,7 +265,7 @@ func Fqdn(s string) string {
func ReverseAddr(addr string) (arpa string, err error) { func ReverseAddr(addr string) (arpa string, err error) {
ip := net.ParseIP(addr) ip := net.ParseIP(addr)
if ip == nil { if ip == nil {
return "", &Error{Err: "unrecognized address", Name: addr} return "", &Error{Err: "unrecognized address: " + addr}
} }
if ip.To4() != nil { if ip.To4() != nil {
return strconv.Itoa(int(ip[15])) + "." + strconv.Itoa(int(ip[14])) + "." + strconv.Itoa(int(ip[13])) + "." + return strconv.Itoa(int(ip[15])) + "." + strconv.Itoa(int(ip[14])) + "." + strconv.Itoa(int(ip[13])) + "." +

14
dns.go
View File

@ -77,7 +77,6 @@
package dns package dns
import ( import (
"net"
"strconv" "strconv"
) )
@ -90,22 +89,13 @@ const (
) )
// Error represents a DNS error // Error represents a DNS error
type Error struct { type Error struct{ err string }
Err string
Name string
Server net.Addr
Timeout bool
}
func (e *Error) Error() string { func (e *Error) Error() string {
if e == nil { if e == nil {
return "dns: <nil>" return "dns: <nil>"
} }
if e.Name == "" { return "dns: " + e.err
return "dns: " + e.Err
}
return "dns: " + e.Name + ": " + e.Err
} }
// An RR represents a resource record. // An RR represents a resource record.

13
msg.go
View File

@ -404,7 +404,7 @@ func packStructValue(val reflect.Value, msg []byte, off int, compression map[str
case reflect.Slice: case reflect.Slice:
switch val.Type().Field(i).Tag { switch val.Type().Field(i).Tag {
default: default:
return lenmsg, &Error{Name: val.Type().Field(i).Tag.Get("dns"), Err: "bad tag packing slice"} return lenmsg, &Error{"bad tag packing slice: " + val.Type().Field(i).Tag.Get("dns")}
case `dns:"domain-name"`: case `dns:"domain-name"`:
for j := 0; j < val.Field(i).Len(); j++ { for j := 0; j < val.Field(i).Len(); j++ {
element := val.Field(i).Index(j).String() element := val.Field(i).Index(j).String()
@ -598,7 +598,7 @@ func packStructValue(val reflect.Value, msg []byte, off int, compression map[str
s := fv.String() s := fv.String()
switch val.Type().Field(i).Tag { switch val.Type().Field(i).Tag {
default: default:
return lenmsg, &Error{Name: val.Type().Field(i).Tag.Get("dns"), Err: "bad tag packing string"} return lenmsg, &Error{"bad tag packing string: " + val.Type().Field(i).Tag.Get("dns")}
case `dns:"base64"`: case `dns:"base64"`:
b64, err := packBase64([]byte(s)) b64, err := packBase64([]byte(s))
if err != nil { if err != nil {
@ -691,7 +691,7 @@ func unpackStructValue(val reflect.Value, msg []byte, off int) (off1 int, err er
case reflect.Slice: case reflect.Slice:
switch val.Type().Field(i).Tag { switch val.Type().Field(i).Tag {
default: default:
return lenmsg, &Error{Name: val.Type().Field(i).Tag.Get("dns"), Err: "bad tag unpacking slice"} return lenmsg, &Error{"bad tag unpacking slice: " + val.Type().Field(i).Tag.Get("dns")}
case `dns:"domain-name"`: case `dns:"domain-name"`:
// HIP record slice of name (or none) // HIP record slice of name (or none)
servers := make([]string, 0) servers := make([]string, 0)
@ -941,7 +941,7 @@ func unpackStructValue(val reflect.Value, msg []byte, off int) (off1 int, err er
var s string var s string
switch val.Type().Field(i).Tag { switch val.Type().Field(i).Tag {
default: default:
return lenmsg, &Error{Name: val.Type().Field(i).Tag.Get("dns"), Err: "bad tag unpacking string"} return lenmsg, &Error{"bad tag unpacking string: " + val.Type().Field(i).Tag.Get("dns")}
case `dns:"hex"`: case `dns:"hex"`:
// Rest of the RR is hex encoded, network order an issue here? // Rest of the RR is hex encoded, network order an issue here?
rdlength := int(val.FieldByName("Hdr").FieldByName("Rdlength").Uint()) rdlength := int(val.FieldByName("Hdr").FieldByName("Rdlength").Uint())
@ -1342,9 +1342,8 @@ func (dns *Msg) Unpack(msg []byte) (err error) {
} }
} }
if off != len(msg) { if off != len(msg) {
// TODO(mg) remove eventually // TODO(miek) make this an error?
// Err: extra bytes in packet // println("dns: extra bytes in dns packet", off, "<", len(msg))
println("dns: extra bytes in dns packet", off, "<", len(msg))
} }
return nil return nil
} }