add resolve function compatible with SOCKS proxies

This commit is contained in:
idk
2020-09-13 01:32:22 -04:00
parent 4c81f5f7a0
commit a516752491
7 changed files with 107 additions and 14 deletions

View File

@ -4,6 +4,17 @@ package goSam
import "testing"
import (
"fmt"
"time"
//"log"
"net/http"
)
func HelloServer(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:])
}
var client *Client
func setup(t *testing.T) {
@ -16,6 +27,36 @@ func setup(t *testing.T) {
}
}
func TestCompositeClient(t *testing.T) {
server, err := NewClientFromOptions(SetDebug(true))
if err != nil {
t.Fatalf("NewDefaultClient() Error: %q\n", err)
}
listener, err := server.Listen()
if err != nil {
t.Fatalf("Listener() Error: %q\n", err)
}
http.HandleFunc("/", HelloServer)
go http.Serve(listener, nil)
time.Sleep(time.Second * 15)
client, err = NewClientFromOptions(SetDebug(true))
if err != nil {
t.Fatalf("NewDefaultClient() Error: %q\n", err)
}
tr := &http.Transport{
Dial: client.Dial,
}
client := &http.Client{Transport: tr}
resp, err := client.Get("http://" + server.Base32() + ".b32.i2p")
if err != nil {
t.Fatalf("Get Error: %q\n", err)
}
defer resp.Body.Close()
t.Log("Get returned ", resp)
time.Sleep(time.Second * 15)
}
func teardown(t *testing.T) {
if err := client.Close(); err != nil {
t.Fatalf("client.Close() Error: %q\n", err)