mirror of https://github.com/snail007/goproxy
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.4 KiB
Go
76 lines
1.4 KiB
Go
package services
|
|
|
|
// tcp := app.Command("tcp", "proxy on tcp mode")
|
|
// t := tcp.Flag("tcp-timeout", "tcp timeout milliseconds when connect to real server or parent proxy").Default("2000").Int()
|
|
|
|
const (
|
|
TYPE_TCP = "tcp"
|
|
TYPE_UDP = "udp"
|
|
TYPE_HTTP = "http"
|
|
TYPE_TLS = "tls"
|
|
CONN_CONTROL = uint8(1)
|
|
CONN_SERVER = uint8(2)
|
|
CONN_CLIENT = uint8(3)
|
|
)
|
|
|
|
type Args struct {
|
|
Local *string
|
|
Parent *string
|
|
CertBytes []byte
|
|
KeyBytes []byte
|
|
}
|
|
type TunnelServerArgs struct {
|
|
Args
|
|
IsUDP *bool
|
|
Key *string
|
|
Timeout *int
|
|
}
|
|
type TunnelClientArgs struct {
|
|
Args
|
|
IsUDP *bool
|
|
Key *string
|
|
Timeout *int
|
|
}
|
|
type TunnelBridgeArgs struct {
|
|
Args
|
|
Timeout *int
|
|
}
|
|
type TCPArgs struct {
|
|
Args
|
|
ParentType *string
|
|
IsTLS *bool
|
|
Timeout *int
|
|
PoolSize *int
|
|
CheckParentInterval *int
|
|
}
|
|
|
|
type HTTPArgs struct {
|
|
Args
|
|
Always *bool
|
|
HTTPTimeout *int
|
|
Interval *int
|
|
Blocked *string
|
|
Direct *string
|
|
AuthFile *string
|
|
Auth *[]string
|
|
ParentType *string
|
|
LocalType *string
|
|
Timeout *int
|
|
PoolSize *int
|
|
CheckParentInterval *int
|
|
}
|
|
type UDPArgs struct {
|
|
Args
|
|
ParentType *string
|
|
Timeout *int
|
|
PoolSize *int
|
|
CheckParentInterval *int
|
|
}
|
|
|
|
func (a *TCPArgs) Protocol() string {
|
|
if *a.IsTLS {
|
|
return "tls"
|
|
}
|
|
return "tcp"
|
|
}
|