diff --git a/cmd/macFrp/externFrp.go b/cmd/macFrp/externFrp.go new file mode 100644 index 00000000..a068229d --- /dev/null +++ b/cmd/macFrp/externFrp.go @@ -0,0 +1,34 @@ +package main + +/* + */ +import "C" +import ( + "github.com/fatedier/frp/cmd/frpc/sub" + "github.com/fatedier/frp/cmd/frps/frps" + "github.com/fatedier/golib/crypto" +) + +//export RunFrps +func RunFrps(cfgFilePath *C.char) C.int { + path := C.GoString(cfgFilePath) + crypto.DefaultSalt = "frp" + + if err := frps.RunFrps(path); err != nil { + println(err.Error()) + return C.int(0) + } + return C.int(1) +} + +//export RunFrpc +func RunFrpc(cfgFilePath *C.char) C.int { + path := C.GoString(cfgFilePath) + crypto.DefaultSalt = "frp" + + if err := sub.RunFrpc(path); err != nil { + println(err.Error()) + return C.int(0) + } + return C.int(1) +} diff --git a/cmd/macFrp/frp.go b/cmd/macFrp/frp.go new file mode 100644 index 00000000..f9641c5a --- /dev/null +++ b/cmd/macFrp/frp.go @@ -0,0 +1,52 @@ +package main + +/* + */ +import "C" + +import ( + "github.com/fatedier/frp/cmd/frpc/sub" + "github.com/fatedier/frp/cmd/frps/frps" + "github.com/fatedier/frp/utils/version" +) + +//export StopFrpc +func StopFrpc() C.int { + if err := sub.StopFrp(); err != nil { + println(err.Error()) + return C.int(0) + } + return C.int(1) +} + +//export IsFrpcRunning +func IsFrpcRunning() bool { + return sub.IsFrpRunning() +} + +//export StopFrps +func StopFrps() C.int { + if err := frps.StopFrps(); err != nil { + println(err.Error()) + return C.int(0) + } + return C.int(1) +} + +//export IsFrpsRunning +func IsFrpsRunning() bool { + return frps.IsFrpsRunning() +} + +//export Version +func Version() string { + return version.Full() +} + +func main() { + // frpsPath := os.Args[2] + // RunFrps(C.CString(frpsPath)) + // TestFrps(C.CString(frpsPath)) + c := make(chan bool) + <-c +}