Skip to content

Commit 6944921

Browse files
author
Kiran Mova
authored
Merge pull request #1 from vharsh/dnsOrverride
Explictly use Google-DNS as nameserver
2 parents 14b04e0 + 74d88c1 commit 6944921

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

client.go

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ package ga
44

55
import (
66
"bytes"
7+
"context"
78
"fmt"
9+
"net"
810
"net/http"
911
"net/url"
1012
"regexp"
@@ -16,9 +18,22 @@ func NewClient(trackingID string) (*Client, error) {
1618
if !trackingIDMatcher.MatchString(trackingID) {
1719
return nil, fmt.Errorf("Invalid Tracking ID: %s", trackingID)
1820
}
21+
dialer := &net.Dialer{
22+
Resolver: &net.Resolver{
23+
PreferGo: true,
24+
Dial: func(ctx context.Context, network, address string) (net.Conn, error){
25+
dialer := net.Dialer{}
26+
return dialer.DialContext(ctx, network, "8.8.8.8:53")
27+
},
28+
},
29+
}
1930
return &Client{
2031
UseTLS: true,
21-
HttpClient: http.DefaultClient,
32+
HttpClient: &http.Client{
33+
Transport: &http.Transport{
34+
DialContext: dialer.DialContext,
35+
},
36+
},
2237
protocolVersion: "1",
2338
protocolVersionSet: true,
2439
trackingID: trackingID,
@@ -49,17 +64,17 @@ func (c *Client) Send(h hitType) error {
4964
return err
5065
}
5166

52-
url := ""
67+
gaUrl := ""
5368
if cpy.UseTLS {
54-
url = "https://www.google-analytics.com/collect"
69+
gaUrl = "https://www.google-analytics.com/collect"
5570
} else {
56-
url = "http://ssl.google-analytics.com/collect"
71+
gaUrl = "http://ssl.google-analytics.com/collect"
5772
}
5873

5974
str := v.Encode()
6075
buf := bytes.NewBufferString(str)
6176

62-
resp, err := c.HttpClient.Post(url, "application/x-www-form-urlencoded", buf)
77+
resp, err := c.HttpClient.Post(gaUrl, "application/x-www-form-urlencoded", buf)
6378
if err != nil {
6479
return err
6580
}

0 commit comments

Comments
 (0)