From 57232f3554fd4a0639cf2e8b23cfd37aa2fc21eb Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 16 Jun 2016 00:17:50 +0200 Subject: Add request query struct --- tracker/query.go | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'tracker/query.go') diff --git a/tracker/query.go b/tracker/query.go index bb741dd..8e9a9bf 100644 --- a/tracker/query.go +++ b/tracker/query.go @@ -2,12 +2,24 @@ package tracker import ( "errors" + "net" "net/url" "reflect" "strconv" "strings" ) +type Request struct { + InfoHash []byte `query:"info_hash"` + PeerID []byte `query:"peer_id"` + Port int `query:"port"` + Uploaded int `query:"uploaded"` + Downloaded int `query:"downloaded"` + Left int `query:"left"` + IP net.IPAddr `query:"ip,optional"` + NumWant int `query:"numwant,optional"` +} + func MarshalQuery(v interface{}) (string, error) { val := reflect.ValueOf(v) return marshalQuery(val) @@ -24,13 +36,9 @@ func marshalQuery(v reflect.Value) (string, error) { f := v.Field(i) switch f.Kind() { case reflect.Int: - if x := int(f.Int()); x != 0 { - q.Add(name, strconv.Itoa(int(f.Int()))) - } + q.Add(name, strconv.Itoa(int(f.Int()))) case reflect.String: - if s := f.String(); s != "" { - q.Add(name, f.String()) - } + q.Add(name, f.String()) } } return "?" + q.Encode(), nil -- cgit v1.2.3