diff options
Diffstat (limited to 'v_windows/v/old/vlib/net/conv')
| -rw-r--r-- | v_windows/v/old/vlib/net/conv/conv.c.v | 21 | ||||
| -rw-r--r-- | v_windows/v/old/vlib/net/conv/conv_default.c.v | 46 | ||||
| -rw-r--r-- | v_windows/v/old/vlib/net/conv/conv_windows.c.v | 21 | 
3 files changed, 88 insertions, 0 deletions
| diff --git a/v_windows/v/old/vlib/net/conv/conv.c.v b/v_windows/v/old/vlib/net/conv/conv.c.v new file mode 100644 index 0000000..e29741a --- /dev/null +++ b/v_windows/v/old/vlib/net/conv/conv.c.v @@ -0,0 +1,21 @@ +module conv + +// host to net 32 (htonl) +pub fn htn32(host &u32) u32 { +	return C.htonl(host) +} + +// host to net 16 (htons) +pub fn htn16(host &u16) u16 { +	return C.htons(host) +} + +// net to host 32 (ntohl) +pub fn nth32(host &u32) u32 { +	return C.ntohl(host) +} + +// net to host 16 (ntohs) +pub fn nth16(host &u16) u16 { +	return C.ntohs(host) +} diff --git a/v_windows/v/old/vlib/net/conv/conv_default.c.v b/v_windows/v/old/vlib/net/conv/conv_default.c.v new file mode 100644 index 0000000..8e8c582 --- /dev/null +++ b/v_windows/v/old/vlib/net/conv/conv_default.c.v @@ -0,0 +1,46 @@ +module conv + +#include <arpa/inet.h> + +fn C.htonl(host u32) u32 +fn C.htons(host u16) u16 + +fn C.ntohl(net u32) u32 +fn C.ntohs(net u16) u16 + +struct Bytes { +mut: +	first u32 +	last  u32 +} + +union LongLong { +	Bytes +	ll u64 +} + +// host to net 64 (htonll) +pub fn htn64(host &u64) u64 { +	mut ll := LongLong{ +		ll: host +	} + +	unsafe { +		ll.first = htn32(ll.first) +		ll.last = htn32(ll.last) +	} +	return unsafe { ll.ll } +} + +// net to host 64 (ntohll) +pub fn nth64(net &u64) u64 { +	mut ll := LongLong{ +		ll: net +	} + +	unsafe { +		ll.first = nth32(ll.first) +		ll.last = nth32(ll.last) +	} +	return unsafe { ll.ll } +} diff --git a/v_windows/v/old/vlib/net/conv/conv_windows.c.v b/v_windows/v/old/vlib/net/conv/conv_windows.c.v new file mode 100644 index 0000000..15827f7 --- /dev/null +++ b/v_windows/v/old/vlib/net/conv/conv_windows.c.v @@ -0,0 +1,21 @@ +module conv + +#include <winsock2.h> + +fn C.htonll(host u64) u64 +fn C.htonl(host u32) u32 +fn C.htons(host u16) u16 + +fn C.ntohll(net u32) u32 +fn C.ntohl(net u32) u32 +fn C.ntohs(net u16) u16 + +// host to net 64 (htonll) +pub fn htn64(host &u64) u64 { +	return C.htonll(host) +} + +// net to host 64 (htonll) +pub fn nth64(host &u64) u64 { +	return C.ntohll(host) +} | 
