mirror of
https://github.com/amnezia-vpn/amnezia-libxray.git
synced 2026-05-17 06:55:44 +03:00
31 lines
957 B
Go
31 lines
957 B
Go
package libXray
|
|
|
|
import (
|
|
"syscall"
|
|
|
|
"github.com/amnezia-vpn/amnezia-libxray/nodep"
|
|
xinternet "github.com/amnezia-vpn/amnezia-xray-core/transport/internet"
|
|
)
|
|
|
|
// Give a callback before connection beginning. Useful for Android development.
|
|
// It depends on xray:api:beta
|
|
func RegisterDialerController(controller DialerController) string {
|
|
err := xinternet.RegisterDialerController(func(network, address string, conn syscall.RawConn) error {
|
|
return conn.Control(func(fd uintptr) {
|
|
controller.ProtectFd(int(fd))
|
|
})
|
|
})
|
|
return nodep.WrapError(err)
|
|
}
|
|
|
|
// Give a callback before listener beginning. Useful for Android development.
|
|
// It depends on xray:api:beta
|
|
func RegisterListenerController(controller DialerController) string {
|
|
err := xinternet.RegisterListenerController(func(network, address string, conn syscall.RawConn) error {
|
|
return conn.Control(func(fd uintptr) {
|
|
controller.ProtectFd(int(fd))
|
|
})
|
|
})
|
|
return nodep.WrapError(err)
|
|
}
|