Skip to content

Commit

Permalink
Fix bug querying dns seeds over Tor
Browse files Browse the repository at this point in the history
  • Loading branch information
cpacia committed Jan 26, 2017
1 parent c8e7695 commit a944ef9
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 11 deletions.
16 changes: 9 additions & 7 deletions peers.go
Original file line number Diff line number Diff line change
Expand Up @@ -315,13 +315,15 @@ func (pm *PeerManager) queryDNSSeeds() {
var addrs []string
var err error
if pm.proxy != nil {
ips, err := TorLookupIP(host, pm.proxy)
if err != nil {
wg.Done()
return
}
for _, ip := range ips {
addrs = append(addrs, ip.String())
for i := 0; i < 5; i++ {
ips, err := TorLookupIP(host)
if err != nil {
wg.Done()
return
}
for _, ip := range ips {
addrs = append(addrs, ip.String())
}
}
} else {
addrs, err = net.LookupHost(host)
Expand Down
10 changes: 6 additions & 4 deletions tor.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ package spvwallet
import (
"encoding/binary"
"errors"
"golang.org/x/net/proxy"
"net"
)

Expand Down Expand Up @@ -52,10 +51,13 @@ var (
// TorLookupIP uses Tor to resolve DNS via the SOCKS extension they provide for
// resolution over the Tor network. Tor itself doesn't support ipv6 so this
// doesn't either.
func TorLookupIP(host string, dialer proxy.Dialer) ([]net.IP, error) {
conn, err := dialer.Dial("tcp", host)
func TorLookupIP(host string) ([]net.IP, error) {
conn, err := net.Dial("tcp", "127.0.0.1:9150")
if err != nil {
return nil, err
conn, err = net.Dial("tcp", "127.0.0.1:9050")
if err != nil {
return nil, err
}
}
defer conn.Close()

Expand Down

0 comments on commit a944ef9

Please sign in to comment.