diff --git a/go/pkg/zerotier/endpoint.go b/go/pkg/zerotier/endpoint.go index 1f187a87c..ba66abfe0 100644 --- a/go/pkg/zerotier/endpoint.go +++ b/go/pkg/zerotier/endpoint.go @@ -42,8 +42,8 @@ func NewEndpointFromString(s string) (*Endpoint, error) { if strings.IndexRune(s, '-') > 0 || (strings.IndexRune(s, ':') < 0 && strings.IndexRune(s, '.') < 0) { var ep Endpoint cs := C.CString(s) - defer C.free(cs) - if C.ZT_Endpoint_fromString(cs) == nil { + defer C.free(unsafe.Pointer(cs)) + if C.ZT_Endpoint_fromString(&ep.cep, cs) != 0 { return nil, ErrInvalidParameter } return &ep, nil @@ -115,7 +115,7 @@ func (ep *Endpoint) MAC() MAC { func (ep *Endpoint) String() string { var buf [4096]byte - cs := C.ZT_Endpoint_toString(&ep.cep,unsafe.Pointer(&buf[0]),4096) + cs := C.ZT_Endpoint_toString(&ep.cep, (*C.char)(unsafe.Pointer(&buf[0])), 4096) if cs == nil { return "0" } diff --git a/go/pkg/zerotier/locator.go b/go/pkg/zerotier/locator.go index 67342ff37..0f2ffb238 100644 --- a/go/pkg/zerotier/locator.go +++ b/go/pkg/zerotier/locator.go @@ -69,9 +69,9 @@ func NewLocatorFromString(s string) (*Locator, error) { return nil, ErrInvalidParameter } sb := []byte(s) - sb = append(sb,0) - loc := C.ZT_Locator_fromString(unsafe.Pointer(&sb[0])) - if uintptr(loc) == 0 { + sb = append(sb, 0) + loc := C.ZT_Locator_fromString((*C.char)(unsafe.Pointer(&sb[0]))) + if loc == nil { return nil, ErrInvalidParameter } goloc := new(Locator) @@ -92,7 +92,7 @@ func (loc *Locator) GetInfo(id *Identity) (ts int64, fp *Fingerprint, eps []Endp fp = newFingerprintFromCFingerprint(cfp) epc := int(C.ZT_Locator_endpointCount(loc.cl)) eps = make([]Endpoint, epc) - for i:=0;i