]> git.lizzy.rs Git - dragonnet.git/blobdiff - listen.h
Bug fixes (mainly threading)
[dragonnet.git] / listen.h
index 6e322eafdeec68a770fa5f4eacc448a87b24748a..28c456234939b8239fc488524534db49c92839c3 100644 (file)
--- a/listen.h
+++ b/listen.h
@@ -14,13 +14,18 @@ typedef enum {
 typedef struct {
        int sock;
        DragonnetAddr laddr;
-       void (*on_connect)(DragonnetPeer *p);
        DragonnetListenerState state;
+       pthread_t accept_thread;
 
-       pthread_rwlock_t *mu;
+       void (*on_connect)(DragonnetPeer *);
+       void (*on_recv_type)(struct dragonnet_peer *, u16);
+
+       pthread_rwlock_t mu;
 } DragonnetListener;
 
-DragonnetListener *dragonnet_listener_new(char *addr, void (*on_connect)(DragonnetPeer *p));
+DragonnetListener *dragonnet_listener_new(char *addr,
+               void (*on_connect)(DragonnetPeer *p),
+               void (*on_recv_type)(struct dragonnet_peer *, u16));
 void dragonnet_listener_run(DragonnetListener *l);
 void dragonnet_listener_close(DragonnetListener *l);
 void dragonnet_listener_delete(DragonnetListener *l);