Support setting bypassDomain Update flutter version Fix android service issues Fix macos dock exit button issues Add route address setting Optimize provider view
48 lines
1.2 KiB
Go
48 lines
1.2 KiB
Go
package main
|
|
|
|
import "C"
|
|
import (
|
|
"core/state"
|
|
"encoding/json"
|
|
"fmt"
|
|
)
|
|
|
|
//export getCurrentProfileName
|
|
func getCurrentProfileName() *C.char {
|
|
if state.CurrentState == nil {
|
|
return C.CString("")
|
|
}
|
|
return C.CString(state.CurrentState.CurrentProfileName)
|
|
}
|
|
|
|
//export getAndroidVpnOptions
|
|
func getAndroidVpnOptions() *C.char {
|
|
options := state.AndroidVpnOptions{
|
|
Enable: state.CurrentState.Enable,
|
|
Port: state.CurrentRawConfig.MixedPort,
|
|
Ipv4Address: state.DefaultIpv4Address,
|
|
Ipv6Address: state.GetIpv6Address(),
|
|
AccessControl: state.CurrentState.AccessControl,
|
|
SystemProxy: state.CurrentState.SystemProxy,
|
|
AllowBypass: state.CurrentState.AllowBypass,
|
|
RouteAddress: state.CurrentState.RouteAddress,
|
|
BypassDomain: state.CurrentState.BypassDomain,
|
|
DnsServerAddress: state.GetDnsServerAddress(),
|
|
}
|
|
data, err := json.Marshal(options)
|
|
if err != nil {
|
|
fmt.Println("Error:", err)
|
|
return C.CString("")
|
|
}
|
|
return C.CString(string(data))
|
|
}
|
|
|
|
//export setState
|
|
func setState(s *C.char) {
|
|
paramsString := C.GoString(s)
|
|
err := json.Unmarshal([]byte(paramsString), state.CurrentState)
|
|
if err != nil {
|
|
return
|
|
}
|
|
}
|