#include "hash.h"
#include "logger.h"
#include "meshlink.h"
+#include "meshlink_queue.h"
#include "sockaddr.h"
#include "sptps.h"
PROXY_EXEC,
} proxytype_t;
+typedef struct outpacketqueue {
+ meshlink_node_t *destination;
+ const void *data;
+ unsigned int len;
+} outpacketqueue_t;
+
/// A handle for an instance of MeshLink.
struct meshlink_handle {
- char *confbase;
char *name;
+ void *priv;
+
+ char *confbase;
meshlink_receive_cb_t receive_cb;
meshlink_node_status_cb_t node_status_cb;
struct list_t *connections;
struct list_t *outgoings;
- struct list_t *outpacketqueue;
+ meshlink_queue_t outpacketqueue;
+
+ struct splay_tree_t *past_request_tree;
+ timeout_t past_request_timeout;
int contradicting_add_edge;
int contradicting_del_edge;
uint8_t source[16];
} __attribute__ ((__packed__)) meshlink_packethdr_t;
+extern void meshlink_send_from_queue(event_loop_t* el,meshlink_handle_t *mesh);
+
+
#endif // MESHLINK_INTERNAL_H