X-Git-Url: https://git.ucc.asn.au/?p=matches%2Fswarm.git;a=blobdiff_plain;f=src%2Fssh.h;fp=src%2Fssh.h;h=6d12e99a03786b020d2f098d1e9c26051f3b32cf;hp=0000000000000000000000000000000000000000;hb=4e2127d6576cea3f54c619d0bb20a22006567206;hpb=3237855ae8604fb19d058eef2797c850b37f5596 diff --git a/src/ssh.h b/src/ssh.h new file mode 100644 index 0000000..6d12e99 --- /dev/null +++ b/src/ssh.h @@ -0,0 +1,57 @@ +#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 +#include +#include +#include + +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