no message
This commit is contained in:
@ -21,14 +21,16 @@ var (
|
|||||||
app *kingpin.Application
|
app *kingpin.Application
|
||||||
)
|
)
|
||||||
|
|
||||||
//Start argsStr: is the whole command line args string
|
//Start
|
||||||
|
//serviceID : is service identify id,different service's id should be difference
|
||||||
|
//serviceArgsStr: is the whole command line args string
|
||||||
//such as :
|
//such as :
|
||||||
//1."http -t tcp -p :8989"
|
//1."http -t tcp -p :8989"
|
||||||
//2."socks -t tcp -p :8989"
|
//2."socks -t tcp -p :8989"
|
||||||
//and so on.
|
//and so on.
|
||||||
//if an error occured , errStr will be the error reason
|
//if an error occured , errStr will be the error reason
|
||||||
//if start success, errStr is empty.
|
//if start success, errStr is empty.
|
||||||
func Start(argsStr string) (errStr string) {
|
func Start(serviceID,serviceArgsStr string) (errStr string) {
|
||||||
//define args
|
//define args
|
||||||
tcpArgs := services.TCPArgs{}
|
tcpArgs := services.TCPArgs{}
|
||||||
httpArgs := services.HTTPArgs{}
|
httpArgs := services.HTTPArgs{}
|
||||||
@ -238,7 +240,7 @@ func Start(argsStr string) (errStr string) {
|
|||||||
spsArgs.ParentCompress = sps.Flag("parent-compress", "auto compress/decompress data on parent connection").Short('M').Default("false").Bool()
|
spsArgs.ParentCompress = sps.Flag("parent-compress", "auto compress/decompress data on parent connection").Short('M').Default("false").Bool()
|
||||||
|
|
||||||
//parse args
|
//parse args
|
||||||
_args := strings.Fields(strings.Trim(argsStr, " "))
|
_args := strings.Fields(strings.Trim(serviceArgsStr, " "))
|
||||||
args := []string{}
|
args := []string{}
|
||||||
for _, a := range _args {
|
for _, a := range _args {
|
||||||
args = append(args, strings.Trim(a, "\""))
|
args = append(args, strings.Trim(a, "\""))
|
||||||
@ -318,49 +320,41 @@ func Start(argsStr string) (errStr string) {
|
|||||||
//regist services and run service
|
//regist services and run service
|
||||||
switch serviceName {
|
switch serviceName {
|
||||||
case "http":
|
case "http":
|
||||||
services.Regist("http", services.NewHTTP(), httpArgs)
|
services.Regist(serviceID, services.NewHTTP(), httpArgs)
|
||||||
case "tcp":
|
case "tcp":
|
||||||
services.Regist("tcp", services.NewTCP(), tcpArgs)
|
services.Regist(serviceID, services.NewTCP(), tcpArgs)
|
||||||
case "udp":
|
case "udp":
|
||||||
services.Regist("udp", services.NewUDP(), udpArgs)
|
services.Regist(serviceID, services.NewUDP(), udpArgs)
|
||||||
case "tserver":
|
case "tserver":
|
||||||
services.Regist("tserver", services.NewTunnelServerManager(), tunnelServerArgs)
|
services.Regist(serviceID, services.NewTunnelServerManager(), tunnelServerArgs)
|
||||||
case "tclient":
|
case "tclient":
|
||||||
services.Regist("tclient", services.NewTunnelClient(), tunnelClientArgs)
|
services.Regist(serviceID, services.NewTunnelClient(), tunnelClientArgs)
|
||||||
case "tbridge":
|
case "tbridge":
|
||||||
services.Regist("tbridge", services.NewTunnelBridge(), tunnelBridgeArgs)
|
services.Regist(serviceID, services.NewTunnelBridge(), tunnelBridgeArgs)
|
||||||
case "server":
|
case "server":
|
||||||
services.Regist("server", services.NewMuxServerManager(), muxServerArgs)
|
services.Regist(serviceID, services.NewMuxServerManager(), muxServerArgs)
|
||||||
case "client":
|
case "client":
|
||||||
services.Regist("client", services.NewMuxClient(), muxClientArgs)
|
services.Regist(serviceID, services.NewMuxClient(), muxClientArgs)
|
||||||
case "bridge":
|
case "bridge":
|
||||||
services.Regist("bridge", services.NewMuxBridge(), muxBridgeArgs)
|
services.Regist(serviceID, services.NewMuxBridge(), muxBridgeArgs)
|
||||||
case "socks":
|
case "socks":
|
||||||
services.Regist("socks", services.NewSocks(), socksArgs)
|
services.Regist(serviceID, services.NewSocks(), socksArgs)
|
||||||
case "sps":
|
case "sps":
|
||||||
services.Regist("sps", services.NewSPS(), spsArgs)
|
services.Regist(serviceID, services.NewSPS(), spsArgs)
|
||||||
}
|
}
|
||||||
_, err = services.Run(serviceName)
|
_, err = services.Run(serviceID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Sprintf("run service [%s] fail, ERR:%s", serviceName, err)
|
return fmt.Sprintf("run service [%s:%s] fail, ERR:%s",serviceID, serviceName, err)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func Stop(service string) {
|
func Stop(serviceID string) {
|
||||||
s := getServiceName(service)
|
services.Stop(serviceID)
|
||||||
if s == "" {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
services.Stop(s)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsRunning(service string) bool {
|
func IsRunning(serviceID string) bool {
|
||||||
s := getServiceName(service)
|
srv := services.GetService(serviceID)
|
||||||
if s == "" {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
srv := services.GetService(s)
|
|
||||||
if srv == nil {
|
if srv == nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -410,14 +404,6 @@ func IsRunning(service string) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func getServiceName(args string) string {
|
|
||||||
s := strings.Fields(strings.Trim(args, " \t"))
|
|
||||||
if len(s) == 0 {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
return s[0]
|
|
||||||
}
|
|
||||||
|
|
||||||
func PortIsAlive(address string, network ...string) string {
|
func PortIsAlive(address string, network ...string) string {
|
||||||
time.Sleep(time.Second)
|
time.Sleep(time.Second)
|
||||||
n := "tcp"
|
n := "tcp"
|
||||||
|
|||||||
@ -6,18 +6,18 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
//export Start
|
//export Start
|
||||||
func Start(argsStr *C.char) (errStr *C.char) {
|
func Start(serviceID *C.char,serviceArgsStr *C.char) (errStr *C.char) {
|
||||||
return C.CString(sdk.Start(C.GoString(argsStr)))
|
return C.CString(sdk.Start(C.GoString(serviceID),C.GoString(serviceArgsStr)))
|
||||||
}
|
}
|
||||||
|
|
||||||
//export Stop
|
//export Stop
|
||||||
func Stop(service *C.char) {
|
func Stop(serviceID *C.char) {
|
||||||
sdk.Stop(C.GoString(service))
|
sdk.Stop(C.GoString(serviceID))
|
||||||
}
|
}
|
||||||
|
|
||||||
//export IsRunning
|
//export IsRunning
|
||||||
func IsRunning(service *C.char) C.int {
|
func IsRunning(serviceID *C.char) C.int {
|
||||||
if sdk.IsRunning(C.GoString(service)) {
|
if sdk.IsRunning(C.GoString(serviceID)) {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
Reference in New Issue
Block a user