some error logging
[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
11 #define PSMB_DEFAULT_PORT 5313
12 #define PSMB_DEFAULT_PMTU 1452
13
14 struct _ucaddr {
15         struct sockaddr_in6 addr;
16 };
17
18 struct _msg {
19         struct _ucaddr peeraddr;
20         char *channel;
21         size_t chan_size;
22         void *data;
23         size_t data_size;
24 };
25
26 struct _psmb_ctx {
27         int fd;
28         void *(*malloc)(size_t size);
29         void (*free)(void *ptr);
30         void *(*realloc)(void *ptr, size_t size);
31         void (*logf)(void *log_priv, int priority, const char *format, ...);
32         void *log_priv;
33         unsigned short port;
34         int pmtu;
35         struct in6_addr prefix;
36         unsigned char prefixlen;
37         /* subscription set here */
38         struct _msg incoming;
39 };
40
41 struct _psmb_result {
42         int code;
43 };
44
45 #define LOG(ctx, ...) (*ctx->logf)(ctx->log_priv, __VA_ARGS__)
46
47 #endif