Use env lib, add PROXY_PORT ENV variable
This commit is contained in:
@@ -1,34 +1,47 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/armon/go-socks5"
|
||||
"github.com/caarlos0/env"
|
||||
)
|
||||
|
||||
func main() {
|
||||
type params struct {
|
||||
User string `env:"PROXY_USER" envDefault:""`
|
||||
Password string `env:"PROXY_PASSWORD" envDefault:""`
|
||||
Port string `env:"PROXY_PORT" envDefault:"1080"`
|
||||
}
|
||||
|
||||
conf := &socks5.Config{
|
||||
func main() {
|
||||
// Working with app params
|
||||
cfg := params{}
|
||||
err := env.Parse(&cfg)
|
||||
if err != nil {
|
||||
log.Printf("%+v\n", err)
|
||||
}
|
||||
|
||||
//Initialize socks5 config
|
||||
socsk5conf := &socks5.Config{
|
||||
Logger: log.New(os.Stdout, "", log.LstdFlags),
|
||||
}
|
||||
|
||||
if os.Getenv("PROXY_USER")+os.Getenv("PROXY_PASSWORD") != "" {
|
||||
if cfg.User+cfg.Password != "" {
|
||||
creds := socks5.StaticCredentials{
|
||||
os.Getenv("PROXY_USER"): os.Getenv("PROXY_PASSWORD"),
|
||||
}
|
||||
cator := socks5.UserPassAuthenticator{Credentials: creds}
|
||||
conf.AuthMethods = []socks5.Authenticator{cator}
|
||||
socsk5conf.AuthMethods = []socks5.Authenticator{cator}
|
||||
}
|
||||
|
||||
server, err := socks5.New(conf)
|
||||
server, err := socks5.New(socsk5conf)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
fmt.Println("Start listening ...")
|
||||
if err := server.ListenAndServe("tcp", ":1080"); err != nil {
|
||||
log.Printf("Start listening proxy service on port %s\n", cfg.Port)
|
||||
if err := server.ListenAndServe("tcp", ":"+cfg.Port); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user