]> git.lizzy.rs Git - dragonnet.git/blob - peer.h
Basic timeout detection
[dragonnet.git] / peer.h
1 #ifndef _DRAGONNET_PEER_H_
2 #define _DRAGONNET_PEER_H_
3
4 #include <pthread.h>
5
6 #include "addr.h"
7
8 const extern struct timeval dragonnet_timeout;
9
10 typedef enum {
11         DRAGONNET_PEER_CREATED,
12         DRAGONNET_PEER_ACTIVE,
13         DRAGONNET_PEER_CLOSED
14 } DragonnetPeerState;
15
16 typedef struct {
17         int sock;
18         DragonnetAddr laddr, raddr;
19         DragonnetPeerState state;
20
21         pthread_rwlock_t *mu;
22 } DragonnetPeer;
23
24 DragonnetPeer *dragonnet_connect(char *addr);
25 void dragonnet_peer_run(DragonnetPeer *p);
26 void dragonnet_peer_close(DragonnetPeer *p);
27 void dragonnet_peer_delete(DragonnetPeer *p);
28
29 #endif