rudimentary subscribe/unsubscribe
[psmb.git] / src / psmb_priv.h
1 #ifndef _PSMB_PRIV_H
2
3 #include <stdlib.h>
4 #include <syslog.h>
5 #include <netinet/in.h>
6
7 #define PSMB_OK         0
8 #define PSMB_ERROR      1
9 #define PSMB_NEED_WRITE 2
10 #define PSMB_MESSAGE    4
11
12 #define PSMB_DEFAULT_PORT 5313
13 #define PSMB_DEFAULT_PMTU 1452
14
15 struct _ucaddr {
16         struct sockaddr_in6 addr;
17 };
18
19 struct _msg {
20         struct _ucaddr peeraddr;
21         char *channel;
22         size_t chan_size;
23         void *data;
24         size_t data_size;
25 };
26
27 struct _psmb_ctx {
28         int fd;
29         void *(*malloc)(size_t size);
30         void (*free)(void *ptr);
31         void *(*realloc)(void *ptr, size_t size);
32         void (*logf)(void *log_priv, int priority, const char *format, ...);
33         void *log_priv;
34         unsigned short port;
35         int pmtu;
36         struct in6_addr prefix;
37         unsigned char prefixlen;
38         /* subscription set here */
39         struct _msg incoming;
40 };
41
42 #define LOG(ctx, ...) (*ctx->logf)(ctx->log_priv, __VA_ARGS__)
43
44 #endif