move SAM into conn

This commit is contained in:
idk 2018-12-26 01:17:49 -05:00
parent fe7c0dcd5b
commit 3c7fc231c8
No known key found for this signature in database
GPG key ID: D75C03B39B5E14E1
2 changed files with 8 additions and 11 deletions

View file

@ -87,10 +87,13 @@ func (m Conn) Cleanup() error {
return nil return nil
} }
func NewConn(sam sam3.SAM, addr, path string, opts []string) (*Conn, error) { func NewConn(samhost, samport, addr, path string, opts []string) (*Conn, error) {
var c Conn var c Conn
var err error var err error
c.SAM = &sam c.SAM, err = sam3.NewSAM(samhost + ":" + samport)
if err != nil {
return nil, err
}
c.path = path c.path = path
t32, err := sam3.NewI2PAddrFromString(addr) t32, err := sam3.NewI2PAddrFromString(addr)
c.name = t32.Base32() + ".i2pkeys" c.name = t32.Base32() + ".i2pkeys"
@ -98,11 +101,11 @@ func NewConn(sam sam3.SAM, addr, path string, opts []string) (*Conn, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
c.StreamSession, err = sam.NewStreamSession(c.I2PKeys.Addr().Base32()[0:10]+RandTunName(), c.I2PKeys, opts) c.StreamSession, err = c.SAM.NewStreamSession(c.I2PKeys.Addr().Base32()[0:10]+RandTunName(), c.I2PKeys, opts)
if err != nil { if err != nil {
return nil, err return nil, err
} }
i2paddr, err := sam.Lookup(addr) i2paddr, err := c.SAM.Lookup(addr)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View file

@ -18,7 +18,6 @@ import (
type Manager struct { type Manager struct {
resolver.Resolver resolver.Resolver
socks5.Config socks5.Config
*sam3.SAM
conns []*conn.Conn conns []*conn.Conn
datadir string datadir string
host string host string
@ -51,7 +50,7 @@ func (m Manager) DialI2P(ctx context.Context, addr string) (*sam3.SAMConn, error
} }
} }
log.Println("Creating a new connection in connection tree.", m.datadir) log.Println("Creating a new connection in connection tree.", m.datadir)
newconn, err := conn.NewConn(*m.SAM, addr, m.datadir, m.samopts) newconn, err := conn.NewConn(m.samhost, m.samport, addr, m.datadir, m.samopts)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -98,11 +97,6 @@ func NewManagerFromOptions(opts ...func(*Manager) error) (*Manager, error) {
} }
} }
log.Println("preparing SAM-multiplexing SOCKS proxy on", m.host, m.port, "->", m.samhost, m.samport) log.Println("preparing SAM-multiplexing SOCKS proxy on", m.host, m.port, "->", m.samhost, m.samport)
var err error
m.SAM, err = sam3.NewSAM(m.samhost + ":" + m.samport)
if err != nil {
return nil, err
}
if r, err := resolver.NewResolver(m.samhost, m.samport); err == nil { if r, err := resolver.NewResolver(m.samhost, m.samport); err == nil {
m.Config = socks5.Config{ m.Config = socks5.Config{
Resolver: r, Resolver: r,