]> git.lizzy.rs Git - dragonnet.git/commitdiff
Add winsock initializer
authorElias Fleckenstein <eliasfleckenstein@web.de>
Mon, 25 Apr 2022 16:26:28 +0000 (18:26 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Mon, 25 Apr 2022 16:26:28 +0000 (18:26 +0200)
CMakeLists.txt
dragonnet/init.c [new file with mode: 0644]
dragonnet/init.h [new file with mode: 0644]

index 9690a50708c4cae6a1b9b3f9f41a61bb3908977b..22bd2adc52e914721f7600707daaf8bf0732d0cb 100644 (file)
@@ -9,6 +9,7 @@ add_compile_options(
 
 add_library(dragonnet
        dragonnet/addr.c
+       dragonnet/init.c
        dragonnet/listen.c
        dragonnet/peer.c
        dragonnet/recv.c
diff --git a/dragonnet/init.c b/dragonnet/init.c
new file mode 100644 (file)
index 0000000..01ed8d0
--- /dev/null
@@ -0,0 +1,24 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "init.h"
+#include "sock.h"
+
+void dragonnet_init()
+{
+#ifdef _WIN32
+       printf("[info] initializing winsock\n");
+
+       WSADATA wsa_data;
+       if (WSAStartup(0x202, &wsa_data) != 0) {
+               fprintf(stderr, "[error] failed to initialize winsock\n");
+               abort();
+       }
+#endif
+}
+
+void dragonnet_deinit()
+{
+#ifdef _WIN32
+       WSACleanup();
+#endif
+}
diff --git a/dragonnet/init.h b/dragonnet/init.h
new file mode 100644 (file)
index 0000000..1e84944
--- /dev/null
@@ -0,0 +1,7 @@
+#ifndef _DRAGONNET_INIT_H_
+#define _DRAGONNET_INIT_H_
+
+void dragonnet_init();
+void dragonnet_deinit();
+
+#endif // _DRAGONNET_INIT_H_