no message

This commit is contained in:
arraykeys
2018-04-17 22:25:10 +08:00
parent d2051e6e37
commit 17335eb92b
2 changed files with 28 additions and 42 deletions

View File

@ -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"

View File

@ -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