no message
This commit is contained in:
@ -21,14 +21,16 @@ var (
|
||||
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 :
|
||||
//1."http -t tcp -p :8989"
|
||||
//2."socks -t tcp -p :8989"
|
||||
//and so on.
|
||||
//if an error occured , errStr will be the error reason
|
||||
//if start success, errStr is empty.
|
||||
func Start(argsStr string) (errStr string) {
|
||||
func Start(serviceID,serviceArgsStr string) (errStr string) {
|
||||
//define args
|
||||
tcpArgs := services.TCPArgs{}
|
||||
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()
|
||||
|
||||
//parse args
|
||||
_args := strings.Fields(strings.Trim(argsStr, " "))
|
||||
_args := strings.Fields(strings.Trim(serviceArgsStr, " "))
|
||||
args := []string{}
|
||||
for _, a := range _args {
|
||||
args = append(args, strings.Trim(a, "\""))
|
||||
@ -318,49 +320,41 @@ func Start(argsStr string) (errStr string) {
|
||||
//regist services and run service
|
||||
switch serviceName {
|
||||
case "http":
|
||||
services.Regist("http", services.NewHTTP(), httpArgs)
|
||||
services.Regist(serviceID, services.NewHTTP(), httpArgs)
|
||||
case "tcp":
|
||||
services.Regist("tcp", services.NewTCP(), tcpArgs)
|
||||
services.Regist(serviceID, services.NewTCP(), tcpArgs)
|
||||
case "udp":
|
||||
services.Regist("udp", services.NewUDP(), udpArgs)
|
||||
services.Regist(serviceID, services.NewUDP(), udpArgs)
|
||||
case "tserver":
|
||||
services.Regist("tserver", services.NewTunnelServerManager(), tunnelServerArgs)
|
||||
services.Regist(serviceID, services.NewTunnelServerManager(), tunnelServerArgs)
|
||||
case "tclient":
|
||||
services.Regist("tclient", services.NewTunnelClient(), tunnelClientArgs)
|
||||
services.Regist(serviceID, services.NewTunnelClient(), tunnelClientArgs)
|
||||
case "tbridge":
|
||||
services.Regist("tbridge", services.NewTunnelBridge(), tunnelBridgeArgs)
|
||||
services.Regist(serviceID, services.NewTunnelBridge(), tunnelBridgeArgs)
|
||||
case "server":
|
||||
services.Regist("server", services.NewMuxServerManager(), muxServerArgs)
|
||||
services.Regist(serviceID, services.NewMuxServerManager(), muxServerArgs)
|
||||
case "client":
|
||||
services.Regist("client", services.NewMuxClient(), muxClientArgs)
|
||||
services.Regist(serviceID, services.NewMuxClient(), muxClientArgs)
|
||||
case "bridge":
|
||||
services.Regist("bridge", services.NewMuxBridge(), muxBridgeArgs)
|
||||
services.Regist(serviceID, services.NewMuxBridge(), muxBridgeArgs)
|
||||
case "socks":
|
||||
services.Regist("socks", services.NewSocks(), socksArgs)
|
||||
services.Regist(serviceID, services.NewSocks(), socksArgs)
|
||||
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 {
|
||||
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
|
||||
}
|
||||
|
||||
func Stop(service string) {
|
||||
s := getServiceName(service)
|
||||
if s == "" {
|
||||
return
|
||||
}
|
||||
services.Stop(s)
|
||||
func Stop(serviceID string) {
|
||||
services.Stop(serviceID)
|
||||
}
|
||||
|
||||
func IsRunning(service string) bool {
|
||||
s := getServiceName(service)
|
||||
if s == "" {
|
||||
return false
|
||||
}
|
||||
srv := services.GetService(s)
|
||||
func IsRunning(serviceID string) bool {
|
||||
srv := services.GetService(serviceID)
|
||||
if srv == nil {
|
||||
return false
|
||||
}
|
||||
@ -410,14 +404,6 @@ func IsRunning(service string) bool {
|
||||
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 {
|
||||
time.Sleep(time.Second)
|
||||
n := "tcp"
|
||||
|
||||
@ -6,18 +6,18 @@ import (
|
||||
)
|
||||
|
||||
//export Start
|
||||
func Start(argsStr *C.char) (errStr *C.char) {
|
||||
return C.CString(sdk.Start(C.GoString(argsStr)))
|
||||
func Start(serviceID *C.char,serviceArgsStr *C.char) (errStr *C.char) {
|
||||
return C.CString(sdk.Start(C.GoString(serviceID),C.GoString(serviceArgsStr)))
|
||||
}
|
||||
|
||||
//export Stop
|
||||
func Stop(service *C.char) {
|
||||
sdk.Stop(C.GoString(service))
|
||||
func Stop(serviceID *C.char) {
|
||||
sdk.Stop(C.GoString(serviceID))
|
||||
}
|
||||
|
||||
//export IsRunning
|
||||
func IsRunning(service *C.char) C.int {
|
||||
if sdk.IsRunning(C.GoString(service)) {
|
||||
func IsRunning(serviceID *C.char) C.int {
|
||||
if sdk.IsRunning(C.GoString(serviceID)) {
|
||||
return 1
|
||||
}
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user