aboutsummaryrefslogtreecommitdiff
path: root/netaddr.go
diff options
context:
space:
mode:
authorDeterminant <ted.sybil@gmail.com>2019-06-17 01:50:29 -0400
committerDeterminant <ted.sybil@gmail.com>2019-06-17 01:50:29 -0400
commit8ac5ed4cf4518053c81122c01cd4a665aca0a549 (patch)
tree08fb7f4d07289d0e73dc602f909f2927994c152d /netaddr.go
parent3ba5b6536e730baf01efb3203be280c3e61319bd (diff)
clean up code
Diffstat (limited to 'netaddr.go')
-rw-r--r--netaddr.go16
1 files changed, 12 insertions, 4 deletions
diff --git a/netaddr.go b/netaddr.go
index ab261b5..4bd7ebb 100644
--- a/netaddr.go
+++ b/netaddr.go
@@ -5,12 +5,14 @@ package salticidae
import "C"
import "runtime"
-type netAddr struct {
- inner *C.netaddr_t
-}
-
+type CNetAddr = *C.netaddr_t
+type netAddr struct { inner CNetAddr }
type NetAddr = *netAddr
+func NetAddrFromC(ptr CNetAddr) NetAddr {
+ return &netAddr{ inner: ptr }
+}
+
type netAddrArray struct {
inner *C.netaddr_array_t
}
@@ -49,4 +51,10 @@ func (self NetAddr) GetIP() uint32 { return uint32(C.netaddr_get_ip(self.inner))
func (self NetAddr) GetPort() uint16 { return uint16(C.netaddr_get_port(self.inner)) }
+func (self NetAddr) Copy() NetAddr {
+ res := &netAddr{ inner: C.netaddr_copy(self.inner) }
+ runtime.SetFinalizer(res, func(self NetAddr) { self.free() })
+ return res
+}
+
func (self NetAddrArray) free() { C.netaddr_array_free(self.inner) }