37 lines
718 B
Go
37 lines
718 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/rs/zerolog/log"
|
|
|
|
"git.tcp.direct/kayos/go-socks5"
|
|
)
|
|
|
|
var server *socks5.Server
|
|
|
|
type socksLogger struct {
|
|
//
|
|
}
|
|
|
|
var sockLog = socksLogger{}
|
|
|
|
func (s socksLogger) Printf(format string, a ...interface{}) {
|
|
log.Debug().Str("caller", "SOCKS5").Msg(fmt.Sprintf(format, a...))
|
|
}
|
|
|
|
func StartLocalUpstreamProxy(listen string) {
|
|
var err error
|
|
conf := &socks5.Config{Dial: Swamp.MysteryDialer, Logger: sockLog}
|
|
server, err = socks5.New(conf)
|
|
if err != nil {
|
|
log.Error().Err(err).Msg("woot")
|
|
}
|
|
|
|
println("Starting socks5 server on " + listen)
|
|
|
|
if err := server.ListenAndServe("tcp", listen); err != nil {
|
|
log.Error().Err(err).Msg("SOCKS5_server_error")
|
|
}
|
|
}
|