]> git.meshlink.io Git - meshlink-tiny/blobdiff - src/meshlink_internal.h
Remove support for multiple connections.
[meshlink-tiny] / src / meshlink_internal.h
index af3a2501a646e37bc6d8c321f62ae4e998ada872..fc4683efeaa4ab857a85ce3da6a4147858321026 100644 (file)
@@ -45,12 +45,7 @@ static const char meshlink_udp_label[] = "MeshLink UDP";
 #define MESHLINK_CONFIG_VERSION 2
 #define MESHLINK_INVITATION_VERSION 2
 
-typedef struct listen_socket_t {
-       struct io_t tcp;
-       struct io_t udp;
-       sockaddr_t sa;
-       sockaddr_t broadcast_sa;
-} listen_socket_t;
+#define CORE_MESH "."
 
 struct meshlink_open_params {
        char *confbase;
@@ -93,21 +88,14 @@ struct meshlink_handle {
 
        // The most important network-related members come first
        int reachable;
-       int listen_sockets;
-       listen_socket_t listen_socket[MAXSOCKETS];
 
        meshlink_receive_cb_t receive_cb;
        meshlink_queue_t outpacketqueue;
        signal_t datafromapp;
 
-       hash_t *node_udp_cache;
-
-       struct splay_tree_t *nodes;
-       struct splay_tree_t *edges;
-
-       struct list_t *connections;
-       struct list_t *outgoings;
-       struct list_t *submeshes;
+       struct node_t *peer;
+       struct connection_t *connection;
+       struct outgoing_t *outgoing;
 
        // Meta-connection-related members
        struct splay_tree_t *past_request_tree;
@@ -148,8 +136,6 @@ struct meshlink_handle {
 
        dev_class_t devclass;
 
-       int udp_choice;
-
        dev_class_traits_t dev_class_traits[DEV_CLASS_COUNT];
 
        int netns;
@@ -167,29 +153,6 @@ struct meshlink_handle {
        pthread_t thread;
        pthread_cond_t cond;
        bool threadstarted;
-
-       // mDNS discovery
-       struct {
-               bool enabled;
-               io_t pfroute_io;
-               int *ifaces;
-               struct discovery_address *addresses;
-               int iface_count;
-               int address_count;
-               io_t sockets[2];
-               time_t last_update;
-#ifdef __APPLE__
-               pthread_t thread;
-               void *runloop;
-#endif
-       } discovery;
-
-       // ADNS
-       pthread_t adns_thread;
-       pthread_cond_t adns_cond;
-       meshlink_queue_t adns_queue;
-       meshlink_queue_t adns_done_queue;
-       signal_t adns_signal;
 };
 
 /// A handle for a MeshLink node.
@@ -198,12 +161,6 @@ struct meshlink_node {
        void *priv;
 };
 
-/// A handle for a node Sub-Mesh.
-struct meshlink_submesh {
-       const char *name;
-       void *priv;
-};
-
 /// An AIO buffer.
 typedef struct meshlink_aio_buffer {
        const void *data;