]> git.lizzy.rs Git - dragonnet.git/commitdiff
Support windows
authorElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 24 Apr 2022 20:45:16 +0000 (22:45 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 24 Apr 2022 20:45:16 +0000 (22:45 +0200)
addr.h
listen.c
peer.c
recv.c
recv_thread.c
send.c
sock.h [new file with mode: 0644]

diff --git a/addr.h b/addr.h
index fdffa4a03cf58260158bfeb39263e132bb8bfe37..2bc21cc23b2946f69bb4c924fda22cf79ccc65f6 100644 (file)
--- a/addr.h
+++ b/addr.h
@@ -1,9 +1,7 @@
 #ifndef _DRAGONNET_ADDR_H_
 #define _DRAGONNET_ADDR_H_
 
-#include <netdb.h>
-#include <sys/socket.h>
-#include <sys/types.h>
+#include "sock.h"
 
 struct addrinfo *dragonnet_str2addr(const char *str);
 char *dragonnet_addr2str(struct sockaddr *addr, socklen_t addr_len);
index abafb01445203720a94496c679c07fedf448f441..f8f212bf7abd9683dc5c85830992774f4f155d22 100644 (file)
--- a/listen.c
+++ b/listen.c
@@ -4,13 +4,10 @@
 #include <dragonnet/listen.h>
 #include <dragonnet/recv.h>
 #include <errno.h>
-#include <features.h>
-#include <netdb.h>
 #include <signal.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <sys/socket.h>
-#include <unistd.h>
+#include "sock.h"
 
 // ----
 // Peer
@@ -65,7 +62,7 @@ DragonnetListener *dragonnet_listener_new(char *addr)
        l->on_recv_type = calloc(sizeof *l->on_recv_type, dragonnet_num_types);
 
        int so_reuseaddr = 1;
-       if (setsockopt(l->sock, SOL_SOCKET, SO_REUSEADDR, &so_reuseaddr,
+       if (setsockopt(l->sock, SOL_SOCKET, SO_REUSEADDR, (void *) &so_reuseaddr,
                        sizeof so_reuseaddr) < 0) {
                perror("setsockopt");
                freeaddrinfo(info);
diff --git a/peer.c b/peer.c
index ad17be6af59e4824b8cd828c45f732eda7ceff1b..7c5ce290cbe8403fb7cd3717d2bf0fc48b504488 100644 (file)
--- a/peer.c
+++ b/peer.c
@@ -6,6 +6,7 @@
 #include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include "sock.h"
 
 static bool dragonnet_peer_init(DragonnetPeer *p, char *addr)
 {
diff --git a/recv.c b/recv.c
index 4d04c7d266411dd340cc1c896885ac9d9b5a3037..7a2dfbe142a99d90d040ecb859cb5139e7a12e58 100644 (file)
--- a/recv.c
+++ b/recv.c
@@ -2,9 +2,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <sys/socket.h>
-#include <sys/types.h>
 #include <unistd.h>
+#include "sock.h"
 
 bool dragonnet_recv_raw(DragonnetPeer *p, void *buf, size_t n)
 {
index 6642bae50156d9b13377067a802a97a6bcfcf518..578c4e8536ac10bf13e35b66e53dcef91888edb2 100644 (file)
@@ -3,16 +3,15 @@
 #include <dragonnet/peer.h>
 #include <dragonnet/recv.h>
 #include <dragonnet/recv_thread.h>
+#include <endian.h/endian.h>
 #include <errno.h>
-#include <features.h>
 #include <pthread.h>
 #include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <sys/socket.h>
-#include <sys/types.h>
 #include <unistd.h>
+#include "sock.h"
 
 void *dragonnet_peer_recv_thread(void *g_peer)
 {
@@ -27,7 +26,7 @@ void *dragonnet_peer_recv_thread(void *g_peer)
 
                bool reset = false;
 
-               ssize_t len = recv(p->sock, &type_id, sizeof type_id, MSG_WAITALL);
+               ssize_t len = recv(p->sock, (void *) &type_id, sizeof type_id, MSG_WAITALL);
                if (len < 0) {
                        if (errno == ECONNRESET || errno == EPIPE || errno == ETIMEDOUT) {
                                reset = true;
diff --git a/send.c b/send.c
index e2c9483ecadd4c4eea64735f5d459dfd1ee847fc..caeb7c8c4a035a879e1c129a9bb8bae10502e1ee 100644 (file)
--- a/send.c
+++ b/send.c
@@ -3,8 +3,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <sys/socket.h>
-#include <sys/types.h>
+#include "sock.h"
 
 bool dragonnet_send_raw(DragonnetPeer *p, bool submit, const void *buf, size_t n)
 {
diff --git a/sock.h b/sock.h
new file mode 100644 (file)
index 0000000..de1eb91
--- /dev/null
+++ b/sock.h
@@ -0,0 +1,17 @@
+#ifdef _WIN32
+#include <winsock2.h>
+#include <ws2tcpip.h>
+#include <iphlpapi.h>
+#include <ws2def.h>
+#include <windows.h>
+#include <io.h>
+#define SHUT_RDWR SD_BOTH
+#define MSG_NOSIGNAL 0
+#define MSG_MORE 0
+#else
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+#endif