]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink_internal.h
Merge remote-tracking branch 'origin/everbase' into discovery
[meshlink] / src / meshlink_internal.h
index 5279a63dd0a332ede229b795f97670fde2d0faff..52137efb51ca7915d2fc17341dd8c18bf20dbaff 100644 (file)
 
 #define MAXSOCKETS 8    /* Probably overkill... */
 
+struct AvahiServer;
+struct AvahiSServiceBrowser;
+struct AvahiSimplePoll;
+struct AvahiSEntryGroup;
+
 typedef struct listen_socket_t {
        struct io_t tcp;
        struct io_t udp;
@@ -57,8 +62,10 @@ typedef struct outpacketqueue {
 
 /// 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;
@@ -85,6 +92,9 @@ struct meshlink_handle {
 
        struct list_t *outpacketqueue;
 
+       struct splay_tree_t *past_request_tree;
+       timeout_t past_request_timeout;
+
        int contradicting_add_edge;
        int contradicting_del_edge;
        int sleeptime;
@@ -121,6 +131,13 @@ struct meshlink_handle {
        char line[4096];
        char buffer[4096];
        size_t blen;
+
+       pthread_t discovery_thread;
+       bool discovery_threadstarted;
+       struct AvahiServer *avahi_server;
+       struct AvahiSServiceBrowser *avahi_browser;
+       struct AvahiSimplePoll *avahi_poll;
+       struct AvahiSEntryGroup *avahi_group;
 };
 
 /// A handle for a MeshLink node.