more work on manager

This commit is contained in:
idk
2018-09-12 16:34:45 -04:00
parent 5b33d09b0c
commit e9bc78e215
4 changed files with 70 additions and 16 deletions

View File

@ -163,12 +163,12 @@ TLS configuration is experimental. It might not be possible(To multiplex http
and https on the same SAM tunnel).
-----BEGIN PGP SIGNATURE-----
iQEzBAEBCAAdFiEEcNIGBzi++AUjrK/311wDs5teFOEFAluZc9gACgkQ11wDs5te
FOGpYQf/Vs8Mu8cKU5wVL+bwCUaBYXJYFBvqHUhtCS/T1pBIfdwO1FnTgJpvEoPl
QzDwdqZ2czwng2wCIQLNO/Hs+6n7lRmtENqREFxIS2tLD2BqviGoW4Qi9ypF0kEu
pQ9ANgOXbdF12FJHe/W1TwMiKHx2cq6p/DTuiWFTyqFEB/g32lUM5w6pxKW1IOEJ
fBZ0JmnnAu6CvHklUjUuiwUfYqcJRAGXb0qdX+kUNbNvFzd1j01B8abEIhKY/y7c
Co+Lk1Lr1ZdpSDZ/tauD8aEXsOTOkCo2ajS1xUm1b91q50dArOwWRohdNOwR2MxA
rXETMkMkleF8KqjS3UTEYW9qv62o7A==
=mDsv
iQEzBAEBCAAdFiEEcNIGBzi++AUjrK/311wDs5teFOEFAluZeGEACgkQ11wDs5te
FOHldQf9Gl6pSJjVNe+9kHGP7VhuDRLA1XsN/ZIPqDeCeoOVqbg00iL7rgnO8TN9
rI21YVSf9mEW/apUc3Xs7tyRgVrMkzlO/EZRM9axYlApWUtdpWIUqZjzl6NCt2dt
4hM55bQG8h04GTNxqKxs68YhHVlI7dQUHMMf4V7dF1NrbDdpJeTlEM3Gw6qwfThE
t6pbcJZwnBGGuBsvxukB0dbXB0ojtZQR/ce4QeuKD5ZHhwp1d+XHQGYZ927JkiLN
NRyFYi5kMuWRs/JZU24tSt/oY88nDjS0/q8hwYiOQJmbW9Rth7q2Ampdohg3lFek
O+YgsXsGrDPxRDCfbAmMjQuBzRWcAw==
=n16S
-----END PGP SIGNATURE-----

View File

@ -3,6 +3,7 @@ package sammanager
import (
"context"
"net"
"log"
)
import (
@ -16,8 +17,8 @@ type SAMManager struct {
save bool
config *i2ptunconf.Conf
TargetHost string
TargetPort string
ServerHost string
ServerPort string
SamHost string
SamPort string
@ -52,6 +53,9 @@ func (s *SAMManager) FindForwarder(lookup string) (bool, int, string) {
}
func (s *SAMManager) LookupForwarder(lookup string, label ...string) (bool, string) {
for _, l := range s.config.Labels {
log.Println(l)
}
return false, ""
}
@ -59,10 +63,23 @@ func (s *SAMManager) Dial(ctx context.Context, network, address string) (*net.Co
return nil, nil
}
func (s *SAMManager) NewSAMManager(opts ...func(*SAMManager) error) (*SAMManager, error) {
func NewSAMManagerFromOptions(opts ...func(*SAMManager) error) (*SAMManager, error) {
var s SAMManager
s.FilePath = "tunnels.ini"
s.save = true
s.config = i2ptunconf.NewI2PBlankTunConf()
s.ServerHost = "localhost"
s.ServerPort = "7957"
s.SamHost = "localhost"
s.SamPort = "7656"
for _, o := range opts {
if err := o(&s); err != nil {
return nil, err
}
}
return nil, nil
}
func (s *SAMManager) NewSAMManagerStrings(servhost, servpost samhost, samport string) (*SAMManager, error) {
return nil, nil
func (s *SAMManager) NewSAMManager(inifile, servhost, servpost, samhost, samport string) (*SAMManager, error) {
return NewSamManagerFromOptions()
}

View File

@ -27,7 +27,7 @@ func SetManagerSaveFile(b bool) func(*SAMManager) error {
//SetManagerHost sets the host of the SAMManager's SAM bridge
func SetManagerHost(s string) func(*SAMManager) error {
return func(c *SAMManager) error {
c.TargetHost = s
c.ServerHost = s
return nil
}
}
@ -37,10 +37,10 @@ func SetManagerPort(s string) func(*SAMManager) error {
return func(c *SAMManager) error {
port, err := strconv.Atoi(s)
if err != nil {
return fmt.Errorf("Invalid Target Port %s; non-number ", s)
return fmt.Errorf("Invalid Server Port %s; non-number ", s)
}
if port < 65536 && port > -1 {
c.TargetPort = s
c.ServerPort = s
return nil
}
return fmt.Errorf("Invalid port")

View File

@ -1 +1,38 @@
package sammanager
import (
"log"
"testing"
)
func TestOptionHost(t *testing.T) {
client, err := NewSAMManagerFromOptions(SetManagerHost("127.0.0.1"))
if err != nil {
t.Fatalf("NewSAMManager() Error: %q\n", err)
}
log.Println(client.config.Labels)
}
func TestOptionPort(t *testing.T) {
client, err := NewSAMManagerFromOptions(SetManagerPort("7957"))
if err != nil {
t.Fatalf("NewSAMManager() Error: %q\n", err)
}
log.Println(client.config.Labels)
}
func TestOptionSAMHost(t *testing.T) {
client, err := NewSAMManagerFromOptions(SetManagerSAMHost("127.0.0.1"))
if err != nil {
t.Fatalf("NewSAMManager() Error: %q\n", err)
}
log.Println(client.config.Labels)
}
func TestOptionSAMPort(t *testing.T) {
client, err := NewSAMManagerFromOptions(SetManagerSAMPort("7957"))
if err != nil {
t.Fatalf("NewSAMManager() Error: %q\n", err)
}
log.Println(client.config.Labels)
}