--- /dev/null
+#ifndef _SSH_H
+#define _SSH_H
+
+#include "network.h"
+#include "master.h"
+#include "options.h"
+
+#define SSH_DIR "~/.ssh/"
+#define SSH_KNOWN_HOSTS "~/.ssh/known_hosts"
+
+#include <libssh2.h>
+#include <pthread.h>
+#include <sys/select.h>
+#include <sys/fcntl.h>
+
+typedef struct
+{
+ int forward_sock;
+ LIBSSH2_CHANNEL * channel;
+ int port;
+
+} ssh_tunnel;
+
+typedef struct
+{
+ ssh_tunnel * tunnel;
+ int nTunnels;
+ int reserved_tunnels;
+
+ int socket;
+ LIBSSH2_SESSION *session;
+ char * fingerprint;
+
+ char * user;
+ char * addr;
+} ssh;
+
+extern ssh * ssh_new(char * username, char * addr, int port);
+extern void ssh_destroy(ssh * s);
+
+extern void ssh_exec_swarm(ssh * s, int * port, int * socket, int np);
+extern LIBSSH2_LISTENER * ssh_get_listener(ssh * s, int * port);
+extern void ssh_add_tunnel(ssh * s, LIBSSH2_LISTENER * listener, int socket);
+
+extern void * ssh_thread(void * args);
+extern void ssh_thread_add(ssh * s);
+extern void ssh_thread_del(ssh * s);
+
+
+extern pthread_mutex_t ssh_thread_mutex;
+
+extern pthread_t ssh_pthread;
+
+
+#endif //_SSH_H
+
+//EOF