#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