diff --git a/Makefile b/Makefile index 5626e8f..7ca07c7 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ USER_GH=eyedeekay -VERSION=0.32.5 +VERSION=0.32.51 packagename=gosam echo: fmt diff --git a/accept.go b/accept.go index 6f0dd5b..5c92805 100644 --- a/accept.go +++ b/accept.go @@ -25,24 +25,23 @@ func (c *Client) Listen() (net.Listener, error) { func (c *Client) ListenI2P(dest string) (net.Listener, error) { var err error c.destination, err = c.CreateStreamSession(dest) + d := c.destination if err != nil { return nil, err } - - if c.d == nil { - c.d, err = c.NewClient(c.NewID()) - if err != nil { - return nil, err - } - } - fmt.Println("Listening on destination:", c.Base32()+".b32.i2p") + c, err = c.NewClient(c.id) + if err != nil { + return nil, err + } + c.destination = d + if c.debug { c.SamConn = WrapConn(c.SamConn) } - return c.d, nil + return c, nil } // Accept accepts a connection on a listening goSam.Client(Implements net.Listener) diff --git a/client.go b/client.go index 8995bf8..d484db9 100644 --- a/client.go +++ b/client.go @@ -27,7 +27,7 @@ type Client struct { SamConn net.Conn // Control socket SamDGConn DatagramConn // Datagram socket rd *bufio.Reader - d *Client + // d *Client sigType string destination string @@ -93,11 +93,16 @@ func NewClient(addr string) (*Client, error) { return NewClientFromOptions(SetAddr(addr)) } +func NewID() int32 { + id := rand.Int31n(math.MaxInt32) + fmt.Printf("Initializing new ID: %d\n", id) + return id +} + // NewID generates a random number to use as an tunnel name func (c *Client) NewID() int32 { if c.id == 0 { - c.id = rand.Int31n(math.MaxInt32) - fmt.Printf("Initializing new ID: %d\n", c.id) + c.id = NewID() } return c.id } diff --git a/client_test.go b/client_test.go index 9f9f011..b7363a1 100644 --- a/client_test.go +++ b/client_test.go @@ -46,7 +46,7 @@ func TestCompositeClient(t *testing.T) { // http.HandleFunc("/", HelloServer) go http.Serve(listener3, nil) - sam, err := NewClientFromOptions(SetDebug(true)) + sam, err := NewClientFromOptions(SetDebug(false)) if err != nil { t.Fatalf("NewDefaultClient() Error: %q\n", err) } @@ -55,27 +55,32 @@ func TestCompositeClient(t *testing.T) { } client := &http.Client{Transport: tr} defer sam.Close() - time.Sleep(time.Second * 30) + x := 0 + for x < 15 { + time.Sleep(time.Second * 2) + t.Log("waiting a little while for services to register", (30 - (x * 2))) + x++ + } go func() { resp, err := client.Get("http://" + listener.Addr().(i2pkeys.I2PAddr).Base32()) if err != nil { - t.Fatalf("Get Error: %q\n", err) + t.Fatalf("Get Error test 1: %q\n", err) } defer resp.Body.Close() }() - time.Sleep(time.Second * 15) + //time.Sleep(time.Second * 15) go func() { resp, err := client.Get("http://" + listener2.Addr().(i2pkeys.I2PAddr).Base32()) if err != nil { - t.Fatalf("Get Error: %q\n", err) + t.Fatalf("Get Error test 2: %q\n", err) } defer resp.Body.Close() }() - time.Sleep(time.Second * 15) + //time.Sleep(time.Second * 15) go func() { resp, err := client.Get("http://" + listener3.Addr().(i2pkeys.I2PAddr).Base32()) if err != nil { - t.Fatalf("Get Error: %q\n", err) + t.Fatalf("Get Error test 3: %q\n", err) } defer resp.Body.Close() }() @@ -84,7 +89,7 @@ func TestCompositeClient(t *testing.T) { } func TestClientHello(t *testing.T) { - client, err := NewClientFromOptions(SetDebug(true)) + client, err := NewClientFromOptions(SetDebug(false)) if err != nil { t.Fatalf("NewDefaultClient() Error: %q\n", err) } @@ -95,7 +100,7 @@ func TestClientHello(t *testing.T) { } func TestNewDestination(t *testing.T) { - client, err := NewClientFromOptions(SetDebug(true)) + client, err := NewClientFromOptions(SetDebug(false)) if err != nil { t.Fatalf("NewDefaultClient() Error: %q\n", err) } diff --git a/datagram.go b/datagram.go index a42b712..3860c50 100644 --- a/datagram.go +++ b/datagram.go @@ -20,7 +20,6 @@ type DatagramConn interface { } /** -var conn DatagramConn = &Client{} - - -*/ + * When datagram support is finished, this will compile. + * var conn DatagramConn = &Client{} +**/ diff --git a/dial.go b/dial.go index 9e8355b..6ad4127 100644 --- a/dial.go +++ b/dial.go @@ -76,16 +76,14 @@ func (c *Client) DialStreamingContextFree(addr string) (net.Conn, error) { return nil, err } } - if c.d == nil { - c.d, err = c.NewClient(c.NewID()) - if err != nil { - return nil, err - } - } - err = c.d.StreamConnect(addr) + d, err := c.NewClient(c.NewID()) if err != nil { return nil, err } - return c.d.SamConn, nil + err = d.StreamConnect(addr) + if err != nil { + return nil, err + } + return d.SamConn, nil } diff --git a/naming_test.go b/naming_test.go index cb067ed..85336b3 100644 --- a/naming_test.go +++ b/naming_test.go @@ -11,7 +11,7 @@ import ( func TestClientLookupInvalid(t *testing.T) { var err error - client, err := NewClientFromOptions(SetDebug(true)) + client, err := NewClientFromOptions(SetDebug(false)) if err != nil { t.Fatalf("NewDefaultClient() Error: %q\n", err) } diff --git a/options_test.go b/options_test.go index 0b2b019..bffc0d3 100644 --- a/options_test.go +++ b/options_test.go @@ -37,7 +37,7 @@ func (c *Client) validCreate() (string, error) { } func TestOptionAddrString(t *testing.T) { - client, err := NewClientFromOptions(SetAddr("127.0.0.1:7656"), SetDebug(true)) + client, err := NewClientFromOptions(SetAddr("127.0.0.1:7656"), SetDebug(false)) if err != nil { t.Fatalf("NewClientFromOptions() Error: %q\n", err) } @@ -56,7 +56,7 @@ func TestOptionAddrString(t *testing.T) { } func TestOptionAddrStringLh(t *testing.T) { - client, err := NewClientFromOptions(SetAddr("localhost:7656"), SetDebug(true)) + client, err := NewClientFromOptions(SetAddr("localhost:7656"), SetDebug(false)) if err != nil { t.Fatalf("NewClientFromOptions() Error: %q\n", err) } @@ -75,7 +75,7 @@ func TestOptionAddrStringLh(t *testing.T) { } func TestOptionAddrSlice(t *testing.T) { - client, err := NewClientFromOptions(SetAddr("127.0.0.1", "7656"), SetDebug(true)) + client, err := NewClientFromOptions(SetAddr("127.0.0.1", "7656"), SetDebug(false)) if err != nil { t.Fatalf("NewClientFromOptions() Error: %q\n", err) } @@ -94,7 +94,7 @@ func TestOptionAddrSlice(t *testing.T) { } func TestOptionAddrMixedSlice(t *testing.T) { - client, err := NewClientFromOptions(SetAddrMixed("127.0.0.1", 7656), SetDebug(true)) + client, err := NewClientFromOptions(SetAddrMixed("127.0.0.1", 7656), SetDebug(false)) if err != nil { t.Fatalf("NewClientFromOptions() Error: %q\n", err) } @@ -125,7 +125,7 @@ func TestOptionHost(t *testing.T) { SetInBackups(2), SetOutBackups(2), SetEncrypt(true), - SetDebug(true), + SetDebug(false), SetUnpublished(true), SetReduceIdle(true), SetReduceIdleTime(300001), @@ -163,7 +163,7 @@ func TestOptionPortInt(t *testing.T) { SetInBackups(2), SetOutBackups(2), SetEncrypt(true), - SetDebug(true), + SetDebug(false), SetUnpublished(true), SetReduceIdle(true), SetReduceIdleTime(300001),