mirror of
https://github.com/go-i2p/goSam.git
synced 2025-06-11 10:08:44 -04:00
re-write some tests
This commit is contained in:
@ -9,6 +9,8 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
//"log"
|
//"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/eyedeekay/sam3"
|
||||||
)
|
)
|
||||||
|
|
||||||
func HelloServer(w http.ResponseWriter, r *http.Request) {
|
func HelloServer(w http.ResponseWriter, r *http.Request) {
|
||||||
@ -28,17 +30,24 @@ func setup(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestCompositeClient(t *testing.T) {
|
func TestCompositeClient(t *testing.T) {
|
||||||
server, err := NewClientFromOptions(SetDebug(true))
|
sam, err := sam3.NewSAM("127.0.0.1:7656")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("NewDefaultClient() Error: %q\n", err)
|
t.Fatalf("Listener() Error: %q\n", err)
|
||||||
}
|
}
|
||||||
listener, err := server.Listen()
|
keys, err := sam.NewKeys()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Listener() Error: %q\n", err)
|
||||||
|
}
|
||||||
|
stream, err := sam.NewStreamSession("serverTun", keys, sam3.Options_Medium)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Listener() Error: %q\n", err)
|
||||||
|
}
|
||||||
|
listener, err := stream.Listen()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Listener() Error: %q\n", err)
|
t.Fatalf("Listener() Error: %q\n", err)
|
||||||
}
|
}
|
||||||
http.HandleFunc("/", HelloServer)
|
http.HandleFunc("/", HelloServer)
|
||||||
go http.Serve(listener, nil)
|
go http.Serve(listener, nil)
|
||||||
time.Sleep(time.Second * 15)
|
|
||||||
|
|
||||||
client, err = NewClientFromOptions(SetDebug(true))
|
client, err = NewClientFromOptions(SetDebug(true))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -48,7 +57,8 @@ func TestCompositeClient(t *testing.T) {
|
|||||||
Dial: client.Dial,
|
Dial: client.Dial,
|
||||||
}
|
}
|
||||||
client := &http.Client{Transport: tr}
|
client := &http.Client{Transport: tr}
|
||||||
resp, err := client.Get("http://" + server.Base32() + ".b32.i2p")
|
time.Sleep(time.Second * 30)
|
||||||
|
resp, err := client.Get("http://" + keys.Addr().Base32())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Get Error: %q\n", err)
|
t.Fatalf("Get Error: %q\n", err)
|
||||||
}
|
}
|
||||||
|
6
dial.go
6
dial.go
@ -15,7 +15,11 @@ func (c *Client) DialContext(ctx context.Context, network, addr string) (net.Con
|
|||||||
if conn, err := c.Dial(network, addr); err != nil {
|
if conn, err := c.Dial(network, addr); err != nil {
|
||||||
errCh <- err
|
errCh <- err
|
||||||
} else if ctx.Err() != nil {
|
} else if ctx.Err() != nil {
|
||||||
conn.Close()
|
var err error
|
||||||
|
c, err = c.NewClient()
|
||||||
|
if err != nil {
|
||||||
|
conn.Close()
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
connCh <- conn
|
connCh <- conn
|
||||||
}
|
}
|
||||||
|
1
go.sum
1
go.sum
@ -1,3 +1,4 @@
|
|||||||
|
github.com/eyedeekay/ramp v0.0.0-20190429201811-305b382042ab h1:EfTRHxGSbiaEyxNzvKRBWVIDw3mD8xXGxj4gvwFzY7Q=
|
||||||
github.com/eyedeekay/ramp v0.0.0-20190429201811-305b382042ab/go.mod h1:h7mvUAMgZ/rtRDUOkvKTK+8LnDMeUhJSoa5EPdB51fc=
|
github.com/eyedeekay/ramp v0.0.0-20190429201811-305b382042ab/go.mod h1:h7mvUAMgZ/rtRDUOkvKTK+8LnDMeUhJSoa5EPdB51fc=
|
||||||
github.com/eyedeekay/sam3 v0.32.2 h1:xODDY5nBVg0oK7KaYk7ofkXFoHPsmI1umhSv1TZlS7s=
|
github.com/eyedeekay/sam3 v0.32.2 h1:xODDY5nBVg0oK7KaYk7ofkXFoHPsmI1umhSv1TZlS7s=
|
||||||
github.com/eyedeekay/sam3 v0.32.2/go.mod h1:Y3igFVzN4ybqkkpfUWULGhw7WRp8lieq0ORXbLBbcZM=
|
github.com/eyedeekay/sam3 v0.32.2/go.mod h1:Y3igFVzN4ybqkkpfUWULGhw7WRp8lieq0ORXbLBbcZM=
|
||||||
|
@ -27,7 +27,7 @@ func TestClientLookupInvalid(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func ExampleClient_Lookup() {
|
func TestClientLookupValid(t *testing.T) {
|
||||||
client, err := NewDefaultClient()
|
client, err := NewDefaultClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("NewDefaultClient() should not throw an error.\n%s\n", err)
|
fmt.Printf("NewDefaultClient() should not throw an error.\n%s\n", err)
|
||||||
@ -40,11 +40,17 @@ func ExampleClient_Lookup() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if addr == `GKapJ8koUcBj~jmQzHsTYxDg2tpfWj0xjQTzd8BhfC9c3OS5fwPBNajgF-eOD6eCjFTqTlorlh7Hnd8kXj1qblUGXT-tDoR9~YV8dmXl51cJn9MVTRrEqRWSJVXbUUz9t5Po6Xa247Vr0sJn27R4KoKP8QVj1GuH6dB3b6wTPbOamC3dkO18vkQkfZWUdRMDXk0d8AdjB0E0864nOT~J9Fpnd2pQE5uoFT6P0DqtQR2jsFvf9ME61aqLvKPPWpkgdn4z6Zkm-NJOcDz2Nv8Si7hli94E9SghMYRsdjU-knObKvxiagn84FIwcOpepxuG~kFXdD5NfsH0v6Uri3usE3XWD7Pw6P8qVYF39jUIq4OiNMwPnNYzy2N4mDMQdsdHO3LUVh~DEppOy9AAmEoHDjjJxt2BFBbGxfdpZCpENkwvmZeYUyNCCzASqTOOlNzdpne8cuesn3NDXIpNnqEE6Oe5Qm5YOJykrX~Vx~cFFT3QzDGkIjjxlFBsjUJyYkFjBQAEAAcAAA==` {
|
||||||
|
t.Log("Success")
|
||||||
|
} else {
|
||||||
|
t.Errorf("Address of zzz.i2p != \nGKapJ8koUcBj~jmQzHsTYxDg2tpfWj0xjQTzd8BhfC9c3OS5fwPBNajgF-eOD6eCjFTqTlorlh7Hnd8kXj1qblUGXT-tDoR9~YV8dmXl51cJn9MVTRrEqRWSJVXbUUz9t5Po6Xa247Vr0sJn27R4KoKP8QVj1GuH6dB3b6wTPbOamC3dkO18vkQkfZWUdRMDXk0d8AdjB0E0864nOT~J9Fpnd2pQE5uoFT6P0DqtQR2jsFvf9ME61aqLvKPPWpkgdn4z6Zkm-NJOcDz2Nv8Si7hli94E9SghMYRsdjU-knObKvxiagn84FIwcOpepxuG~kFXdD5NfsH0v6Uri3usE3XWD7Pw6P8qVYF39jUIq4OiNMwPnNYzy2N4mDMQdsdHO3LUVh~DEppOy9AAmEoHDjjJxt2BFBbGxfdpZCpENkwvmZeYUyNCCzASqTOOlNzdpne8cuesn3NDXIpNnqEE6Oe5Qm5YOJykrX~Vx~cFFT3QzDGkIjjxlFBsjUJyYkFjBQAEAAcAAA==\n, check to see if it changed, %s", addr)
|
||||||
|
}
|
||||||
|
|
||||||
fmt.Println("Address of zzz.i2p:")
|
fmt.Println("Address of zzz.i2p:")
|
||||||
// Addresses change all the time
|
// Addresses change all the time
|
||||||
fmt.Println(addr)
|
fmt.Println(addr)
|
||||||
|
|
||||||
// Output:
|
// Output:
|
||||||
//Address of zzz.i2p:
|
//Address of zzz.i2p:
|
||||||
//GKapJ8koUcBj~jmQzHsTYxDg2tpfWj0xjQTzd8BhfC9c3OS5fwPBNajgF-eOD6eCjFTqTlorlh7Hnd8kXj1qblUGXT-tDoR9~YV8dmXl51cJn9MVTRrEqRWSJVXbUUz9t5Po6Xa247Vr0sJn27R4KoKP8QVj1GuH6dB3b6wTPbOamC3dkO18vkQkfZWUdRMDXk0d8AdjB0E0864nOT~J9Fpnd2pQE5uoFT6P0DqtQR2jsFvf9ME61aqLvKPPWpkgdn4z6Zkm-NJOcDz2Nv8Si7hli94E9SghMYRsdjU-knObKvxiagn84FIwcOpepxuG~kFXdD5NfsH0v6Uri3usE3XWD7Pw6P8qVYF39jUIq4OiNMwPnNYzy2N4mDMQdsdHO3LUVh~DEppOy9AAmEoHDjjJxt2BFBbGxfdpZCpENkwvmZeYUyNCCzASqTOOlNzdpne8cuesn3NDXIpNnqEE6Oe5Qm5YOJykrX~Vx~cFFT3QzDGkIjjxlFBsjUJyYkFjBQAEAAcAAA==
|
//
|
||||||
}
|
}
|
||||||
|
12
options.go
12
options.go
@ -369,6 +369,12 @@ func SetSignatureType(s string) func(*Client) error {
|
|||||||
|
|
||||||
//return the from port as a string.
|
//return the from port as a string.
|
||||||
func (c *Client) from() string {
|
func (c *Client) from() string {
|
||||||
|
if c.fromport == "FROM_PORT=0" {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
if c.fromport == "0" {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
if c.fromport == "" {
|
if c.fromport == "" {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
@ -377,6 +383,12 @@ func (c *Client) from() string {
|
|||||||
|
|
||||||
//return the to port as a string.
|
//return the to port as a string.
|
||||||
func (c *Client) to() string {
|
func (c *Client) to() string {
|
||||||
|
if c.fromport == "TO_PORT=0" {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
if c.fromport == "0" {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
if c.toport == "" {
|
if c.toport == "" {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,6 @@ type Reply struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func parseReply(line string) (*Reply, error) {
|
func parseReply(line string) (*Reply, error) {
|
||||||
fmt.Println("PARSER PARTS", line)
|
|
||||||
line = strings.TrimSpace(line)
|
line = strings.TrimSpace(line)
|
||||||
parts := strings.Split(line, " ")
|
parts := strings.Split(line, " ")
|
||||||
if len(parts) < 3 {
|
if len(parts) < 3 {
|
||||||
@ -54,11 +53,16 @@ func parseReply(line string) (*Reply, error) {
|
|||||||
|
|
||||||
for _, v := range parts[2:] {
|
for _, v := range parts[2:] {
|
||||||
if strings.Contains(v, "FROM_PORT") {
|
if strings.Contains(v, "FROM_PORT") {
|
||||||
r.From = v
|
if v != "FROM_PORT=0" {
|
||||||
|
r.From = v
|
||||||
|
}
|
||||||
} else if strings.Contains(v, "TO_PORT") {
|
} else if strings.Contains(v, "TO_PORT") {
|
||||||
r.To = v
|
if v != "TO_PORT=0" {
|
||||||
|
r.To = v
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
kvPair := strings.SplitN(v, "=", 2)
|
kvPair := strings.SplitN(v, "=", 2)
|
||||||
|
fmt.Printf("Reply, %s", parts)
|
||||||
if kvPair != nil {
|
if kvPair != nil {
|
||||||
if len(kvPair) != 2 {
|
if len(kvPair) != 2 {
|
||||||
return nil, fmt.Errorf("Malformed key-value-pair.\n%s\n", kvPair)
|
return nil, fmt.Errorf("Malformed key-value-pair.\n%s\n", kvPair)
|
||||||
|
Reference in New Issue
Block a user