#include "system.h"
#include "event.h"
+#include "hash.h"
+#include "logger.h"
#include "meshlink.h"
+#include "sockaddr.h"
+
+#define MAXSOCKETS 8 /* Probably overkill... */
+
+typedef struct listen_socket_t {
+ struct io_t tcp;
+ struct io_t udp;
+ sockaddr_t sa;
+ bool bindto;
+} listen_socket_t;
typedef enum proxytype_t {
PROXY_NONE = 0,
meshlink_log_level_t log_level;
pthread_t thread;
- struct list_t *sockets;
+ listen_socket_t listen_socket[MAXSOCKETS];
+ int listen_sockets;
struct node_t *self;
char *proxyuser;
char *proxypass;
proxytype_t proxytype;
+
+ bool localdiscovery;
+ sockaddr_t localdiscovery_address;
+
+ hash_t *node_udp_cache;
+ struct connection_t *everyone;
+ struct ecdsa *invitation_key;
+
+ debug_t debug_level;
};
/// A handle for a MeshLink node.
extern meshlink_handle_t *mesh;
+/// Header for data packets routed between nodes
+typedef struct meshlink_packethdr {
+ uint8_t destination[16];
+ uint8_t source[16];
+} __attribute__ ((__packed__)) meshlink_packethdr_t;
+
#endif // MESHLINK_INTERNAL_H