aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/vlib/net/conv/conv_default.c.v
diff options
context:
space:
mode:
authorIndrajith K L2022-12-03 17:00:20 +0530
committerIndrajith K L2022-12-03 17:00:20 +0530
commitf5c4671bfbad96bf346bd7e9a21fc4317b4959df (patch)
tree2764fc62da58f2ba8da7ed341643fc359873142f /v_windows/v/vlib/net/conv/conv_default.c.v
downloadcli-tools-windows-master.tar.gz
cli-tools-windows-master.tar.bz2
cli-tools-windows-master.zip
Adds most of the toolsHEADmaster
Diffstat (limited to 'v_windows/v/vlib/net/conv/conv_default.c.v')
-rw-r--r--v_windows/v/vlib/net/conv/conv_default.c.v46
1 files changed, 46 insertions, 0 deletions
diff --git a/v_windows/v/vlib/net/conv/conv_default.c.v b/v_windows/v/vlib/net/conv/conv_default.c.v
new file mode 100644
index 0000000..8e8c582
--- /dev/null
+++ b/v_windows/v/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 }
+}