]> git.lizzy.rs Git - dragonnet.git/blobdiff - listen.h
Refactor type hooks
[dragonnet.git] / listen.h
index 28c456234939b8239fc488524534db49c92839c3..f1fae8db9bb64d3db46aef4e6d684050de82bcec 100644 (file)
--- a/listen.h
+++ b/listen.h
@@ -18,14 +18,15 @@ typedef struct {
        pthread_t accept_thread;
 
        void (*on_connect)(DragonnetPeer *);
-       void (*on_recv_type)(struct dragonnet_peer *, u16);
+       void (**on_recv_type)(DragonnetPeer *, void *);
 
        pthread_rwlock_t mu;
 } DragonnetListener;
 
 DragonnetListener *dragonnet_listener_new(char *addr,
-               void (*on_connect)(DragonnetPeer *p),
-               void (*on_recv_type)(struct dragonnet_peer *, u16));
+               void (*on_connect)(DragonnetPeer *p));
+void dragonnet_listener_set_recv_hook(DragonnetListener *l, u16 type_id,
+               void (*on_recv)(struct dragonnet_peer *, void *));
 void dragonnet_listener_run(DragonnetListener *l);
 void dragonnet_listener_close(DragonnetListener *l);
 void dragonnet_listener_delete(DragonnetListener *l);