bug fix, connect failed when no forward proxy
This commit is contained in:
parent
253b18ddf2
commit
0d98dd3d6c
17
main.go
17
main.go
@ -18,8 +18,10 @@ var (
|
|||||||
Method, Password string
|
Method, Password string
|
||||||
CertFile, KeyFile string
|
CertFile, KeyFile string
|
||||||
PrintVersion bool
|
PrintVersion bool
|
||||||
|
Filter string
|
||||||
|
|
||||||
proxyURL *url.URL
|
proxyURL *url.URL
|
||||||
|
filters []string
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -35,12 +37,14 @@ func init() {
|
|||||||
flag.BoolVar(&UseHttp, "http", false, "use http tunnel")
|
flag.BoolVar(&UseHttp, "http", false, "use http tunnel")
|
||||||
flag.StringVar(&SMethod, "sm", "rc4-md5", "shadowsocks cipher method")
|
flag.StringVar(&SMethod, "sm", "rc4-md5", "shadowsocks cipher method")
|
||||||
flag.StringVar(&SPassword, "sp", "ginuerzh@gmail.com", "shadowsocks cipher password")
|
flag.StringVar(&SPassword, "sp", "ginuerzh@gmail.com", "shadowsocks cipher password")
|
||||||
|
flag.StringVar(&Filter, "f", "", "comma separated host/url wildcard not go through tunnel")
|
||||||
flag.BoolVar(&PrintVersion, "v", false, "print version")
|
flag.BoolVar(&PrintVersion, "v", false, "print version")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
log.SetFlags(log.LstdFlags | log.Lshortfile)
|
log.SetFlags(log.LstdFlags | log.Lshortfile)
|
||||||
|
|
||||||
proxyURL, _ = parseURL(Proxy)
|
proxyURL, _ = parseURL(Proxy)
|
||||||
|
filters = parseFilter(Filter)
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -72,9 +76,22 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func parseURL(rawurl string) (*url.URL, error) {
|
func parseURL(rawurl string) (*url.URL, error) {
|
||||||
|
if len(rawurl) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
if !strings.HasPrefix(rawurl, "http://") &&
|
if !strings.HasPrefix(rawurl, "http://") &&
|
||||||
!strings.HasPrefix(rawurl, "socks://") {
|
!strings.HasPrefix(rawurl, "socks://") {
|
||||||
rawurl = "http://" + rawurl
|
rawurl = "http://" + rawurl
|
||||||
}
|
}
|
||||||
return url.Parse(rawurl)
|
return url.Parse(rawurl)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func parseFilter(rawfilter string) (filters []string) {
|
||||||
|
for _, s := range strings.Split(rawfilter, ",") {
|
||||||
|
s = strings.TrimSpace(s)
|
||||||
|
if len(s) > 0 {
|
||||||
|
filters = append(filters)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user