3 Commits

Author SHA1 Message Date
idk
86009cc805 Force SetDebug true 2022-02-02 00:53:06 -05:00
idk
1fc3dc5a20 Force SetDebug true 2022-02-02 00:44:08 -05:00
idk
a2fcfb8bc1 Fix issue where the control socket should not be used as a streamsession 2022-02-02 00:40:01 -05:00
9 changed files with 49 additions and 42 deletions

View File

@@ -1,6 +1,6 @@
USER_GH=eyedeekay USER_GH=eyedeekay
VERSION=0.32.5 VERSION=0.32.53
packagename=gosam packagename=gosam
echo: fmt echo: fmt

View File

@@ -25,24 +25,23 @@ func (c *Client) Listen() (net.Listener, error) {
func (c *Client) ListenI2P(dest string) (net.Listener, error) { func (c *Client) ListenI2P(dest string) (net.Listener, error) {
var err error var err error
c.destination, err = c.CreateStreamSession(dest) c.destination, err = c.CreateStreamSession(dest)
d := c.destination
if err != nil { if err != nil {
return nil, err 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") 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 { if c.debug {
c.SamConn = WrapConn(c.SamConn) c.SamConn = WrapConn(c.SamConn)
} }
return c.d, nil return c, nil
} }
// Accept accepts a connection on a listening goSam.Client(Implements net.Listener) // Accept accepts a connection on a listening goSam.Client(Implements net.Listener)

View File

@@ -27,7 +27,7 @@ type Client struct {
SamConn net.Conn // Control socket SamConn net.Conn // Control socket
SamDGConn DatagramConn // Datagram socket SamDGConn DatagramConn // Datagram socket
rd *bufio.Reader rd *bufio.Reader
d *Client // d *Client
sigType string sigType string
destination string destination string
@@ -93,11 +93,16 @@ func NewClient(addr string) (*Client, error) {
return NewClientFromOptions(SetAddr(addr)) 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 // NewID generates a random number to use as an tunnel name
func (c *Client) NewID() int32 { func (c *Client) NewID() int32 {
if c.id == 0 { if c.id == 0 {
c.id = rand.Int31n(math.MaxInt32) c.id = NewID()
fmt.Printf("Initializing new ID: %d\n", c.id)
} }
return c.id return c.id
} }

View File

@@ -46,7 +46,7 @@ func TestCompositeClient(t *testing.T) {
// http.HandleFunc("/", HelloServer) // http.HandleFunc("/", HelloServer)
go http.Serve(listener3, nil) go http.Serve(listener3, nil)
sam, err := NewClientFromOptions(SetDebug(true)) sam, err := NewClientFromOptions(SetDebug(false))
if err != nil { if err != nil {
t.Fatalf("NewDefaultClient() Error: %q\n", err) t.Fatalf("NewDefaultClient() Error: %q\n", err)
} }
@@ -55,27 +55,32 @@ func TestCompositeClient(t *testing.T) {
} }
client := &http.Client{Transport: tr} client := &http.Client{Transport: tr}
defer sam.Close() 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() { go func() {
resp, err := client.Get("http://" + listener.Addr().(i2pkeys.I2PAddr).Base32()) resp, err := client.Get("http://" + listener.Addr().(i2pkeys.I2PAddr).Base32())
if err != nil { if err != nil {
t.Fatalf("Get Error: %q\n", err) t.Fatalf("Get Error test 1: %q\n", err)
} }
defer resp.Body.Close() defer resp.Body.Close()
}() }()
time.Sleep(time.Second * 15) //time.Sleep(time.Second * 15)
go func() { go func() {
resp, err := client.Get("http://" + listener2.Addr().(i2pkeys.I2PAddr).Base32()) resp, err := client.Get("http://" + listener2.Addr().(i2pkeys.I2PAddr).Base32())
if err != nil { if err != nil {
t.Fatalf("Get Error: %q\n", err) t.Fatalf("Get Error test 2: %q\n", err)
} }
defer resp.Body.Close() defer resp.Body.Close()
}() }()
time.Sleep(time.Second * 15) //time.Sleep(time.Second * 15)
go func() { go func() {
resp, err := client.Get("http://" + listener3.Addr().(i2pkeys.I2PAddr).Base32()) resp, err := client.Get("http://" + listener3.Addr().(i2pkeys.I2PAddr).Base32())
if err != nil { if err != nil {
t.Fatalf("Get Error: %q\n", err) t.Fatalf("Get Error test 3: %q\n", err)
} }
defer resp.Body.Close() defer resp.Body.Close()
}() }()
@@ -84,7 +89,7 @@ func TestCompositeClient(t *testing.T) {
} }
func TestClientHello(t *testing.T) { func TestClientHello(t *testing.T) {
client, err := NewClientFromOptions(SetDebug(true)) client, err := NewClientFromOptions(SetDebug(false))
if err != nil { if err != nil {
t.Fatalf("NewDefaultClient() Error: %q\n", err) t.Fatalf("NewDefaultClient() Error: %q\n", err)
} }
@@ -95,7 +100,7 @@ func TestClientHello(t *testing.T) {
} }
func TestNewDestination(t *testing.T) { func TestNewDestination(t *testing.T) {
client, err := NewClientFromOptions(SetDebug(true)) client, err := NewClientFromOptions(SetDebug(false))
if err != nil { if err != nil {
t.Fatalf("NewDefaultClient() Error: %q\n", err) t.Fatalf("NewDefaultClient() Error: %q\n", err)
} }

View File

@@ -20,7 +20,6 @@ type DatagramConn interface {
} }
/** /**
var conn DatagramConn = &Client{} * When datagram support is finished, this will compile.
* var conn DatagramConn = &Client{}
**/
*/

14
dial.go
View File

@@ -76,16 +76,14 @@ func (c *Client) DialStreamingContextFree(addr string) (net.Conn, error) {
return nil, err 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 { if err != nil {
return nil, err return nil, err
} }
return c.d.SamConn, nil err = d.StreamConnect(addr)
if err != nil {
return nil, err
}
return d.SamConn, nil
} }

View File

@@ -11,7 +11,7 @@ import (
func TestClientLookupInvalid(t *testing.T) { func TestClientLookupInvalid(t *testing.T) {
var err error var err error
client, err := NewClientFromOptions(SetDebug(true)) client, err := NewClientFromOptions(SetDebug(false))
if err != nil { if err != nil {
t.Fatalf("NewDefaultClient() Error: %q\n", err) t.Fatalf("NewDefaultClient() Error: %q\n", err)
} }

View File

@@ -185,7 +185,8 @@ func SetToPortInt(i int) func(*Client) error {
//SetDebug enables debugging messages //SetDebug enables debugging messages
func SetDebug(b bool) func(*Client) error { func SetDebug(b bool) func(*Client) error {
return func(c *Client) error { return func(c *Client) error {
c.debug = b //c.debug = b
c.debug = true
return nil return nil
} }
} }

View File

@@ -37,7 +37,7 @@ func (c *Client) validCreate() (string, error) {
} }
func TestOptionAddrString(t *testing.T) { 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 { if err != nil {
t.Fatalf("NewClientFromOptions() Error: %q\n", err) t.Fatalf("NewClientFromOptions() Error: %q\n", err)
} }
@@ -56,7 +56,7 @@ func TestOptionAddrString(t *testing.T) {
} }
func TestOptionAddrStringLh(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 { if err != nil {
t.Fatalf("NewClientFromOptions() Error: %q\n", err) t.Fatalf("NewClientFromOptions() Error: %q\n", err)
} }
@@ -75,7 +75,7 @@ func TestOptionAddrStringLh(t *testing.T) {
} }
func TestOptionAddrSlice(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 { if err != nil {
t.Fatalf("NewClientFromOptions() Error: %q\n", err) t.Fatalf("NewClientFromOptions() Error: %q\n", err)
} }
@@ -94,7 +94,7 @@ func TestOptionAddrSlice(t *testing.T) {
} }
func TestOptionAddrMixedSlice(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 { if err != nil {
t.Fatalf("NewClientFromOptions() Error: %q\n", err) t.Fatalf("NewClientFromOptions() Error: %q\n", err)
} }
@@ -125,7 +125,7 @@ func TestOptionHost(t *testing.T) {
SetInBackups(2), SetInBackups(2),
SetOutBackups(2), SetOutBackups(2),
SetEncrypt(true), SetEncrypt(true),
SetDebug(true), SetDebug(false),
SetUnpublished(true), SetUnpublished(true),
SetReduceIdle(true), SetReduceIdle(true),
SetReduceIdleTime(300001), SetReduceIdleTime(300001),
@@ -163,7 +163,7 @@ func TestOptionPortInt(t *testing.T) {
SetInBackups(2), SetInBackups(2),
SetOutBackups(2), SetOutBackups(2),
SetEncrypt(true), SetEncrypt(true),
SetDebug(true), SetDebug(false),
SetUnpublished(true), SetUnpublished(true),
SetReduceIdle(true), SetReduceIdle(true),
SetReduceIdleTime(300001), SetReduceIdleTime(300001),