Chore: merge branch 'with-tun' into plus-pro
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
//go:build build_local
|
||||
// +build build_local
|
||||
|
||||
package script
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
//go:build !build_local && cgo
|
||||
// +build !build_local,cgo
|
||||
|
||||
package script
|
||||
|
||||
|
||||
@@ -195,10 +195,10 @@ func CallPyMainFunction(mtd *constant.Metadata) (string, error) {
|
||||
|
||||
dstIpGo := ""
|
||||
srcIpGo := ""
|
||||
if mtd.SrcIP != nil {
|
||||
if mtd.SrcIP.IsValid() {
|
||||
srcIpGo = mtd.SrcIP.String()
|
||||
}
|
||||
if mtd.DstIP != nil {
|
||||
if mtd.DstIP.IsValid() {
|
||||
dstIpGo = mtd.DstIP.String()
|
||||
}
|
||||
srcIp := C.CString(srcIpGo)
|
||||
@@ -250,10 +250,10 @@ func CallPyShortcut(fn *PyObject, mtd *constant.Metadata) (bool, error) {
|
||||
|
||||
dstIpGo := ""
|
||||
srcIpGo := ""
|
||||
if mtd.SrcIP != nil {
|
||||
if mtd.SrcIP.IsValid() {
|
||||
srcIpGo = mtd.SrcIP.String()
|
||||
}
|
||||
if mtd.DstIP != nil {
|
||||
if mtd.DstIP.IsValid() {
|
||||
dstIpGo = mtd.DstIP.String()
|
||||
}
|
||||
srcIp := C.CString(srcIpGo)
|
||||
|
||||
@@ -5,7 +5,7 @@ package script
|
||||
*/
|
||||
import "C"
|
||||
import (
|
||||
"net"
|
||||
"net/netip"
|
||||
"strconv"
|
||||
"strings"
|
||||
"unsafe"
|
||||
@@ -50,9 +50,9 @@ func resolveIPCallbackFn(cHost *C.char) *C.char {
|
||||
|
||||
//export geoipCallbackFn
|
||||
func geoipCallbackFn(cIP *C.char) *C.char {
|
||||
dstIP := net.ParseIP(C.GoString(cIP))
|
||||
dstIP, err := netip.ParseAddr(C.GoString(cIP))
|
||||
|
||||
if dstIP == nil {
|
||||
if err != nil {
|
||||
emptyC := C.CString("")
|
||||
defer C.free(unsafe.Pointer(emptyC))
|
||||
|
||||
@@ -72,7 +72,7 @@ func geoipCallbackFn(cIP *C.char) *C.char {
|
||||
return lanC
|
||||
}
|
||||
|
||||
record, _ := mmdb.Instance().Country(dstIP)
|
||||
record, _ := mmdb.Instance().Country(dstIP.AsSlice())
|
||||
|
||||
rc := C.CString(strings.ToUpper(record.Country.IsoCode))
|
||||
defer C.free(unsafe.Pointer(rc))
|
||||
@@ -91,20 +91,22 @@ func ruleProviderCallbackFn(cProviderName *C.char, cMetadata *C.struct_Metadata)
|
||||
dstIp := C.GoString(cMetadata.dst_ip)
|
||||
dstPort := strconv.Itoa(int(cMetadata.dst_port))
|
||||
|
||||
dst := net.ParseIP(dstIp)
|
||||
addrType := constant.AtypDomainName
|
||||
dst, err := netip.ParseAddr(dstIp)
|
||||
|
||||
if dst != nil {
|
||||
if dst.To4() != nil {
|
||||
addrType := constant.AtypDomainName
|
||||
if err == nil {
|
||||
if dst.Is4() {
|
||||
addrType = constant.AtypIPv4
|
||||
} else {
|
||||
addrType = constant.AtypIPv6
|
||||
}
|
||||
}
|
||||
|
||||
src, _ := netip.ParseAddr(srcIp)
|
||||
|
||||
metadata := &constant.Metadata{
|
||||
Process: processName,
|
||||
SrcIP: net.ParseIP(srcIp),
|
||||
SrcIP: src,
|
||||
DstIP: dst,
|
||||
SrcPort: srcPort,
|
||||
DstPort: dstPort,
|
||||
|
||||
Reference in New Issue
Block a user