]> git.lizzy.rs Git - dragonnet.git/commitdiff
Don't depend on dragontype types
authorElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 30 Jan 2022 20:43:24 +0000 (21:43 +0100)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 30 Jan 2022 20:43:24 +0000 (21:43 +0100)
listen.c
listen.h
peer.c
peer.h
recv.h
recv_thread.c

index 21d6ee56454199548d1c4173c4ed5da384fac42e..b6239dc98d99cab51cd53eab62580ea7ceb51090 100644 (file)
--- a/listen.c
+++ b/listen.c
@@ -82,7 +82,7 @@ DragonnetListener *dragonnet_listener_new(char *addr,
        return l;
 }
 
-void dragonnet_listener_set_recv_hook(DragonnetListener *l, u16 type_id,
+void dragonnet_listener_set_recv_hook(DragonnetListener *l, DragonnetTypeId type_id,
                void (*on_recv)(struct dragonnet_peer *, void *))
 {
        pthread_rwlock_rdlock(&l->mu);
index 2ecbc8905d09c0124bf37838a37e400dce642db4..2c2b0520b89e768ff19c9496ed870b3e35d2f220 100644 (file)
--- a/listen.h
+++ b/listen.h
@@ -24,7 +24,7 @@ typedef struct {
 
 DragonnetListener *dragonnet_listener_new(char *addr,
                void (*on_connect)(DragonnetPeer *p));
-void dragonnet_listener_set_recv_hook(DragonnetListener *l, u16 type_id,
+void dragonnet_listener_set_recv_hook(DragonnetListener *l, DragonnetTypeId type_id,
                void (*on_recv)(struct dragonnet_peer *, void *));
 void dragonnet_listener_run(DragonnetListener *l);
 void dragonnet_listener_close(DragonnetListener *l);
diff --git a/peer.c b/peer.c
index 83e91226cbde496a59f2a0157cfde976d1da6765..5cd481af089367eb491b9183dd0b93ed565f1297 100644 (file)
--- a/peer.c
+++ b/peer.c
@@ -47,7 +47,7 @@ DragonnetPeer *dragonnet_connect(char *addr)
        return p;
 }
 
-void dragonnet_peer_set_recv_hook(DragonnetPeer *p, u16 type_id,
+void dragonnet_peer_set_recv_hook(DragonnetPeer *p, DragonnetTypeId type_id,
                void (*on_recv)(struct dragonnet_peer *, void *))
 {
        pthread_rwlock_rdlock(&p->mu);
diff --git a/peer.h b/peer.h
index 01603755f5dd41bd9e55872d3d54c2d178d70d5c..e2c957a630e92fe993946a1df5229359e08704ee 100644 (file)
--- a/peer.h
+++ b/peer.h
@@ -2,9 +2,9 @@
 #define _DRAGONNET_PEER_H_
 
 #include <dragonnet/addr.h>
-#include <dragontype/number.h>
 #include <pthread.h>
 #include <stdbool.h>
+#include <stdint.h>
 
 typedef enum {
        DRAGONNET_PEER_CREATED,
@@ -12,20 +12,22 @@ typedef enum {
        DRAGONNET_PEER_CLOSED
 } DragonnetPeerState;
 
+typedef uint16_t DragonnetTypeId;
+
 typedef struct dragonnet_peer {
        int sock;
        DragonnetAddr laddr, raddr;
        DragonnetPeerState state;
        pthread_t recv_thread;
 
-       bool (*on_recv)(struct dragonnet_peer *, u16, void *);
+       bool (*on_recv)(struct dragonnet_peer *, DragonnetTypeId, void *);
        void (**on_recv_type)(struct dragonnet_peer *, void *);
 
        pthread_rwlock_t mu;
 } DragonnetPeer;
 
 DragonnetPeer *dragonnet_connect(char *addr);
-void dragonnet_peer_set_recv_hook(DragonnetPeer *p, u16 type_id,
+void dragonnet_peer_set_recv_hook(DragonnetPeer *p, DragonnetTypeId type_id,
                void (*on_recv)(struct dragonnet_peer *, void *));
 void dragonnet_peer_run(DragonnetPeer *p);
 void dragonnet_peer_close(DragonnetPeer *p);
diff --git a/recv.h b/recv.h
index a3b2e2a15650d59adcf537ce112fd560fb48f9b5..a9e0fb9ff841a2f07d970641290830db10f188da 100644 (file)
--- a/recv.h
+++ b/recv.h
@@ -8,7 +8,7 @@ typedef struct {
        void (*deserialize)(DragonnetPeer *, void *);
 } DragonnetType;
 
-extern u16 dragonnet_num_types;
+extern DragonnetTypeId dragonnet_num_types;
 extern DragonnetType dragonnet_types[];
 
 void dragonnet_recv_raw(DragonnetPeer *p, void *buf, size_t n);
index e2ef9e4cd93eb9774d3b8ab570f18546e7812a30..b9e344e8f476afee1268efc8872669462f8531bd 100644 (file)
@@ -2,7 +2,6 @@
 #include <dragonnet/peer.h>
 #include <dragonnet/recv.h>
 #include <dragonnet/recv_thread.h>
-#include <dragontype/number.h>
 #include <pthread.h>
 #include <stdbool.h>
 #include <stdio.h>
@@ -18,7 +17,7 @@ void *dragonnet_peer_recv_thread(void *g_peer)
        pthread_rwlock_unlock(&p->mu);
 
        while (true) {
-               u16 type_id;
+               DragonnetTypeId type_id;
 
                // Copy socket fd so that shutdown doesn't block
                pthread_rwlock_rdlock(&p->mu);
@@ -46,11 +45,11 @@ void *dragonnet_peer_recv_thread(void *g_peer)
 
                type_id = be16toh(type_id);
                DragonnetType type = dragonnet_types[type_id];
-               u8 buf[type.siz];
+               unsigned char buf[type.siz];
                type.deserialize(p, buf);
 
                pthread_rwlock_rdlock(&p->mu);
-               bool (*on_recv)(struct dragonnet_peer *, u16, void *) = p->on_recv;
+               bool (*on_recv)(struct dragonnet_peer *, DragonnetTypeId, void *) = p->on_recv;
                void (*on_recv_type)(DragonnetPeer *, void *) = p->on_recv_type[type_id];
                pthread_rwlock_unlock(&p->mu);