Files
sing-box/common/tls/apple_client_platform_dispatch_testhelper_darwin.go
2026-06-03 13:04:27 +08:00

45 lines
880 B
Go

//go:build darwin && cgo
package tls
/*
#include <stdlib.h>
#include "apple_client_platform_darwin.h"
*/
import "C"
import "unsafe"
func appleTLSCopyDispatchDataForTest(first, second []byte, buffer []byte) (int, string) {
var firstPtr unsafe.Pointer
if len(first) > 0 {
firstPtr = C.CBytes(first)
defer C.free(firstPtr)
}
var secondPtr unsafe.Pointer
if len(second) > 0 {
secondPtr = C.CBytes(second)
defer C.free(secondPtr)
}
var bufferPtr unsafe.Pointer
if len(buffer) > 0 {
bufferPtr = unsafe.Pointer(&buffer[0])
}
var errPtr *C.char
n := C.box_apple_tls_copy_dispatch_data_for_test(
firstPtr,
C.size_t(len(first)),
secondPtr,
C.size_t(len(second)),
bufferPtr,
C.size_t(len(buffer)),
&errPtr,
)
if errPtr == nil {
return int(n), ""
}
errorMessage := C.GoString(errPtr)
C.free(unsafe.Pointer(errPtr))
return int(n), errorMessage
}