diff --git a/connectivity/tor/tormanager.go b/connectivity/tor/tormanager.go index 3f4f4f8..0adc37c 100644 --- a/connectivity/tor/tormanager.go +++ b/connectivity/tor/tormanager.go @@ -28,6 +28,16 @@ func NewTorManager(socksPort int, controlPort int, torPath string, torrc string) torManager.socksPort = socksPort torManager.controlPort = controlPort + fmt.Println("NewTorManager") + go func() { + fmt.Printf("Monitor\n") + for { + time.Sleep(1 * time.Second) + resp, err := torManager.GetStatus() + fmt.Println(resp, err) + } + }() + err := torManager.TestConnection() if err == nil { @@ -141,3 +151,18 @@ func (tm *Manager) TestConnection() error { } return errors.New(proxyStatusMessage(proxyStatus)) } + +func (tm *Manager) GetStatus() ([]string, error) { + controlAddress := fmt.Sprintf("127.0.0.1:%d", tm.controlPort) + c, err := bulb.Dial("tcp4", controlAddress) + if err != nil { + return []string{}, err + } + defer c.Close() + c.Request("AUTHENTICATE \"\"") + resp, err := c.Request("GETINFO status/bootstrap-phase") + if err != nil { + return []string{}, err + } + return resp.RawLines, nil +}