X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fmeshlink_internal.h;h=66b76aec8192ad549357117b47e29032afbc9c89;hb=068746e6cb8df6c197f415e09d3ade8426c2db5f;hp=c21608fe344f562dcb02e07153acded3eb805d25;hpb=2a18ac20efd8ed3e1fd76f11f6f816e77c099e47;p=meshlink diff --git a/src/meshlink_internal.h b/src/meshlink_internal.h index c21608fe..66b76aec 100644 --- a/src/meshlink_internal.h +++ b/src/meshlink_internal.h @@ -24,6 +24,25 @@ #include "event.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, + PROXY_SOCKS4, + PROXY_SOCKS4A, + PROXY_SOCKS5, + PROXY_HTTP, + PROXY_EXEC, +} proxytype_t; /// A handle for an instance of MeshLink. struct meshlink_handle { @@ -36,7 +55,8 @@ struct meshlink_handle { 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; @@ -53,6 +73,17 @@ struct meshlink_handle { time_t last_config_check; timeout_t pingtimer; timeout_t periodictimer; + + char *myport; + + char *proxyhost; + char *proxyport; + char *proxyuser; + char *proxypass; + proxytype_t proxytype; + + bool localdiscovery; + sockaddr_t localdiscovery_address; }; /// A handle for a MeshLink node.