server: remove tor for now :(
This commit is contained in:
parent
9605eb88bd
commit
b2f10dbf50
|
@ -77,16 +77,6 @@ func New(cfg Config) (*Server, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
t, err := StartTor(TorConfig{
|
|
||||||
DataDir: cfg.TorDataDir,
|
|
||||||
HashedControlPassword: cfg.TorHashedPassword,
|
|
||||||
ClearPassword: cfg.TorPassword,
|
|
||||||
Timeout: 30 * time.Second,
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
rpcs := rpc.NewServer()
|
rpcs := rpc.NewServer()
|
||||||
|
|
||||||
s := &Server{
|
s := &Server{
|
||||||
|
@ -148,9 +138,7 @@ func (s *Server) onionPath(name string) string {
|
||||||
return filepath.Join(s.cfg.TorDataDir, name)
|
return filepath.Join(s.cfg.TorDataDir, name)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) Director(r *http.Request) {
|
func (s *Server) Director(r *http.Request) {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
r.Header.Del("X-Forwarded-For")
|
r.Header.Del("X-Forwarded-For")
|
||||||
|
|
|
@ -1,80 +0,0 @@
|
||||||
package server
|
|
||||||
|
|
||||||
import (
|
|
||||||
"crypto/rsa"
|
|
||||||
"log"
|
|
||||||
"math/rand"
|
|
||||||
"strconv"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/Yawning/bulb"
|
|
||||||
"github.com/sycamoreone/orc/tor"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TorConfig is a wrapper struct for tor configuration.
|
|
||||||
type TorConfig struct {
|
|
||||||
DataDir string
|
|
||||||
HashedControlPassword string
|
|
||||||
ClearPassword string
|
|
||||||
Timeout time.Duration
|
|
||||||
}
|
|
||||||
|
|
||||||
// StartTor starts a new instance of tor or doesn't with the reason why.
|
|
||||||
func StartTor(cfg TorConfig) (*Tor, error) {
|
|
||||||
tc := tor.NewConfig()
|
|
||||||
tc.Set("DataDirectory", cfg.DataDir)
|
|
||||||
tc.Set("HashedControlPassword", cfg.HashedControlPassword)
|
|
||||||
tc.Set("SocksPort", "0")
|
|
||||||
cp := rand.Intn(64512)
|
|
||||||
tc.Set("ControlPort", cp)
|
|
||||||
tc.Timeout = cfg.Timeout
|
|
||||||
|
|
||||||
tcmd, err := tor.NewCmd(tc)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
err = tcmd.Start()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("tor started, sleeping for a few seconds for it to settle...")
|
|
||||||
time.Sleep(5 * time.Second)
|
|
||||||
|
|
||||||
bc, err := bulb.Dial("tcp", "127.0.0.1:"+strconv.Itoa(cp))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
err = bc.Authenticate(cfg.ClearPassword)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
t := &Tor{
|
|
||||||
tc: tc,
|
|
||||||
tcmd: tcmd,
|
|
||||||
bc: bc,
|
|
||||||
}
|
|
||||||
|
|
||||||
return t, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Tor is a higher level wrapper to a child tor process
|
|
||||||
type Tor struct {
|
|
||||||
tc *tor.Config
|
|
||||||
tcmd *tor.Cmd
|
|
||||||
bc *bulb.Conn
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddOnion adds an onion service to this machine with the given private key
|
|
||||||
// (can be nil for an auto-generated key), virtual onion port and TCP destunation.
|
|
||||||
func (t *Tor) AddOnion(pKey *rsa.PrivateKey, virtPort uint16, destination string) (*bulb.OnionInfo, error) {
|
|
||||||
return t.bc.AddOnion([]bulb.OnionPortSpec{
|
|
||||||
{
|
|
||||||
VirtPort: virtPort,
|
|
||||||
Target: destination,
|
|
||||||
},
|
|
||||||
}, pKey, true)
|
|
||||||
}
|
|
Loading…
Reference in New Issue