work in progress haskell bindings

This commit is contained in:
2024-07-26 21:48:04 +01:00
parent aa4b18f39d
commit 3a40e687a5

View File

@@ -17,8 +17,8 @@ import (
// --------------------------------- Container Control ----------------------------------------
//export StartContainer
func StartContainer(IP string) (output *C.char) {
container, err := abstractions.StartContainer(IP)
func StartContainer(IP *C.char) (output *C.char) {
container, err := abstractions.StartContainer(C.GoString(IP))
if err != nil {
return C.CString(err.Error())
}
@@ -26,8 +26,8 @@ func StartContainer(IP string) (output *C.char) {
}
//export RemoveContainer
func RemoveContainer(IP string, ID string) (output *C.char) {
err := abstractions.RemoveContainer(IP, ID)
func RemoveContainer(IP *C.char, ID *C.char) (output *C.char) {
err := abstractions.RemoveContainer(C.GoString(IP), C.GoString(ID))
if err != nil {
return C.CString(err.Error())
}
@@ -76,8 +76,8 @@ func RemoveContainer(IP string, ID string) (output *C.char) {
// --------------------------------- Get Specs ----------------------------------------
//export GetSpecs
func GetSpecs(IP string) (output *C.char) {
specs, err := abstractions.GetSpecs(IP)
func GetSpecs(IP *C.char) (output *C.char) {
specs, err := abstractions.GetSpecs(C.GoString(IP))
if err != nil {
return C.CString(err.Error())
}
@@ -85,13 +85,12 @@ func GetSpecs(IP string) (output *C.char) {
}
//export Init
func Init(customConfig string) (output *C.char) {
init, err := abstractions.Init(customConfig)
func Init(customConfig *C.char) (output *C.char) {
init, err := abstractions.Init(C.GoString(customConfig))
if err != nil {
return C.CString(err.Error())
}
return ConvertStructToJSONString(init)
}
// --------------------------------- P2P Controls -----------------------------------
@@ -115,9 +114,9 @@ func UpdateIPTable() (output *C.char) {
}
//export EscapeFirewall
func EscapeFirewall(HostOutsideNATIP string, HostOutsideNATPort string, internalPort string) (output *C.char) {
func EscapeFirewall(HostOutsideNATIP *C.char, HostOutsideNATPort *C.char, internalPort *C.char) (output *C.char) {
// Get free port from P2PRC server node
serverPort, err := frp.GetFRPServerPort("http://" + HostOutsideNATIP + ":" + HostOutsideNATPort)
serverPort, err := frp.GetFRPServerPort("http://" + C.GoString(HostOutsideNATIP) + ":" + C.GoString(HostOutsideNATPort))
if err != nil {
return C.CString(err.Error())
@@ -125,7 +124,7 @@ func EscapeFirewall(HostOutsideNATIP string, HostOutsideNATPort string, internal
time.Sleep(5 * time.Second)
ExposedPort, err := frp.StartFRPClientForServer(HostOutsideNATIP+":"+HostOutsideNATPort, serverPort, internalPort, "")
ExposedPort, err := frp.StartFRPClientForServer(C.GoString(HostOutsideNATIP)+":"+C.GoString(HostOutsideNATPort), C.GoString(serverPort), C.GoString(internalPort), "")
if err != nil {
return C.CString(err.Error())
}
@@ -134,8 +133,8 @@ func EscapeFirewall(HostOutsideNATIP string, HostOutsideNATPort string, internal
}
//export MapPort
func MapPort(Port string) *C.char {
entireAddress, _, err := abstractions.MapPort(Port)
func MapPort(Port *C.char) *C.char {
entireAddress, _, err := abstractions.MapPort(C.GoString(Port))
if err != nil {
return C.CString(err.Error())
}