@@ -14,6 +14,7 @@ import (
1414 "os/signal"
1515 "path/filepath"
1616 "slices"
17+ "strconv"
1718 "strings"
1819 "sync"
1920 "sync/atomic"
@@ -275,7 +276,7 @@ func (p *proxyApp) getSocks() (proxy.Dialer, *http.Client, error) {
275276 return http .ErrUseLastResponse
276277 },
277278 }
278- p .logger .Debug ().Msgf ("[%s] Current chain: %s" , chainType , p .printProxyChain (copyProxyList ))
279+ p .logger .Debug ().Msgf ("[%s] Request chain: %s" , chainType , p .printProxyChain (copyProxyList ))
279280 return dialer , socks , nil
280281}
281282
@@ -635,15 +636,19 @@ func New(conf *Config) *proxyApp {
635636 p .logger .Fatal ().Msg ("[proxychain config] Proxy list is empty" )
636637 }
637638 seen := make (map [string ]struct {})
638- for _ , pr := range p .proxychain .ProxyList {
639+ for idx , pr := range p .proxychain .ProxyList {
639640 var addr string
640- if strings .HasPrefix (pr .Address , ":" ) {
641+ i , err := strconv .Atoi (pr .Address )
642+ if err == nil {
643+ addr = fmt .Sprintf ("127.0.0.1:%d" , i )
644+ } else if strings .HasPrefix (pr .Address , ":" ) {
641645 addr = fmt .Sprintf ("127.0.0.1%s" , pr .Address )
642646 } else {
643647 addr = pr .Address
644648 }
645649 if _ , ok := seen [addr ]; ! ok {
646650 seen [addr ] = struct {}{}
651+ p .proxychain .ProxyList [idx ].Address = addr
647652 } else {
648653 p .logger .Fatal ().Msgf ("[proxychain config] Duplicate entry `%s`" , addr )
649654 }
@@ -694,9 +699,6 @@ func New(conf *Config) *proxyApp {
694699 hs .Protocols .SetHTTP1 (true )
695700 p .httpServer = hs
696701 p .httpServerAddr = conf .AddrHTTP
697- if strings .HasPrefix (p .httpServerAddr , ":" ) {
698- p .httpServerAddr = fmt .Sprintf ("127.0.0.1%s" , p .httpServerAddr )
699- }
700702 hc := & http.Client {
701703 Transport : & http.Transport {
702704 TLSClientConfig : & tls.Config {InsecureSkipVerify : true },
@@ -707,7 +709,7 @@ func New(conf *Config) *proxyApp {
707709 }
708710 p .httpClient = hc
709711 if p .proxychain != nil {
710- p .logger .Info ().Msgf ("SOCKS5 proxy chain [%s]: %s" , p .proxychain .Chain .Type , p .printProxyChain (p .proxychain .ProxyList ))
712+ p .logger .Info ().Msgf ("SOCKS5 Proxy [%s] chain : %s" , p .proxychain .Chain .Type , p .printProxyChain (p .proxychain .ProxyList ))
711713 } else {
712714 p .logger .Info ().Msgf ("SOCKS5 Proxy: %s" , conf .AddrSOCKS )
713715 }
0 commit comments