]> www.average.org Git - psmb.git/blobdiff - src/psmb_priv.h
use 'struct in6_pktinfo' from linux/ipv6.h
[psmb.git] / src / psmb_priv.h
index 9b57d390861a5f414e479e28e7b8e67b3740f746..c80ae62169548b009f8ef63797c72be9e6ee8efe 100644 (file)
@@ -1,18 +1,44 @@
 #ifndef _PSMB_PRIV_H
 
 #include <stdlib.h>
+#include <syslog.h>
+#include <netinet/in.h>
 
-struct _psmb_ctx psmb_ctx_t {
+#define PSMB_OK                0
+#define PSMB_ERROR     1
+#define PSMB_NEED_WRITE        2
+#define PSMB_MESSAGE   4
+
+#define PSMB_DEFAULT_PORT 5313
+#define PSMB_DEFAULT_PMTU 1452
+
+struct _ucaddr {
+       struct sockaddr_in6 addr;
+};
+
+struct _msg {
+       struct _ucaddr peeraddr;
+       char *channel;
+       size_t chan_size;
+       void *data;
+       size_t data_size;
+};
+
+struct _psmb_ctx {
        int fd;
        void *(*malloc)(size_t size);
        void (*free)(void *ptr);
        void *(*realloc)(void *ptr, size_t size);
+       void (*logf)(void *log_priv, int priority, const char *format, ...);
+       void *log_priv;
+       unsigned short port;
        int pmtu;
-       /* data here */
+       struct in6_addr prefix;
+       unsigned char prefixlen;
+       /* subscription set here */
+       struct _msg incoming;
 };
 
-struct _psmb_result {
-       int code;
-};
+#define LOG(ctx, ...) (*ctx->logf)(ctx->log_priv, __VA_ARGS__)
 
 #endif